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:
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();