diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-05-20 16:26:01 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-05-20 16:26:01 +0400 |
commit | 63d4bafff57392ffd81d686a7ccdd4fbdf863c97 (patch) | |
tree | 9210c3c675d79bdbe80747f98e544dd2e0251a73 /intern/cycles/kernel/svm/svm_image.h | |
parent | 2e66cb520c5e41b83665119a9787e9839ce7c2b3 (diff) |
Cycles: some steps to getting OpenCL backend to compile.
Diffstat (limited to 'intern/cycles/kernel/svm/svm_image.h')
-rw-r--r-- | intern/cycles/kernel/svm/svm_image.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/intern/cycles/kernel/svm/svm_image.h b/intern/cycles/kernel/svm/svm_image.h index 88f0b582442..586e35c6465 100644 --- a/intern/cycles/kernel/svm/svm_image.h +++ b/intern/cycles/kernel/svm/svm_image.h @@ -31,6 +31,9 @@ __device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y) also note that cuda has 128 textures limit, we use 100 now, since we still need some for other storage */ +#ifdef __KERNEL_OPENCL__ + r = make_float4(0.0f, 0.0f, 0.0f, 0.0f); /* todo */ +#else switch(id) { case 0: r = kernel_tex_image_interp(__tex_image_000, x, y); break; case 1: r = kernel_tex_image_interp(__tex_image_001, x, y); break; @@ -136,6 +139,7 @@ __device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y) kernel_assert(0); return make_float4(0.0f, 0.0f, 0.0f, 0.0f); } +#endif return r; } @@ -151,8 +155,11 @@ __device void svm_node_tex_image(KernelGlobals *kg, ShaderData *sd, float *stack float4 f = svm_image_texture(kg, id, co.x, co.y); float3 r = make_float3(f.x, f.y, f.z); - if(srgb) - r = color_srgb_to_scene_linear(r); + if(srgb) { + r.x = color_srgb_to_scene_linear(r.x); + r.y = color_srgb_to_scene_linear(r.y); + r.z = color_srgb_to_scene_linear(r.z); + } stack_store_float3(stack, out_offset, r); } @@ -170,8 +177,11 @@ __device void svm_node_tex_environment(KernelGlobals *kg, ShaderData *sd, float float4 f = svm_image_texture(kg, id, u, v); float3 r = make_float3(f.x, f.y, f.z); - if(srgb) - r = color_srgb_to_scene_linear(r); + if(srgb) { + r.x = color_srgb_to_scene_linear(r.x); + r.y = color_srgb_to_scene_linear(r.y); + r.z = color_srgb_to_scene_linear(r.z); + } stack_store_float3(stack, out_offset, r); } |