[Bf-blender-cvs] [53f25df5bcc] master: Fix T92128: Cycles CUDA wrong hair attributes, after recent changes

Brecht Van Lommel noreply at git.blender.org
Fri Oct 15 15:59:42 CEST 2021


Commit: 53f25df5bcc59dbaee085d3a319df2a685b67d1a
Author: Brecht Van Lommel
Date:   Fri Oct 15 15:31:31 2021 +0200
Branches: master
https://developer.blender.org/rB53f25df5bcc59dbaee085d3a319df2a685b67d1a

Fix T92128: Cycles CUDA wrong hair attributes, after recent changes

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

M	intern/cycles/kernel/bvh/bvh_shadow_all.h
M	intern/cycles/kernel/bvh/bvh_traversal.h

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

diff --git a/intern/cycles/kernel/bvh/bvh_shadow_all.h b/intern/cycles/kernel/bvh/bvh_shadow_all.h
index c67c820edbc..ea1ee26b863 100644
--- a/intern/cycles/kernel/bvh/bvh_shadow_all.h
+++ b/intern/cycles/kernel/bvh/bvh_shadow_all.h
@@ -171,7 +171,9 @@ ccl_device_inline
                   }
                 }
 
-                const int curve_object = kernel_tex_fetch(__prim_object, prim_addr);
+                const int curve_object = (object == OBJECT_NONE) ?
+                                             kernel_tex_fetch(__prim_object, prim_addr) :
+                                             object;
                 const int curve_type = kernel_tex_fetch(__prim_type, prim_addr);
                 const int curve_prim = kernel_tex_fetch(__prim_index, prim_addr);
                 hit = curve_intersect(
diff --git a/intern/cycles/kernel/bvh/bvh_traversal.h b/intern/cycles/kernel/bvh/bvh_traversal.h
index a46c45d3529..9f271a4730c 100644
--- a/intern/cycles/kernel/bvh/bvh_traversal.h
+++ b/intern/cycles/kernel/bvh/bvh_traversal.h
@@ -172,7 +172,9 @@ ccl_device_noinline bool BVH_FUNCTION_FULL_NAME(BVH)(ccl_global const KernelGlob
                   }
                 }
 
-                const int curve_object = kernel_tex_fetch(__prim_object, prim_addr);
+                const int curve_object = (object == OBJECT_NONE) ?
+                                             kernel_tex_fetch(__prim_object, prim_addr) :
+                                             object;
                 const int curve_prim = kernel_tex_fetch(__prim_index, prim_addr);
                 const int curve_type = kernel_tex_fetch(__prim_type, prim_addr);
                 const bool hit = curve_intersect(



More information about the Bf-blender-cvs mailing list