Commit: 8ef5699e23926233ef321a72819292eb08a385dd
Author: Sergey Sharybin
Date:   Mon Jun 27 15:26:08 2016 +0500
Branches: cycles_bvh
https://developer.blender.org/rB8ef5699e23926233ef321a72819292eb08a385dd

Cycles: Avoid unwanted evaluation in non-hair traversal

===================================================================

M       intern/cycles/kernel/geom/geom_bvh_shadow.h
M       intern/cycles/kernel/geom/geom_bvh_subsurface.h
M       intern/cycles/kernel/geom/geom_bvh_traversal.h
M       intern/cycles/kernel/geom/geom_bvh_volume.h
M       intern/cycles/kernel/geom/geom_bvh_volume_all.h

===================================================================

diff --git a/intern/cycles/kernel/geom/geom_bvh_shadow.h 
b/intern/cycles/kernel/geom/geom_bvh_shadow.h
index 8ebd47e..a54c602 100644
--- a/intern/cycles/kernel/geom/geom_bvh_shadow.h
+++ b/intern/cycles/kernel/geom/geom_bvh_shadow.h
@@ -81,7 +81,9 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg,
 
        const ssef pn = cast(ssei(0, 0, 0x80000000, 0x80000000));
        ssef Psplat[3], idirsplat[3];
+#  if BVH_FEATURE(BVH_HAIR)
        ssef tnear(0.0f), tfar(isect_t);
+#  endif
        shuffle_swap_t shufflexyz[3];
 
        Psplat[0] = ssef(P.x);
@@ -282,7 +284,9 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                        Psplat[2] = ssef(P.z);
 
                                        tsplat = ssef(0.0f, 0.0f, -isect_t, 
-isect_t);
+#    if BVH_FEATURE(BVH_HAIR)
                                        tfar = ssef(isect_t);
+#    endif
                                        gen_idirsplat_swap(pn, shuf_identity, 
shuf_swap, idir, idirsplat, shufflexyz);
 #  endif
 
@@ -335,7 +339,9 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                        Psplat[2] = ssef(P.z);
 
                        tsplat = ssef(0.0f, 0.0f, -isect_t, -isect_t);
+#    if BVH_FEATURE(BVH_HAIR)
                        tfar = ssef(isect_t);
+#    endif
                        gen_idirsplat_swap(pn, shuf_identity, shuf_swap, idir, 
idirsplat, shufflexyz);
 #  endif
 
diff --git a/intern/cycles/kernel/geom/geom_bvh_subsurface.h 
b/intern/cycles/kernel/geom/geom_bvh_subsurface.h
index 363c45f..88aaf01 100644
--- a/intern/cycles/kernel/geom/geom_bvh_subsurface.h
+++ b/intern/cycles/kernel/geom/geom_bvh_subsurface.h
@@ -90,7 +90,9 @@ ccl_device void BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg,
 
        const ssef pn = cast(ssei(0, 0, 0x80000000, 0x80000000));
        ssef Psplat[3], idirsplat[3];
+#  if BVH_FEATURE(BVH_HAIR)
        ssef tnear(0.0f), tfar(isect_t);
+#  endif
        shuffle_swap_t shufflexyz[3];
 
        Psplat[0] = ssef(P.x);
diff --git a/intern/cycles/kernel/geom/geom_bvh_traversal.h 
b/intern/cycles/kernel/geom/geom_bvh_traversal.h
index cc7275a..f409dd5 100644
--- a/intern/cycles/kernel/geom/geom_bvh_traversal.h
+++ b/intern/cycles/kernel/geom/geom_bvh_traversal.h
@@ -90,7 +90,9 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg,
 
        const ssef pn = cast(ssei(0, 0, 0x80000000, 0x80000000));
        ssef Psplat[3], idirsplat[3];
+#  if BVH_FEATURE(BVH_HAIR)
        ssef tnear(0.0f), tfar(isect->t);
+#  endif
        shuffle_swap_t shufflexyz[3];
 
        Psplat[0] = ssef(P.x);
@@ -242,7 +244,9 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                                        
if(visibility == PATH_RAY_SHADOW_OPAQUE)
                                                                                
return true;
                                                                        tsplat 
= ssef(0.0f, 0.0f, -isect->t, -isect->t);
+#  if BVH_FEATURE(BVH_HAIR)
                                                                        tfar = 
ssef(isect->t);
+#  endif
 #else
                                                                        
if(visibility == PATH_RAY_SHADOW_OPAQUE)
                                                                                
return true;
@@ -262,7 +266,9 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                                        
if(visibility == PATH_RAY_SHADOW_OPAQUE)
                                                                                
return true;
                                                                        tsplat 
= ssef(0.0f, 0.0f, -isect->t, -isect->t);
+#    if BVH_FEATURE(BVH_HAIR)
                                                                        tfar = 
ssef(isect->t);
+#    endif
 #  else
                                                                        
