diff options
| author | Sai Praveen Bangaru <31557731+saipraveenb25@users.noreply.github.com> | 2023-04-21 10:41:24 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-21 10:41:24 -0400 |
| commit | 3406f27d90a248194991b46d3f5fd89a1fd38b11 (patch) | |
| tree | ef01e52d656de622be65a9d98c8554af9b91b766 /tests/autodiff/material2/DiffuseMaterial.slang | |
| parent | cc948557ab305ae0d0c3fe7c8915ab32000bd09e (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.slang | 26 |
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; + } +}; |
