summaryrefslogtreecommitdiffstats
path: root/tests/autodiff/material2/DiffuseMaterial.slang
diff options
context:
space:
mode:
authorSai Praveen Bangaru <31557731+saipraveenb25@users.noreply.github.com>2023-04-21 10:41:24 -0400
committerGitHub <noreply@github.com>2023-04-21 10:41:24 -0400
commit3406f27d90a248194991b46d3f5fd89a1fd38b11 (patch)
treeef01e52d656de622be65a9d98c8554af9b91b766 /tests/autodiff/material2/DiffuseMaterial.slang
parentcc948557ab305ae0d0c3fe7c8915ab32000bd09e (diff)
AD: Various fixes around dynamic dispatch (#2820)
* Add a test for the new diff material system * Various fixes for AD - inout primal context params converted to out params, - added attributed types to list of stored types - used differentiated primal func type instead of type of differentiated func to avoid tangling with user-code differential types. --------- Co-authored-by: Lifan Wu <lifanw@nvidia.com>
Diffstat (limited to 'tests/autodiff/material2/DiffuseMaterial.slang')
-rw-r--r--tests/autodiff/material2/DiffuseMaterial.slang26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/autodiff/material2/DiffuseMaterial.slang b/tests/autodiff/material2/DiffuseMaterial.slang
new file mode 100644
index 000000000..721445249
--- /dev/null
+++ b/tests/autodiff/material2/DiffuseMaterial.slang
@@ -0,0 +1,26 @@
+//TEST_IGNORE_FILE:
+
+__exported import IMaterial;
+__exported import DiffuseMaterialInstance;
+
+struct DiffuseMaterial : IMaterial
+{
+ float3 baseColor;
+
+ typedef DiffuseMaterialInstance MaterialInstance;
+
+ [TreatAsDifferentiable]
+ float3 getAlbedo(float3 albedo)
+ {
+ return albedo;
+ }
+
+ [BackwardDifferentiable]
+ DiffuseMaterialInstance setupMaterialInstance(out MaterialInstanceData miData)
+ {
+ float3 albedo = getAlbedo(baseColor);
+ DiffuseMaterialInstance mi = { baseColor };
+ for (uint i = 0; i < 3; i++) miData.data[i] = albedo[i];
+ return mi;
+ }
+};