diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/autodiff/material2/GlossyMaterial.slang | 2 | ||||
| -rw-r--r-- | tests/diagnostics/autodiff-custom-diff-inout.slang | 17 | ||||
| -rw-r--r-- | tests/diagnostics/autodiff-custom-diff-inout.slang.expected | 11 |
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 = { +} |
