diff options
Diffstat (limited to 'tests/language-feature')
4 files changed, 63 insertions, 0 deletions
diff --git a/tests/language-feature/capability/var-capability-incompatible.slang b/tests/language-feature/capability/var-capability-incompatible.slang new file mode 100644 index 000000000..89378f6b3 --- /dev/null +++ b/tests/language-feature/capability/var-capability-incompatible.slang @@ -0,0 +1,19 @@ +//TEST:SIMPLE(filecheck=CHECK):-target spirv +[require(hlsl)] +struct MyType +{} + +//CHECK: ([[# @LINE+2]]): error 36107 +[numthreads(1,1,1)] +void f1() +{ + MyType t; // compile to spirv should result error here. +} + +ConstantBuffer<MyType> t2; +//CHECK: ([[# @LINE+2]]): error 36107 +[numthreads(1,1,1)] +void f2() // compile to spirv should result error here. +{ + ConstantBuffer<MyType> t3 = t2; +} diff --git a/tests/language-feature/capability/var-capability-wgsl-2.slang b/tests/language-feature/capability/var-capability-wgsl-2.slang new file mode 100644 index 000000000..4fb259ea6 --- /dev/null +++ b/tests/language-feature/capability/var-capability-wgsl-2.slang @@ -0,0 +1,15 @@ +//TEST:SIMPLE(filecheck=CHECK_IGNORE_CAPS): -target wgsl -entry Main -stage compute + +//CHECK_IGNORE_CAPS-NOT: error 36107 +[require(cpp_cuda_glsl_hlsl_metal_spirv)] +struct inputWrapper { + RWBuffer<float> InputTyped; +}; + +inputWrapper input; + +[numthreads(64, 1, 1)] +void Main(uint3 DTid : SV_DispatchThreadID) +{ + // We should not see an error here, because the inputWrapper is not referenced. +}
\ No newline at end of file diff --git a/tests/language-feature/capability/var-capability-wgsl.slang b/tests/language-feature/capability/var-capability-wgsl.slang new file mode 100644 index 000000000..2a67cc6e2 --- /dev/null +++ b/tests/language-feature/capability/var-capability-wgsl.slang @@ -0,0 +1,15 @@ +//TEST:SIMPLE(filecheck=CHECK): -target wgsl -entry Main -stage compute +//TEST:SIMPLE(filecheck=CHECK_IGNORE_CAPS): -target wgsl -entry Main -stage compute -ignore-capabilities + +[require(cpp_cuda_glsl_hlsl_metal_spirv)] +Buffer<float> InputTyped; +[require(cpp_cuda_glsl_hlsl_metal_spirv)] +RWBuffer<float> OutputTyped; + +//CHECK: ([[# @LINE+3]]): error 36107 +//CHECK_IGNORE_CAPS-NOT: error 36107 +[numthreads(64, 1, 1)] +void Main(uint3 DTid : SV_DispatchThreadID) +{ + OutputTyped[DTid.x] = InputTyped[DTid.x]; +}
\ No newline at end of file diff --git a/tests/language-feature/capability/var-implicit-capability-wgsl.slang b/tests/language-feature/capability/var-implicit-capability-wgsl.slang new file mode 100644 index 000000000..56aa4157d --- /dev/null +++ b/tests/language-feature/capability/var-implicit-capability-wgsl.slang @@ -0,0 +1,14 @@ +//TEST:SIMPLE(filecheck=CHECK): -target wgsl -entry Main -stage compute +//TEST:SIMPLE(filecheck=CHECK_IGNORE_CAPS): -target wgsl -entry Main -stage compute -ignore-capabilities + + +Buffer<float> InputTyped; +RWBuffer<float> OutputTyped; + +//CHECK: ([[# @LINE+3]]): error 36107 +//CHECK_IGNORE_CAPS-NOT: error 36107 +[numthreads(64, 1, 1)] +void Main(uint3 DTid : SV_DispatchThreadID) +{ + OutputTyped[DTid.x] = InputTyped[DTid.x]; +}
\ No newline at end of file |
