From d6555d936cb15c3d64836ca1446bfc7b065b4aa0 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Mon, 9 May 2016 09:16:41 +0200 Subject: 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. --- intern/cycles/device/device_cpu.cpp | 3 +++ intern/cycles/kernel/kernel_compat_cpu.h | 6 +++--- intern/cycles/kernel/kernel_globals.h | 7 ++----- intern/cycles/kernel/kernels/cpu/kernel.cpp | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) (limited to 'intern') diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp index 676b1279a80..4d0a57d870a 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 6e56f1e21fa..ee8cee0ccfc 100644 --- a/intern/cycles/kernel/kernel_compat_cpu.h +++ b/intern/cycles/kernel/kernel_compat_cpu.h @@ -479,9 +479,9 @@ typedef texture_image 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 329123943d9..b08d8924dc7 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 c0a333ab18c..e7d0d8a0408 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) { -- cgit v1.2.3