diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-07-11 15:46:42 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-07-11 15:46:42 +0300 |
commit | b99f7a9b2aec906fea7528223e15b3fb8c23c9cc (patch) | |
tree | 1939487caa10737045ff9c2f6c28b8e8be91a430 /intern/cycles/kernel | |
parent | cb3b19730c4fa402c065e288330f4f1f197026ab (diff) |
Cycles: Fix Extend image extension mode on OpenCL
Diffstat (limited to 'intern/cycles/kernel')
-rw-r--r-- | intern/cycles/kernel/svm/svm_image.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/intern/cycles/kernel/svm/svm_image.h b/intern/cycles/kernel/svm/svm_image.h index 6a2248865d7..44732734c31 100644 --- a/intern/cycles/kernel/svm/svm_image.h +++ b/intern/cycles/kernel/svm/svm_image.h @@ -115,16 +115,16 @@ ccl_device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y, nix = svm_image_texture_wrap_periodic(ix+1, width); niy = svm_image_texture_wrap_periodic(iy+1, height); } - else if(extension == EXTENSION_CLIP) { - if(x < 0.0f || y < 0.0f || x > 1.0f || y > 1.0f) - return make_float4(0.0f, 0.0f, 0.0f, 0.0f); - } - else { /* EXTENSION_EXTEND */ - ix = svm_image_texture_wrap_clamp(ix, width); - iy = svm_image_texture_wrap_clamp(iy, height); - + else { + if(extension == EXTENSION_CLIP) { + if(x < 0.0f || y < 0.0f || x > 1.0f || y > 1.0f) { + return make_float4(0.0f, 0.0f, 0.0f, 0.0f); + } + } nix = svm_image_texture_wrap_clamp(ix+1, width); niy = svm_image_texture_wrap_clamp(iy+1, height); + ix = svm_image_texture_wrap_clamp(ix, width); + iy = svm_image_texture_wrap_clamp(iy, height); } r = (1.0f - ty)*(1.0f - tx)*svm_image_texture_read(kg, id, offset + ix + iy*width); |