Page MenuHome

Cycles: Curve object evaluated mesh does not update
Closed, ResolvedPublicBUG

Description

System Information
Operating system: Linux-5.14.13-200.fc34.x86_64-x86_64-with-glibc2.33 64 Bits
Graphics card: NVIDIA GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 470.74

Blender Version
Most likely caused by rB1bc655c5aa64: Fix T92815: Incorrect handling of evaluated meshes from curves

Short description of error
Curve object evaluated mesh does not always update.

Exact steps for others to reproduce the error

  • Toggle "Fill Caps"
  • Watch as the curve object usually doesn't update, but the mesh object does.

Event Timeline

Hans Goudey (HooglyBoogly) changed the task status from Needs Triage to Confirmed.Nov 5 2021, 7:23 PM
Hans Goudey (HooglyBoogly) created this task.
Hans Goudey (HooglyBoogly) changed the subtype of this task from "Report" to "Bug".

Here's a small diff that fixes this issue. However, it's definitely not correct:

diff --git a/intern/cycles/blender/geometry.cpp b/intern/cycles/blender/geometry.cpp
index 479e76f68bc..846fbb472da 100644
--- a/intern/cycles/blender/geometry.cpp
+++ b/intern/cycles/blender/geometry.cpp
@@ -139,9 +139,10 @@ Geometry *BlenderSync::sync_geometry(BL::Depsgraph &b_depsgraph,
         }
       }
 
-      if (!attribute_recalc) {
-        return geom;
-      }
+      // if (!attribute_recalc) {
+      //   std::cout << "  Returning because of no attribute recalc\n";
+      //   return geom;
+      // }
     }
   }

The problem is that shaders seem to be tagged that they don't need recalculations of attributes, but only for the curve object.
My inexperience with Cycles code is making it hard to understand the bigger picture though.