From be1a5a23284910c1bf1a9c635e34f51a5b22940f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 2 Apr 2013 15:53:24 +0000 Subject: Fix 34831: SSS issue with non-progressive render, due to error in closure merging code. --- intern/cycles/kernel/kernel_shader.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'intern/cycles/kernel/kernel_shader.h') diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index 572255f938d..b5acf4824e3 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -906,7 +906,7 @@ __device void shader_merge_closures(KernelGlobals *kg, ShaderData *sd) ShaderClosure *scj = &sd->closure[j]; #ifdef __OSL__ - if(!sci->prim && sci->type == scj->type && sci->data0 == scj->data0 && sci->data1 == scj->data1) { + if(!sci->prim && !scj->prim && sci->type == scj->type && sci->data0 == scj->data0 && sci->data1 == scj->data1) { #else if(sci->type == scj->type && sci->data0 == scj->data0 && sci->data1 == scj->data1) { #endif @@ -918,6 +918,7 @@ __device void shader_merge_closures(KernelGlobals *kg, ShaderData *sd) memmove(scj, scj+1, size*sizeof(ShaderClosure)); sd->num_closure--; + j--; } } } -- cgit v1.2.3