if(visibility == PATH_RAY_SHADOW_OPAQUE)
                                                                                
return true;
@@ -289,7 +295,9 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                                        
if(visibility == PATH_RAY_SHADOW_OPAQUE)
                                                                                
return true;
                                                                        tsplat 
= ssef(0.0f, 0.0f, -isect->t, -isect->t);
+#    if BVH_FEATURE(BVH_HAIR)
                                                                        tfar = 
ssef(isect->t);
+#    endif
 #  else
                                                                        
if(visibility == PATH_RAY_SHADOW_OPAQUE)
                                                                                
return true;
@@ -319,7 +327,9 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                        Psplat[2] = ssef(P.z);
 
                                        tsplat = ssef(0.0f, 0.0f, -isect->t, 
-isect->t);
+#    if BVH_FEATURE(BVH_HAIR)
                                        tfar = ssef(isect->t);
+#    endif
 
                                        gen_idirsplat_swap(pn, shuf_identity, 
shuf_swap, idir, idirsplat, shufflexyz);
 #  endif
@@ -354,7 +364,9 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                        Psplat[2] = ssef(P.z);
 
                        tsplat = ssef(0.0f, 0.0f, -isect->t, -isect->t);
+#    if BVH_FEATURE(BVH_HAIR)
                        tfar = ssef(isect->t);
+#    endif
 
                        gen_idirsplat_swap(pn, shuf_identity, shuf_swap, idir, 
idirsplat, shufflexyz);
 #  endif
diff --git a/intern/cycles/kernel/geom/geom_bvh_volume.h 
b/intern/cycles/kernel/geom/geom_bvh_volume.h
index 383b06f..5e70ce9 100644
--- a/intern/cycles/kernel/geom/geom_bvh_volume.h
+++ b/intern/cycles/kernel/geom/geom_bvh_volume.h
@@ -78,7 +78,9 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg,
 
        const ssef pn = cast(ssei(0, 0, 0x80000000, 0x80000000));
        ssef Psplat[3], idirsplat[3];
+#  if BVH_FEATURE(BVH_HAIR)
        ssef tnear(0.0f), tfar(isect->t);
+#  endif
        shuffle_swap_t shufflexyz[3];
 
        Psplat[0] = ssef(P.x);
@@ -234,7 +236,9 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                Psplat[2] = ssef(P.z);
 
                                                tsplat = ssef(0.0f, 0.0f, 
-isect->t, -isect->t);
+#    if BVH_FEATURE(BVH_HAIR)
                                                tfar = ssef(isect->t);
+#    endif
 
                                                gen_idirsplat_swap(pn, 
shuf_identity, shuf_swap, idir, idirsplat, shufflexyz);
 #  endif
@@ -275,7 +279,9 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                        Psplat[2] = ssef(P.z);
 
                        tsplat = ssef(0.0f, 0.0f, -isect->t, -isect->t);
+#    if BVH_FEATURE(BVH_HAIR)
                        tfar = ssef(isect->t);
+#    endif
 
                        gen_idirsplat_swap(pn, shuf_identity, shuf_swap, idir, 
idirsplat, shufflexyz);
 #  endif
diff --git a/intern/cycles/kernel/geom/geom_bvh_volume_all.h 
b/intern/cycles/kernel/geom/geom_bvh_volume_all.h
index 5e5be16..ab5ac85 100644
--- a/intern/cycles/kernel/geom/geom_bvh_volume_all.h
+++ b/intern/cycles/kernel/geom/geom_bvh_volume_all.h
@@ -82,7 +82,9 @@ ccl_device uint BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg,
 
        const ssef pn = cast(ssei(0, 0, 0x80000000, 0x80000000));
        ssef Psplat[3], idirsplat[3];
+#  if BVH_FEATURE(BVH_HAIR)
        ssef tnear(0.0f), tfar(isect_t);
+#  endif
        shuffle_swap_t shufflexyz[3];
 
        Psplat[0] = ssef(P.x);
@@ -287,7 +289,9 @@ ccl_device uint BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                                                Psplat[2] = ssef(P.z);
 
                                                tsplat = ssef(0.0f, 0.0f, 
-isect_t, -isect_t);
+#    if BVH_FEATURE(BVH_HAIR)
                                                tfar = ssef(isect_t);
+#    endif
 
                                                gen_idirsplat_swap(pn, 
shuf_identity, shuf_swap, idir, idirsplat, shufflexyz);
 #  endif
@@ -345,7 +349,9 @@ ccl_device uint BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals 
*kg,
                        Psplat[2] = ssef(P.z);
 
                        tsplat = ssef(0.0f, 0.0f, -isect_t, -isect_t);
+#    if BVH_FEATURE(BVH_HAIR)
                        tfar = ssef(isect_t);
+#    endif
 
                        gen_idirsplat_swap(pn, shuf_identity, shuf_swap, idir, 
idirsplat, shufflexyz);
 #  endif

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to