diff options
-rw-r--r-- | intern/cycles/kernel/kernel_types.h | 2 | ||||
-rw-r--r-- | intern/cycles/kernel/svm/svm_image.h | 6 | ||||
-rw-r--r-- | intern/cycles/render/image.h | 3 |
3 files changed, 10 insertions, 1 deletions
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h index 930fffa3f40..98d998351a7 100644 --- a/intern/cycles/kernel/kernel_types.h +++ b/intern/cycles/kernel/kernel_types.h @@ -36,6 +36,8 @@ CCL_NAMESPACE_BEGIN #define PARTICLE_SIZE 5 #define TIME_INVALID FLT_MAX +#define TEX_NUM_FLOAT_IMAGES 5 + /* device capabilities */ #ifdef __KERNEL_CPU__ #define __KERNEL_SHADING__ diff --git a/intern/cycles/kernel/svm/svm_image.h b/intern/cycles/kernel/svm/svm_image.h index 9877856fec2..0894c9c8290 100644 --- a/intern/cycles/kernel/svm/svm_image.h +++ b/intern/cycles/kernel/svm/svm_image.h @@ -52,6 +52,12 @@ __device_inline float svm_image_texture_frac(float x, int *ix) __device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y, uint srgb) { + /* first slots are used by float textures, which are not supported here */ + if(id < TEX_NUM_FLOAT_IMAGES) + return make_float4(1.0f, 0.0f, 1.0f, 1.0f); + + id -= TEX_NUM_FLOAT_IMAGES; + uint4 info = kernel_tex_fetch(__tex_image_packed_info, id); uint width = info.x; uint height = info.y; diff --git a/intern/cycles/render/image.h b/intern/cycles/render/image.h index 8fb229282dc..485bfc5cbf5 100644 --- a/intern/cycles/render/image.h +++ b/intern/cycles/render/image.h @@ -25,9 +25,10 @@ #include "util_thread.h" #include "util_vector.h" +#include "kernel_types.h" /* for TEX_NUM_FLOAT_IMAGES */ + CCL_NAMESPACE_BEGIN -#define TEX_NUM_FLOAT_IMAGES 5 #define TEX_NUM_IMAGES 95 #define TEX_IMAGE_BYTE_START TEX_NUM_FLOAT_IMAGES |