summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArielG-NV <159081215+ArielG-NV@users.noreply.github.com>2024-07-12 11:46:38 -0400
committerGitHub <noreply@github.com>2024-07-12 08:46:38 -0700
commit1a0bbb53c116e6e5f89ed577803341e6aa1bce82 (patch)
tree7b9da9ceaba1d2736b341c8e08fdebca8463266d
parent0b6d78f44a20f81f8feba99d0ed9423a37eb8451 (diff)
use `nullptr' for IRStructKey with `IRDerivativeMemberDecoration` (#4623)
-rw-r--r--source/slang/slang-emit.cpp1
-rw-r--r--tests/compute/struct-autodiff-default-init.slang25
2 files changed, 26 insertions, 0 deletions
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp
index 243dd65e8..d3f6ebd8d 100644
--- a/source/slang/slang-emit.cpp
+++ b/source/slang/slang-emit.cpp
@@ -292,6 +292,7 @@ void calcRequiredLoweringPassSet(RequiredLoweringPassSet& result, CodeGenContext
case kIROp_BackwardDifferentiate:
case kIROp_ForwardDifferentiate:
case kIROp_MakeDifferentialPairUserCode:
+ case kIROp_DerivativeMemberDecoration:
result.autodiff = true;
break;
case kIROp_VerticesType:
diff --git a/tests/compute/struct-autodiff-default-init.slang b/tests/compute/struct-autodiff-default-init.slang
new file mode 100644
index 000000000..3d6548125
--- /dev/null
+++ b/tests/compute/struct-autodiff-default-init.slang
@@ -0,0 +1,25 @@
+// struct-default-init.slang
+//TEST:SIMPLE(filecheck=HLSL): -target hlsl -entry computeMain -stage compute
+//TEST:SIMPLE(filecheck=GLSL): -target glsl -entry computeMain -stage compute
+//TEST:SIMPLE(filecheck=METAL): -target metal -entry computeMain -stage compute
+//TEST:SIMPLE(filecheck=CPP): -target cpp -entry computeMain -stage compute
+//TEST:SIMPLE(filecheck=SPIRV): -target spirv -entry computeMain -stage compute
+
+// HLSL: computeMain
+// GLSL: main
+// METAL: computeMain
+// CPP: computeMain
+// SPIRV: OpEntryPoint
+
+struct PowActivationEx : IDifferentiable
+{
+ float power;
+}
+RWStructuredBuffer<float> return_value;
+
+[numthreads(256, 1, 1)]
+void computeMain()
+{
+ PowActivationEx args;
+ return_value[0] = args.power;
+} \ No newline at end of file