summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/autodiff/material2/GlossyMaterial.slang2
-rw-r--r--tests/diagnostics/autodiff-custom-diff-inout.slang17
-rw-r--r--tests/diagnostics/autodiff-custom-diff-inout.slang.expected11
3 files changed, 29 insertions, 1 deletions
diff --git a/tests/autodiff/material2/GlossyMaterial.slang b/tests/autodiff/material2/GlossyMaterial.slang
index 969370896..34ade54cb 100644
--- a/tests/autodiff/material2/GlossyMaterial.slang
+++ b/tests/autodiff/material2/GlossyMaterial.slang
@@ -23,7 +23,7 @@ struct GlossyMaterial : IMaterial
[BackwardDerivativeOf(getAlbedo)]
[TreatAsDifferentiable]
- void __bwd_d_getAlbedo(DifferentialPair<float3> dpAlbedo, float3 dOut)
+ void __bwd_d_getAlbedo(inout DifferentialPair<float3> dpAlbedo, float3 dOut)
{
[unroll]
for (int j = 0; j < 3; j++) outputBuffer[j + 3] += dOut[j];
diff --git a/tests/diagnostics/autodiff-custom-diff-inout.slang b/tests/diagnostics/autodiff-custom-diff-inout.slang
new file mode 100644
index 000000000..32f36dce4
--- /dev/null
+++ b/tests/diagnostics/autodiff-custom-diff-inout.slang
@@ -0,0 +1,17 @@
+//DIAGNOSTIC_TEST:SIMPLE:
+
+[BackwardDerivative(__d_f)]
+float f(float x)
+{
+ return x * x;
+}
+
+void __d_f(float x, float.Differential dout)
+{
+}
+
+float main(float x)
+{
+ DifferentialPair<float> dpx = diffPair(x, 1.f);
+ bwd_diff(f)(dpx, 1.f);
+} \ No newline at end of file
diff --git a/tests/diagnostics/autodiff-custom-diff-inout.slang.expected b/tests/diagnostics/autodiff-custom-diff-inout.slang.expected
new file mode 100644
index 000000000..103c94c9e
--- /dev/null
+++ b/tests/diagnostics/autodiff-custom-diff-inout.slang.expected
@@ -0,0 +1,11 @@
+result code = -1
+standard error = {
+tests/diagnostics/autodiff-custom-diff-inout.slang(3): error 30019: expected an expression of type 'float', got 'DifferentialPair<float>'
+[BackwardDerivative(__d_f)]
+ ^~~~~~~~~~~~~~~~~~
+tests/diagnostics/autodiff-custom-diff-inout.slang(3): error 31149: invalid custom derivative. parameter type mismatch at position 0. expected 'InOut<DifferentialPair<float>>', got 'float'
+[BackwardDerivative(__d_f)]
+ ^~~~~~~~~~~~~~~~~~
+}
+standard output = {
+}