Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-12-15 14:18:42 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-12-15 14:18:42 +0400
commit06888b7bebf66c5b05dd1a8106e35c57458252c0 (patch)
treeab9a5c6412438c8988a4e8116432ecd3b5705df3 /intern/cycles/kernel/closure/volume.h
parent35dd893c368548b5d9d7bb56a1b9db07c71165d2 (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.h7
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) {