Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2017-04-28 15:48:40 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-04-28 15:48:40 +0300
commit1ec59c8e067f4af213d61e114de97334ce9f3e77 (patch)
treef690b0ea07b85750e1c995df362ca2a86da7c9ce /intern/cycles/render/image.cpp
parent06034b147aab1c80ad959d88a69b493cd5891e9c (diff)
Revert "Cycles: Fix image textures were completely broken since recent unlimited textures commit"
This reverts commit 8f4166ee495531fa38b676b0a5ef4c482e89f9a5. The fix was not correct for cases when we've got float textures.
Diffstat (limited to 'intern/cycles/render/image.cpp')
-rw-r--r--intern/cycles/render/image.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp
index 60d1f5f44f9..5ce3b75a226 100644
--- a/intern/cycles/render/image.cpp
+++ b/intern/cycles/render/image.cpp
@@ -1049,8 +1049,6 @@ void ImageManager::device_pack_images(Device *device,
+ tex_num_images[IMAGE_DATA_TYPE_FLOAT] + tex_num_images[IMAGE_DATA_TYPE_BYTE];
uint4 *info = dscene->tex_image_packed_info.resize(info_size*2);
- size_t index = 0;
-
/* Byte4 Textures*/
type = IMAGE_DATA_TYPE_BYTE4;
@@ -1072,8 +1070,9 @@ void ImageManager::device_pack_images(Device *device,
uint8_t options = pack_image_options(type, slot);
- info[index++] = make_uint4(tex_img.data_width, tex_img.data_height, offset, options);
- info[index++] = make_uint4(tex_img.data_depth, 0, 0, 0);
+ int index = type_index_to_flattened_slot(slot, type) * 2;
+ info[index] = make_uint4(tex_img.data_width, tex_img.data_height, offset, options);
+ info[index+1] = make_uint4(tex_img.data_depth, 0, 0, 0);
memcpy(pixels_byte4+offset, (void*)tex_img.data_pointer, tex_img.memory_size());
offset += tex_img.size();
@@ -1103,8 +1102,9 @@ void ImageManager::device_pack_images(Device *device,
uint8_t options = pack_image_options(type, slot);
- info[index++] = make_uint4(tex_img.data_width, tex_img.data_height, offset, options);
- info[index++] = make_uint4(tex_img.data_depth, 0, 0, 0);
+ int index = type_index_to_flattened_slot(slot, type) * 2;
+ info[index] = make_uint4(tex_img.data_width, tex_img.data_height, offset, options);
+ info[index+1] = make_uint4(tex_img.data_depth, 0, 0, 0);
memcpy(pixels_float4+offset, (void*)tex_img.data_pointer, tex_img.memory_size());
offset += tex_img.size();
@@ -1132,8 +1132,9 @@ void ImageManager::device_pack_images(Device *device,
uint8_t options = pack_image_options(type, slot);
- info[index++] = make_uint4(tex_img.data_width, tex_img.data_height, offset, options);
- info[index++] = make_uint4(tex_img.data_depth, 0, 0, 0);
+ int index = type_index_to_flattened_slot(slot, type) * 2;
+ info[index] = make_uint4(tex_img.data_width, tex_img.data_height, offset, options);
+ info[index+1] = make_uint4(tex_img.data_depth, 0, 0, 0);
memcpy(pixels_byte+offset, (void*)tex_img.data_pointer, tex_img.memory_size());
offset += tex_img.size();
@@ -1163,8 +1164,9 @@ void ImageManager::device_pack_images(Device *device,
uint8_t options = pack_image_options(type, slot);
- info[index++] = make_uint4(tex_img.data_width, tex_img.data_height, offset, options);
- info[index++] = make_uint4(tex_img.data_depth, 0, 0, 0);
+ int index = type_index_to_flattened_slot(slot, type) * 2;
+ info[index] = make_uint4(tex_img.data_width, tex_img.data_height, offset, options);
+ info[index+1] = make_uint4(tex_img.data_depth, 0, 0, 0);
memcpy(pixels_float+offset, (void*)tex_img.data_pointer, tex_img.memory_size());
offset += tex_img.size();