SPIRV-Cross/reference/shaders-no-opt/asm/comp/nonuniform-bracket-handling.vk.nocompat.asm.comp.vk
Hans-Kristian Arntzen 439b666829 GLSL: Fix nonuniformEXT injection.
Needs to consider that other expressions might be using brackets as well
...
2020-10-30 14:11:16 +01:00

56 lines
3.2 KiB
Plaintext

#version 450
#extension GL_EXT_buffer_reference : require
#extension GL_EXT_nonuniform_qualifier : require
#extension GL_KHR_shader_subgroup_ballot : require
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
layout(set = 0, binding = 0, std430) restrict readonly buffer SSBO_Offsets
{
uvec2 _m0[];
} _7;
layout(push_constant, std430) uniform RootConstants
{
uint _m0;
uint _m1;
uint _m2;
uint _m3;
uint _m4;
uint _m5;
uint _m6;
uint _m7;
} registers;
layout(set = 1, binding = 0) uniform samplerBuffer _8[];
layout(set = 4, binding = 0, r32f) uniform imageBuffer _9[];
layout(set = 4, binding = 0, r32ui) uniform uimageBuffer _10[];
void main()
{
uint _60 = registers._m4 + 2u;
uint _63 = subgroupBroadcastFirst(_60);
uint _70 = subgroupBroadcastFirst(registers._m4);
uint _75 = registers._m1 + 1u;
uint _78 = subgroupBroadcastFirst(_75);
uint _87 = gl_GlobalInvocationID.x + 4u;
uint _98 = gl_GlobalInvocationID.x + 1024u;
imageStore(_9[registers._m4], int((_98 < _7._m0[_70].y) ? (_98 + _7._m0[_70].x) : 4294967295u), vec4(imageLoad(_9[registers._m4], int((_87 < _7._m0[_70].y) ? (_87 + _7._m0[_70].x) : 4294967295u))));
uint _105 = gl_GlobalInvocationID.x + 2u;
uint _116 = gl_GlobalInvocationID.x + 2048u;
imageStore(_9[registers._m4], int((_116 < _7._m0[_70].y) ? (_116 + _7._m0[_70].x) : 4294967295u), vec4(texelFetch(_8[_75], int((_105 < _7._m0[_78].y) ? (_105 + _7._m0[_78].x) : 4294967295u))));
uint _129 = imageAtomicAdd(_10[_60], int((gl_GlobalInvocationID.x < _7._m0[_63].y) ? (gl_GlobalInvocationID.x + _7._m0[_63].x) : 4294967295u), 40u);
uint _136 = imageAtomicCompSwap(_10[_60], int((gl_GlobalInvocationID.y < _7._m0[_63].y) ? (gl_GlobalInvocationID.y + _7._m0[_63].x) : 4294967295u), 40u, 50u);
imageStore(_9[registers._m4], int((0u < _7._m0[_70].y) ? (0u + _7._m0[_70].x) : 4294967295u), vec4(float(_7._m0[_70].y)));
imageStore(_9[registers._m4], int((1u < _7._m0[_70].y) ? (1u + _7._m0[_70].x) : 4294967295u), vec4(float(_7._m0[_78].y)));
uint _11 = registers._m4 + (gl_GlobalInvocationID.z + 0u);
imageStore(_9[nonuniformEXT(_11)], int((_98 < _7._m0[_11].y) ? (_98 + _7._m0[_11].x) : 4294967295u), vec4(imageLoad(_9[nonuniformEXT(_11)], int((_87 < _7._m0[_11].y) ? (_87 + _7._m0[_11].x) : 4294967295u))));
uint _13 = registers._m1 + (gl_GlobalInvocationID.z + 0u);
imageStore(_9[nonuniformEXT(_11)], int((_116 < _7._m0[_11].y) ? (_116 + _7._m0[_11].x) : 4294967295u), vec4(texelFetch(_8[nonuniformEXT(_13)], int((_87 < _7._m0[_13].y) ? (_87 + _7._m0[_13].x) : 4294967295u))));
uint _15 = registers._m4 + (gl_GlobalInvocationID.z + 0u);
uint _208 = imageAtomicAdd(_10[nonuniformEXT(_15)], int((gl_GlobalInvocationID.y < _7._m0[_15].y) ? (gl_GlobalInvocationID.y + _7._m0[_15].x) : 4294967295u), 40u);
uint _215 = imageAtomicCompSwap(_10[nonuniformEXT(_15)], int((gl_GlobalInvocationID.y < _7._m0[_15].y) ? (gl_GlobalInvocationID.y + _7._m0[_15].x) : 4294967295u), 40u, 70u);
imageStore(_9[registers._m4], int((2u < _7._m0[_70].y) ? (2u + _7._m0[_70].x) : 4294967295u), vec4(float(_7._m0[_11].y)));
imageStore(_9[registers._m4], int((3u < _7._m0[_70].y) ? (3u + _7._m0[_70].x) : 4294967295u), vec4(float(_7._m0[_13].y)));
}