[Bf-blender-cvs] [d6555d9] master: Cleanup: Avoid duplicative defines for CPU textures, use the ones from util_texture.h

Thomas Dinges noreply at git.blender.org
Mon May 9 09:20:19 CEST 2016


Commit: d6555d936cb15c3d64836ca1446bfc7b065b4aa0
Author: Thomas Dinges
Date:   Mon May 9 09:16:41 2016 +0200
Branches: master
https://developer.blender.org/rBd6555d936cb15c3d64836ca1446bfc7b065b4aa0

Cleanup: Avoid duplicative defines for CPU textures, use the ones from util_texture.h

Also includes some further byte -> byte4 renaming, missed that in last commit.

===================================================================

M	intern/cycles/device/device_cpu.cpp
M	intern/cycles/kernel/kernel_compat_cpu.h
M	intern/cycles/kernel/kernel_globals.h
M	intern/cycles/kernel/kernels/cpu/kernel.cpp

===================================================================

diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp
index 676b1279..4d0a57d 100644
--- a/intern/cycles/device/device_cpu.cpp
+++ b/intern/cycles/device/device_cpu.cpp
@@ -27,6 +27,9 @@
 #include "device.h"
 #include "device_intern.h"
 
+/* Texture limits and slot info */
+#include "util_texture.h"
+
 #include "kernel.h"
 #include "kernel_compat_cpu.h"
 #include "kernel_types.h"
diff --git a/intern/cycles/kernel/kernel_compat_cpu.h b/intern/cycles/kernel/kernel_compat_cpu.h
index 6e56f1e..ee8cee0 100644
--- a/intern/cycles/kernel/kernel_compat_cpu.h
+++ b/intern/cycles/kernel/kernel_compat_cpu.h
@@ -479,9 +479,9 @@ typedef texture_image<uchar4> texture_image_uchar4;
 #define kernel_tex_fetch_ssef(tex, index) (kg->tex.fetch_ssef(index))
 #define kernel_tex_fetch_ssei(tex, index) (kg->tex.fetch_ssei(index))
 #define kernel_tex_lookup(tex, t, offset, size) (kg->tex.lookup(t, offset, size))
-#define kernel_tex_image_interp(tex, x, y) ((tex < MAX_FLOAT4_IMAGES) ? kg->texture_float4_images[tex].interp(x, y) : kg->texture_byte_images[tex - MAX_FLOAT4_IMAGES].interp(x, y))
-#define kernel_tex_image_interp_3d(tex, x, y, z) ((tex < MAX_FLOAT4_IMAGES) ? kg->texture_float4_images[tex].interp_3d(x, y, z) : kg->texture_byte_images[tex - MAX_FLOAT4_IMAGES].interp_3d(x, y, z))
-#define kernel_tex_image_interp_3d_ex(tex, x, y, z, interpolation) ((tex < MAX_FLOAT4_IMAGES) ? kg->texture_float4_images[tex].interp_3d_ex(x, y, z, interpolation) : kg->texture_byte_images[tex - MAX_FLOAT4_IMAGES].interp_3d_ex(x, y, z, interpolation))
+#define kernel_tex_image_interp(tex, x, y) ((tex < TEX_NUM_FLOAT4_IMAGES_CPU) ? kg->texture_float4_images[tex].interp(x, y) : kg->texture_byte4_images[tex - TEX_NUM_FLOAT4_IMAGES_CPU].interp(x, y))
+#define kernel_tex_image_interp_3d(tex, x, y, z) ((tex < TEX_NUM_FLOAT4_IMAGES_CPU) ? kg->texture_float4_images[tex].interp_3d(x, y, z) : kg->texture_byte4_images[tex - TEX_NUM_FLOAT4_IMAGES_CPU].interp_3d(x, y, z))
+#define kernel_tex_image_interp_3d_ex(tex, x, y, z, interpolation) ((tex < TEX_NUM_FLOAT4_IMAGES_CPU) ? kg->texture_float4_images[tex].interp_3d_ex(x, y, z, interpolation) : kg->texture_byte4_images[tex - TEX_NUM_FLOAT4_IMAGES_CPU].interp_3d_ex(x, y, z, interpolation))
 
 #define kernel_data (kg->__data)
 
diff --git a/intern/cycles/kernel/kernel_globals.h b/intern/cycles/kernel/kernel_globals.h
index 3291239..b08d892 100644
--- a/intern/cycles/kernel/kernel_globals.h
+++ b/intern/cycles/kernel/kernel_globals.h
@@ -31,12 +31,9 @@ struct OSLThreadData;
 struct OSLShadingSystem;
 #  endif
 
-#  define MAX_BYTE_IMAGES   1024
-#  define MAX_FLOAT4_IMAGES  1024
-
 typedef struct KernelGlobals {
-	texture_image_uchar4 texture_byte_images[MAX_BYTE_IMAGES];
-	texture_image_float4 texture_float4_images[MAX_FLOAT4_IMAGES];
+	texture_image_uchar4 texture_byte4_images[TEX_NUM_BYTE4_IMAGES_CPU];
+	texture_image_float4 texture_float4_images[TEX_NUM_FLOAT4_IMAGES_CPU];
 
 #  define KERNEL_TEX(type, ttype, name) ttype name;
 #  define KERNEL_IMAGE_TEX(type, ttype, name)
diff --git a/intern/cycles/kernel/kernels/cpu/kernel.cpp b/intern/cycles/kernel/kernels/cpu/kernel.cpp
index c0a333a..e7d0d8a 100644
--- a/intern/cycles/kernel/kernels/cpu/kernel.cpp
+++ b/intern/cycles/kernel/kernels/cpu/kernel.cpp
@@ -95,7 +95,7 @@ void kernel_tex_copy(KernelGlobals *kg,
 		int id = atoi(name + strlen("__tex_image_float4_"));
 		int array_index = id;
 
-		if(array_index >= 0 && array_index < MAX_FLOAT4_IMAGES) {
+		if(array_index >= 0 && array_index < TEX_NUM_FLOAT4_IMAGES_CPU) {
 			tex = &kg->texture_float4_images[array_index];
 		}
 
@@ -109,10 +109,10 @@ void kernel_tex_copy(KernelGlobals *kg,
 	else if(strstr(name, "__tex_image_byte4")) {
 		texture_image_uchar4 *tex = NULL;
 		int id = atoi(name + strlen("__tex_image_byte4_"));
-		int array_index = id - MAX_FLOAT4_IMAGES;
+		int array_index = id - TEX_NUM_FLOAT4_IMAGES_CPU;
 
-		if(array_index >= 0 && array_index < MAX_BYTE_IMAGES) {
-			tex = &kg->texture_byte_images[array_index];
+		if(array_index >= 0 && array_index < TEX_NUM_BYTE4_IMAGES_CPU) {
+			tex = &kg->texture_byte4_images[array_index];
 		}
 
 		if(tex) {




More information about the Bf-blender-cvs mailing list