summaryrefslogtreecommitdiff
path: root/source/slang/diff.meta.slang
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/diff.meta.slang')
-rw-r--r--source/slang/diff.meta.slang63
1 files changed, 55 insertions, 8 deletions
diff --git a/source/slang/diff.meta.slang b/source/slang/diff.meta.slang
index c912e026c..a4c468ef7 100644
--- a/source/slang/diff.meta.slang
+++ b/source/slang/diff.meta.slang
@@ -273,7 +273,12 @@ struct TensorView
__subscript(uint index) -> T
{
[ForceInline] [__NoSideEffect] get { return load(index); }
- [ForceInline] set { store(index, newValue); }
+
+ [ForceInline] set
+ {
+ unmodified(this);
+ store(index, newValue);
+ }
[__NoSideEffect]
ref
@@ -288,7 +293,13 @@ struct TensorView
__subscript(uint i1, uint i2) -> T
{
[ForceInline] [__NoSideEffect] get { return load(i1, i2); }
- [ForceInline] set { store(i1, i2, newValue); }
+
+ [ForceInline] set
+ {
+ unmodified(this);
+ store(i1, i2, newValue);
+ }
+
[__NoSideEffect]
ref
{
@@ -302,7 +313,13 @@ struct TensorView
__subscript(uint2 i) -> T
{
[ForceInline] [__NoSideEffect] get { return load(i.x, i.y); }
- [ForceInline] set { store(i.x, i.y, newValue); }
+
+ [ForceInline] set
+ {
+ unmodified(this);
+ store(i.x, i.y, newValue);
+ }
+
[__NoSideEffect]
ref
{
@@ -316,7 +333,13 @@ struct TensorView
__subscript(uint i1, uint i2, uint i3) -> T
{
[ForceInline] [__NoSideEffect] get { return load(i1, i2, i3); }
- [ForceInline] set { store(i1, i2, i3, newValue); }
+
+ [ForceInline] set
+ {
+ unmodified(this);
+ store(i1, i2, i3, newValue);
+ }
+
[__NoSideEffect]
ref
{
@@ -330,7 +353,13 @@ struct TensorView
__subscript(uint3 i) -> T
{
[ForceInline] [__NoSideEffect] get { return load(i.x, i.y, i.z); }
- [ForceInline] set { store(i.x, i.y, i.z, newValue); }
+
+ [ForceInline] set
+ {
+ unmodified(this);
+ store(i.x, i.y, i.z, newValue);
+ }
+
[__NoSideEffect]
ref
{
@@ -344,7 +373,13 @@ struct TensorView
__subscript(uint i1, uint i2, uint i3, uint i4) -> T
{
[ForceInline] [__NoSideEffect] get { return load(i1, i2, i3, i4); }
- [ForceInline] set { store(i1, i2, i3, i4, newValue); }
+
+ [ForceInline] set
+ {
+ unmodified(this);
+ store(i1, i2, i3, i4, newValue);
+ }
+
[__NoSideEffect]
ref
{
@@ -358,7 +393,13 @@ struct TensorView
__subscript(uint4 i) -> T
{
[__NoSideEffect][ForceInline] get { return load(i.x, i.y, i.z, i.w); }
- [ForceInline] set { store(i.x, i.y, i.z, i.w, newValue); }
+
+ [ForceInline] set
+ {
+ unmodified(this);
+ store(i.x, i.y, i.z, i.w, newValue);
+ }
+
[__NoSideEffect]
ref
{
@@ -372,7 +413,13 @@ struct TensorView
__subscript(uint i1, uint i2, uint i3, uint i4, uint i5) -> T
{
[ForceInline] [__NoSideEffect] get { return load(i1, i2, i3, i4, i5); }
- [ForceInline] set { store(i1, i2, i3, i4, i5, newValue); }
+
+ [ForceInline] set
+ {
+ unmodified(this);
+ store(i1, i2, i3, i4, i5, newValue);
+ }
+
[__NoSideEffect]
ref
{