summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2019-02-05 18:47:55 -0800
committerGitHub <noreply@github.com>2019-02-05 18:47:55 -0800
commitc6870dcbf6f720bfbfe7e38f7d9625d69bedde3d (patch)
treea81b861c6cbd345e323a1f5ee3bc4eec61646b96 /tests
parent13d7e34d8be4316c59bd3d00a1e5526215db6fa4 (diff)
parent3d62beab61490ce3e7ed60b48fd6a11c8eeb44ad (diff)
Merge branch 'master' into fix-nested-type-conformances
Diffstat (limited to 'tests')
-rw-r--r--tests/compute/generic-closer.slang41
-rw-r--r--tests/compute/generic-closer.slang.expected.txt4
2 files changed, 45 insertions, 0 deletions
diff --git a/tests/compute/generic-closer.slang b/tests/compute/generic-closer.slang
new file mode 100644
index 000000000..f3bb643de
--- /dev/null
+++ b/tests/compute/generic-closer.slang
@@ -0,0 +1,41 @@
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12
+//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute
+
+//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out
+
+interface IGetter
+{
+ int get();
+}
+struct Gen0 : IGetter
+{
+ int get() { return 1; }
+};
+struct Gen1<TGetter : IGetter> : IGetter
+{
+ TGetter g;
+ int get() { return g.get(); }
+};
+
+RWStructuredBuffer<int> outputBuffer;
+void writeArray(inout float3 a[4])
+{
+ a[0] = float3(1, 1, 1);
+ a[1] = float3(1, 1, 1);
+ a[2] = float3(1, 1, 1);
+ a[3] = float3(1, 1, 1);
+}
+
+[numthreads(4, 1, 1)]
+void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
+{
+ Gen1<Gen1<Gen1<Gen0>>> g;
+ Gen1<Gen1<Gen1<Gen1<Gen0>>>> g2;
+ Gen1<Gen1<Gen0>> g3;
+
+ int a = 0;
+ int b = 5;
+ if (a< b && b > a)
+ outputBuffer[dispatchThreadID.x] = (g.get() >> 1) + g2.get() + g3.get();
+} \ No newline at end of file
diff --git a/tests/compute/generic-closer.slang.expected.txt b/tests/compute/generic-closer.slang.expected.txt
new file mode 100644
index 000000000..01dd2b944
--- /dev/null
+++ b/tests/compute/generic-closer.slang.expected.txt
@@ -0,0 +1,4 @@
+2
+2
+2
+2 \ No newline at end of file