summaryrefslogtreecommitdiff
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/capability5.slang29
-rw-r--r--tests/language-feature/capability/specializeTargetSwitch.slang12
-rw-r--r--tests/language-feature/capability/testing-framework-with-profiles.slang21
3 files changed, 62 insertions, 0 deletions
diff --git a/tests/language-feature/capability/capability5.slang b/tests/language-feature/capability/capability5.slang
new file mode 100644
index 000000000..6199f045a
--- /dev/null
+++ b/tests/language-feature/capability/capability5.slang
@@ -0,0 +1,29 @@
+//TEST:SIMPLE(filecheck=PASS): -target glsl -entry main -stage compute -allow-glsl
+//TEST:SIMPLE(filecheck=PASS): -target glsl -entry main -stage compute -allow-glsl -capability shader5_sm_5_0
+//TEST:SIMPLE(filecheck=PASS): -target glsl -entry main -stage compute -allow-glsl -profile sm_6_0
+//TEST:SIMPLE(filecheck=WARN): -target glsl -entry main -stage compute -allow-glsl -capability GLSL_130
+//TEST:SIMPLE(filecheck=ERROR): -target glsl -entry main -stage compute -allow-glsl -capability GLSL_130 -restrictive-capability-check
+// CHECK_IGNORE_CAPS-NOT: error 36104
+
+// Check that a non-static member method implictly requires capabilities
+// defined in ThisType.
+
+//PASS-NOT: warning 41012
+//PASS-NOT: error 41012
+
+//WARN: warning 41012
+//WARN-NOT: error 41012
+
+//ERROR-NOT: warning 41012
+//ERROR: error 41012
+
+buffer MyBlockName
+{
+ int data;
+} inputBuffer;
+
+[numthreads(1,1,1)]
+void main()
+{
+ inputBuffer.data = firstbithigh(1);
+}
diff --git a/tests/language-feature/capability/specializeTargetSwitch.slang b/tests/language-feature/capability/specializeTargetSwitch.slang
index 251adfaf8..e1e5d4225 100644
--- a/tests/language-feature/capability/specializeTargetSwitch.slang
+++ b/tests/language-feature/capability/specializeTargetSwitch.slang
@@ -1,6 +1,8 @@
//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_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_GLSL2_NO_UPGRADE): -target glsl -entry main -stage compute -capability _GLSL_330 -DTURN_OFF_LARGER_GLSL_TARGETS
//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
@@ -9,11 +11,19 @@
RWTexture1D<int> tex;
//CHECK_HLSL: {{.*}}21{{.*}};
+
//CHECK_GLSL1: {{.*}}13{{.*}}
+
//CHECK_GLSL2: {{.*}}11{{.*}}
+
+//CHECK_GLSL2_NO_UPGRADE-NOT: warning 41012
+//CHECK_GLSL2_NO_UPGRADE-NOT: error 41012
+
//CHECK_METAL: {{.*}}30{{.*}}
+
//CHECK_WILL_ERROR1: error 36109
//CHECK_WILL_ERROR2: error 41011
+
//CHECK_GLSL3: {{.*}}30{{.*}}
int specialize()
@@ -31,10 +41,12 @@ int specialize()
return 10;
case _GLSL_330:
return 11;
+#ifndef TURN_OFF_LARGER_GLSL_TARGETS
case _GLSL_400:
return 12;
case _GLSL_410:
return 13;
+#endif
#ifdef WILL_ERROR1
case image_loadstore:
return 14;
diff --git a/tests/language-feature/capability/testing-framework-with-profiles.slang b/tests/language-feature/capability/testing-framework-with-profiles.slang
new file mode 100644
index 000000000..215ba887e
--- /dev/null
+++ b/tests/language-feature/capability/testing-framework-with-profiles.slang
@@ -0,0 +1,21 @@
+
+//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-vk -compute
+//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-vk -compute -profile sm_6_1
+//TEST:SIMPLE(filecheck=CHECK): -target hlsl -entry computeMain -stage compute
+//TEST:SIMPLE(filecheck=CHECK): -target hlsl -entry computeMain -stage compute -capability sm_6_1
+//TEST:SIMPLE(filecheck=CHECK): -target hlsl -entry computeMain -stage compute -profile sm_6_1
+//TEST:SIMPLE(filecheck=CHECK_WARN): -target hlsl -entry computeMain -stage compute -capability sm_4_0
+
+//CHECK-NOT: warning 41012
+//CHECK_WARN: warning 41012
+//CHECK: computeMain
+
+//TEST_INPUT:ubuffer(data=[1], stride=4):out,name outputBuffer
+RWStructuredBuffer<uint> outputBuffer;
+
+[numthreads(1, 1, 1)]
+void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
+{
+ // BUF: 1
+ outputBuffer[0] = WaveMaskSum(0xFF, 1);
+}