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/closure/volume.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/closure/volume.h')
-rw-r--r-- | intern/cycles/kernel/closure/volume.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/intern/cycles/kernel/closure/volume.h b/intern/cycles/kernel/closure/volume.h index 734f9111ab6..0b553f38a25 100644 --- a/intern/cycles/kernel/closure/volume.h +++ b/intern/cycles/kernel/closure/volume.h @@ -53,8 +53,13 @@ __device float3 volume_transparent_eval_phase(const ShaderClosure *sc, const flo /* VOLUME CLOSURE */ -__device float3 volume_eval_phase(const ShaderClosure *sc, const float3 omega_in, const float3 omega_out) +__device float3 volume_eval_phase(KernelGlobals *kg, const ShaderClosure *sc, const float3 omega_in, const float3 omega_out) { +#ifdef __OSL__ + if(kg->osl && sc->prim) + return OSLShader::volume_eval_phase(sc, omega_in, omega_out); +#endif + float3 eval; switch(sc->type) { |