diff options
author | Hans-Kristian Arntzen <hans-kristian.arntzen@arm.com> | 2018-11-01 13:22:55 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <hans-kristian.arntzen@arm.com> | 2018-11-01 13:23:48 +0300 |
commit | d4ad1e266af229760cfe8fe52dd91883343a78f9 (patch) | |
tree | d8c49c5c0e2fe2f4810ded95bd3f01809c135586 /reference/opt/shaders/vulkan | |
parent | 62db535b3fe23c1400627eed75eef3a63a8ea894 (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.comp | 34 | ||||
-rw-r--r-- | reference/opt/shaders/vulkan/comp/spec-constant-work-group-size.vk.comp.vk | 24 |
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]; +} + |