From a5342abd5b2a57cc429233216ddf096321503372 Mon Sep 17 00:00:00 2001 From: Pascal Lecocq Date: Thu, 18 May 2023 19:31:25 -0700 Subject: [PATCH] Fix userdata derivatives for interpolated params on GPU Signed-off-by: Pascal Lecocq --- src/liboslexec/llvm_instance.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/liboslexec/llvm_instance.cpp b/src/liboslexec/llvm_instance.cpp index 468338a8f..1b31494ae 100644 --- a/src/liboslexec/llvm_instance.cpp +++ b/src/liboslexec/llvm_instance.cpp @@ -563,6 +563,8 @@ BackendLLVM::llvm_assign_initial_value(const Symbol& sym, bool force) llvm::Value* dst = llvm_void_ptr(sym); TypeDesc t = sym.typespec().simpletype(); ll.op_memcpy(dst, src, t.size(), t.basesize()); + if (sym.has_derivs()) + llvm_zero_derivs(sym); #endif } else if (!sym.lockgeom() && !sym.typespec().is_closure()) { // geometrically-varying param; memcpy its default value