summaryrefslogtreecommitdiffstats
path: root/tests/language-feature/capability
diff options
context:
space:
mode:
Diffstat (limited to 'tests/language-feature/capability')
-rw-r--r--tests/language-feature/capability/capability1.slang3
-rw-r--r--tests/language-feature/capability/capability2.slang7
-rw-r--r--tests/language-feature/capability/capability3.slang4
-rw-r--r--tests/language-feature/capability/capability4.slang6
-rw-r--r--tests/language-feature/capability/specializeTargetSwitch.slang59
5 files changed, 67 insertions, 12 deletions
diff --git a/tests/language-feature/capability/capability1.slang b/tests/language-feature/capability/capability1.slang
index b340f5025..76bbd534f 100644
--- a/tests/language-feature/capability/capability1.slang
+++ b/tests/language-feature/capability/capability1.slang
@@ -15,7 +15,7 @@ void caller()
}
[require(spirv, shaderclock)]
-// CHECK: ([[# @LINE+1]]): error 36104:
+// CHECK: error 36104:
void main1()
{
caller(); // Error, shaderclock does not imply spvShaderNonUniform.
@@ -25,6 +25,5 @@ void main1()
[require(spirv, shaderclock)]
void main2()
{
- // CHECK-NOT: error
leafFunc1(); // OK, shaderclock implies spvShaderClockKHR.
}
diff --git a/tests/language-feature/capability/capability2.slang b/tests/language-feature/capability/capability2.slang
index b66da4563..6125c21d3 100644
--- a/tests/language-feature/capability/capability2.slang
+++ b/tests/language-feature/capability/capability2.slang
@@ -39,19 +39,16 @@ struct Impl1 : IFoo
}
}
-// CHECK-NOT: error 361
-
struct Impl2 : IFoo
{
- // CHECK: ([[# @LINE+1]]): error 36104: {{.*}}spvGroupNonUniformArithmetic
+ // CHECK: error 36104: {{.*}}spvGroupNonUniformArithmetic
void method1()
{
useRayQueryKHR(); // OK.
useNonUniformArithmetic(); // error.
}
- // CHECK-NOT: error 361
- // CHECK: ([[# @LINE+1]]): error 36104: {{.*}}spvGroupNonUniformArithmetic
+ // CHECK: error 36104: {{.*}}spvGroupNonUniformArithmetic
void method2()
{
useAtomicFloat16();
diff --git a/tests/language-feature/capability/capability3.slang b/tests/language-feature/capability/capability3.slang
index 96c07a51f..67099a1da 100644
--- a/tests/language-feature/capability/capability3.slang
+++ b/tests/language-feature/capability/capability3.slang
@@ -9,7 +9,7 @@ module test;
RWStructuredBuffer<int> sideEffect;
-// CHECK: error 36104
+// CHECK: error {{(36107|36108)}}
[require(glsl, _sm_4_0)]
public void use1()
{
@@ -28,7 +28,7 @@ void use2Sub()
sideEffect[1] = 1;
}
}
-// CHECK: error 36108
+// CHECK: error {{(36107|36108)}}
[require(spirv, spirv_1_0)]
public void use2()
{
diff --git a/tests/language-feature/capability/capability4.slang b/tests/language-feature/capability/capability4.slang
index f6ee30339..4a2a6f3c9 100644
--- a/tests/language-feature/capability/capability4.slang
+++ b/tests/language-feature/capability/capability4.slang
@@ -1,23 +1,23 @@
//TEST:SIMPLE(filecheck=CHECK): -target spirv -emit-spirv-directly -entry main -stage compute
//TEST:SIMPLE(filecheck=CHECK_IGNORE_CAPS): -target spirv -emit-spirv-directly -entry main -stage compute -ignore-capabilities
-// CHECK_IGNORE_CAPS-NOT: error 36108
+// CHECK_IGNORE_CAPS-NOT: error 36104
// Check that a non-static member method implictly requires capabilities
// defined in ThisType.
+//CHECK: error 36108: {{.*}} 'glsl'.
+//CHECK: note: see using of 'Type'
[require(hlsl)]
struct Type
{
int member;
[require(glsl)]
[mutating]
- // CHECK: ([[# @LINE+1]]): error 36108:
void f()
{
}
[require(glsl)]
- // CHECK-NOT: ([[# @LINE+1]]): error 36108:
static void f1()
{
}
diff --git a/tests/language-feature/capability/specializeTargetSwitch.slang b/tests/language-feature/capability/specializeTargetSwitch.slang
new file mode 100644
index 000000000..251adfaf8
--- /dev/null
+++ b/tests/language-feature/capability/specializeTargetSwitch.slang
@@ -0,0 +1,59 @@
+//TEST:SIMPLE(filecheck=CHECK_HLSL): -target hlsl -entry main -stage compute -capability _sm_5_1
+//TEST:SIMPLE(filecheck=CHECK_GLSL1): -target glsl -entry main -stage compute -capability _GLSL_420
+//TEST:SIMPLE(filecheck=CHECK_GLSL2): -target glsl -entry main -stage compute -capability _GLSL_330
+//TEST:SIMPLE(filecheck=CHECK_METAL): -target cpp -entry main -stage compute -capability image_loadstore
+//TEST:SIMPLE(filecheck=CHECK_WILL_ERROR1): -target glsl -entry main -stage compute -capability image_loadstore -DWILL_ERROR1
+//TEST:SIMPLE(filecheck=CHECK_WILL_ERROR2): -target glsl -entry main -stage compute -capability _GLSL_130 -DWILL_ERROR2
+//TEST:SIMPLE(filecheck=CHECK_GLSL3): -target glsl -entry main -stage compute -capability _GLSL_130
+
+RWTexture1D<int> tex;
+
+//CHECK_HLSL: {{.*}}21{{.*}};
+//CHECK_GLSL1: {{.*}}13{{.*}}
+//CHECK_GLSL2: {{.*}}11{{.*}}
+//CHECK_METAL: {{.*}}30{{.*}}
+//CHECK_WILL_ERROR1: error 36109
+//CHECK_WILL_ERROR2: error 41011
+//CHECK_GLSL3: {{.*}}30{{.*}}
+
+int specialize()
+{
+ __target_switch
+ {
+ case spirv_1_0:
+ return 1;
+ case spirv_1_1:
+ return 2;
+ case spirv_1_2:
+ return 3;
+
+ case _GLSL_150:
+ return 10;
+ case _GLSL_330:
+ return 11;
+ case _GLSL_400:
+ return 12;
+ case _GLSL_410:
+ return 13;
+#ifdef WILL_ERROR1
+ case image_loadstore:
+ return 14;
+#endif
+ case _sm_5_0:
+ return 20;
+ case _sm_5_1:
+ return 21;
+ case _sm_6_0:
+ return 21;
+#ifndef WILL_ERROR2
+ default:
+ return 30;
+#endif
+ }
+}
+
+[numthreads(1,1,1)]
+void main()
+{
+ tex[0] = specialize();
+}