Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <hans-kristian.arntzen@arm.com>2018-11-01 13:22:55 +0300
committerHans-Kristian Arntzen <hans-kristian.arntzen@arm.com>2018-11-01 13:23:48 +0300
commitd4ad1e266af229760cfe8fe52dd91883343a78f9 (patch)
treed8c49c5c0e2fe2f4810ded95bd3f01809c135586 /reference/opt/shaders/vulkan
parent62db535b3fe23c1400627eed75eef3a63a8ea894 (diff)
Add test case for local_size_x_id and some complex cases.
Diffstat (limited to 'reference/opt/shaders/vulkan')
-rw-r--r--reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp34
-rw-r--r--reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk24
2 files changed, 58 insertions, 0 deletions
diff --git a/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp b/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp
new file mode 100644
index 00000000..888f4b16
--- /dev/null
+++ b/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp
@@ -0,0 +1,34 @@
+#version 450
+
+#ifndef SPIRV_CROSS_CONSTANT_ID_1
+#define SPIRV_CROSS_CONSTANT_ID_1 2
+#endif
+const int b = SPIRV_CROSS_CONSTANT_ID_1;
+#ifndef SPIRV_CROSS_CONSTANT_ID_0
+#define SPIRV_CROSS_CONSTANT_ID_0 1
+#endif
+const int a = SPIRV_CROSS_CONSTANT_ID_0;
+const uint _21 = (uint(a) + 0u);
+#ifndef SPIRV_CROSS_CONSTANT_ID_10
+#define SPIRV_CROSS_CONSTANT_ID_10 1u
+#endif
+const uint _27 = gl_WorkGroupSize.x;
+const uint _28 = (_21 + _27);
+const uint _29 = gl_WorkGroupSize.y;
+const uint _30 = (_28 + _29);
+const int _32 = (1 - a);
+
+layout(local_size_x = SPIRV_CROSS_CONSTANT_ID_10, local_size_y = 20, local_size_z = 1) in;
+
+layout(binding = 0, std430) writeonly buffer SSBO
+{
+ int v[];
+} _17;
+
+void main()
+{
+ int spec_const_array_size[b];
+ spec_const_array_size[a] = a;
+ _17.v[_30] = b + spec_const_array_size[_32];
+}
+
diff --git a/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk b/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk
new file mode 100644
index 00000000..bdf72dff
--- /dev/null
+++ b/reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk
@@ -0,0 +1,24 @@
+#version 450
+layout(local_size_x_id = 10, local_size_y = 20, local_size_z = 1) in;
+
+layout(constant_id = 1) const int b = 2;
+layout(constant_id = 0) const int a = 1;
+const uint _21 = (uint(a) + 0u);
+const uint _27 = gl_WorkGroupSize.x;
+const uint _28 = (_21 + _27);
+const uint _29 = gl_WorkGroupSize.y;
+const uint _30 = (_28 + _29);
+const int _32 = (1 - a);
+
+layout(set = 1, binding = 0, std430) writeonly buffer SSBO
+{
+ int v[];
+} _17;
+
+void main()
+{
+ int spec_const_array_size[b];
+ spec_const_array_size[a] = a;
+ _17.v[_30] = b + spec_const_array_size[_32];
+}
+