[Bf-blender-cvs] [5bea5e25d52] master: Fix T91728: Cycles render artifacts with motion blur and object attributes

Brecht Van Lommel noreply at git.blender.org
Mon Sep 27 17:45:16 CEST 2021


Commit: 5bea5e25d52fe26b53928781ec0b1f5d4ddf5ad0
Author: Brecht Van Lommel
Date:   Mon Sep 27 17:38:53 2021 +0200
Branches: master
https://developer.blender.org/rB5bea5e25d52fe26b53928781ec0b1f5d4ddf5ad0

Fix T91728: Cycles render artifacts with motion blur and object attributes

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

M	intern/cycles/kernel/geom/geom_motion_triangle.h

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

diff --git a/intern/cycles/kernel/geom/geom_motion_triangle.h b/intern/cycles/kernel/geom/geom_motion_triangle.h
index eb4a39e062b..239bd0a37b2 100644
--- a/intern/cycles/kernel/geom/geom_motion_triangle.h
+++ b/intern/cycles/kernel/geom/geom_motion_triangle.h
@@ -41,7 +41,18 @@ ccl_device_inline int find_attribute_motion(const KernelGlobals *kg,
   uint4 attr_map = kernel_tex_fetch(__attributes_map, attr_offset);
 
   while (attr_map.x != id) {
-    attr_offset += ATTR_PRIM_TYPES;
+    if (UNLIKELY(attr_map.x == ATTR_STD_NONE)) {
+      if (UNLIKELY(attr_map.y == 0)) {
+        return (int)ATTR_STD_NOT_FOUND;
+      }
+      else {
+        /* Chain jump to a different part of the table. */
+        attr_offset = attr_map.z;
+      }
+    }
+    else {
+      attr_offset += ATTR_PRIM_TYPES;
+    }
     attr_map = kernel_tex_fetch(__attributes_map, attr_offset);
   }



More information about the Bf-blender-cvs mailing list