summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/slang/slang-legalize-types.cpp9
-rw-r--r--tests/autodiff/existential-1.slang1
-rw-r--r--tests/autodiff/existential-2.slang1
-rw-r--r--tests/autodiff/material/diff-bwd-falcor-material-system.slang1
-rw-r--r--tests/autodiff/material2/diff-bwd-falcor-material-system.slang1
-rw-r--r--tests/expected-failure-github.txt4
6 files changed, 7 insertions, 10 deletions
diff --git a/source/slang/slang-legalize-types.cpp b/source/slang/slang-legalize-types.cpp
index 9c79e3167..6d827a412 100644
--- a/source/slang/slang-legalize-types.cpp
+++ b/source/slang/slang-legalize-types.cpp
@@ -487,8 +487,13 @@ struct TupleTypeBuilder
fieldType = context->getBuilder()->getVoidType();
// TODO: shallow clone of modifiers, etc.
-
- builder->createStructField(ordinaryStructType, ee.fieldKey, fieldType);
+ IRStructField* originalField = findStructField(originalStructType, ee.fieldKey);
+ IRStructField* newField =
+ builder->createStructField(ordinaryStructType, ee.fieldKey, fieldType);
+ // In case the original struct had offset decorations attached, transfer those as
+ // well. The original offsets should still be valid, since we only skip fields of
+ // types that aren't representable in memory.
+ originalField->transferDecorationsTo(newField);
}
ordinaryType = LegalType::simple((IRType*)ordinaryStructType);
diff --git a/tests/autodiff/existential-1.slang b/tests/autodiff/existential-1.slang
index f60eb50e6..4f93dd04d 100644
--- a/tests/autodiff/existential-1.slang
+++ b/tests/autodiff/existential-1.slang
@@ -2,7 +2,6 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
-//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff/existential-2.slang b/tests/autodiff/existential-2.slang
index 3bf988d75..dd68c2972 100644
--- a/tests/autodiff/existential-2.slang
+++ b/tests/autodiff/existential-2.slang
@@ -2,7 +2,6 @@
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
-//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<float> outputBuffer;
diff --git a/tests/autodiff/material/diff-bwd-falcor-material-system.slang b/tests/autodiff/material/diff-bwd-falcor-material-system.slang
index df63b317a..6d4101d12 100644
--- a/tests/autodiff/material/diff-bwd-falcor-material-system.slang
+++ b/tests/autodiff/material/diff-bwd-falcor-material-system.slang
@@ -1,6 +1,5 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
-//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// outputBuffer is defined in IBSDF.slang
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0], stride=4):out,name=outputBuffer
diff --git a/tests/autodiff/material2/diff-bwd-falcor-material-system.slang b/tests/autodiff/material2/diff-bwd-falcor-material-system.slang
index 45387315e..bf57b8238 100644
--- a/tests/autodiff/material2/diff-bwd-falcor-material-system.slang
+++ b/tests/autodiff/material2/diff-bwd-falcor-material-system.slang
@@ -1,6 +1,5 @@
//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -shaderobj -output-using-type
//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj -output-using-type
-//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-wgpu
// outputBuffer is defined in IBSDF.slang
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
diff --git a/tests/expected-failure-github.txt b/tests/expected-failure-github.txt
index a7d0b6909..11dac66fe 100644
--- a/tests/expected-failure-github.txt
+++ b/tests/expected-failure-github.txt
@@ -6,10 +6,6 @@ tests/language-feature/saturated-cooperation/fuse.slang (vk)
tests/bugs/byte-address-buffer-interlocked-add-f32.slang (vk)
tests/serialization/obfuscated-serialized-module-test.slang.2 syn (mtl)
tests/autodiff/custom-intrinsic.slang.2 syn (wgpu)
-tests/autodiff/existential-1.slang.2 syn (wgpu)
-tests/autodiff/existential-2.slang.2 syn (wgpu)
-tests/autodiff/material/diff-bwd-falcor-material-system.slang.2 syn (wgpu)
-tests/autodiff/material2/diff-bwd-falcor-material-system.slang.2 syn (wgpu)
tests/bugs/atomic-coerce.slang.3 syn (wgpu)
tests/bugs/buffer-swizzle-store.slang.3 syn (wgpu)
tests/bugs/dxbc-double-problem.slang.6 syn (wgpu)