diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-12-15 14:18:42 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-12-15 14:18:42 +0400 |
commit | 06888b7bebf66c5b05dd1a8106e35c57458252c0 (patch) | |
tree | ab9a5c6412438c8988a4e8116432ecd3b5705df3 /intern/cycles/kernel/kernel_emission.h | |
parent | 35dd893c368548b5d9d7bb56a1b9db07c71165d2 (diff) |
Cycles OSL minor optimizations: recycle shading context, don't do memory
allocations for trace data, avoid some virtual function calls. Only helps
a few percentages.
Diffstat (limited to 'intern/cycles/kernel/kernel_emission.h')
-rw-r--r-- | intern/cycles/kernel/kernel_emission.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/intern/cycles/kernel/kernel_emission.h b/intern/cycles/kernel/kernel_emission.h index 6d650a0158d..e56633c9358 100644 --- a/intern/cycles/kernel/kernel_emission.h +++ b/intern/cycles/kernel/kernel_emission.h @@ -42,7 +42,7 @@ __device float3 direct_emissive_eval(KernelGlobals *kg, float rando, ray.time = time; #endif shader_setup_from_background(kg, &sd, &ray); - eval = shader_eval_background(kg, &sd, 0); + eval = shader_eval_background(kg, &sd, 0, SHADER_CONTEXT_EMISSION); } else #endif @@ -52,7 +52,7 @@ __device float3 direct_emissive_eval(KernelGlobals *kg, float rando, /* no path flag, we're evaluating this for all closures. that's weak but * we'd have to do multiple evaluations otherwise */ - shader_eval_surface(kg, &sd, rando, 0); + shader_eval_surface(kg, &sd, rando, 0, SHADER_CONTEXT_EMISSION); /* evaluate emissive closure */ if(sd.flag & SD_EMISSION) @@ -170,7 +170,7 @@ __device float3 indirect_background(KernelGlobals *kg, Ray *ray, int path_flag, /* evaluate background closure */ ShaderData sd; shader_setup_from_background(kg, &sd, ray); - float3 L = shader_eval_background(kg, &sd, path_flag); + float3 L = shader_eval_background(kg, &sd, path_flag, SHADER_CONTEXT_EMISSION); shader_release(kg, &sd); #ifdef __BACKGROUND_MIS__ |