| #version 310 es |
| |
| shared uint x_34; |
| shared uint x_35; |
| shared uint x_36; |
| shared uint x_37; |
| struct S { |
| vec2 field0; |
| uint field1; |
| }; |
| |
| shared S x_28[4096]; |
| void tint_zero_workgroup_memory(uint local_idx) { |
| if ((local_idx < 1u)) { |
| atomicExchange(x_34, 0u); |
| atomicExchange(x_35, 0u); |
| atomicExchange(x_36, 0u); |
| atomicExchange(x_37, 0u); |
| } |
| { |
| for(uint idx = local_idx; (idx < 4096u); idx = (idx + 32u)) { |
| uint i = idx; |
| S tint_symbol_1 = S(vec2(0.0f), 0u); |
| x_28[i] = tint_symbol_1; |
| } |
| } |
| barrier(); |
| } |
| |
| struct S_1 { |
| uint field0; |
| }; |
| |
| struct S_2 { |
| S_1 field0; |
| }; |
| |
| uvec3 x_3 = uvec3(0u, 0u, 0u); |
| layout(binding = 1, std140) uniform x_6_block_ubo { |
| S_2 inner; |
| } x_6; |
| |
| layout(binding = 2, std430) buffer S_3_ssbo { |
| vec4 field0[]; |
| } x_9; |
| |
| layout(binding = 3, std430) buffer S_4_ssbo { |
| vec4 field0[]; |
| } x_12; |
| |
| void main_1() { |
| uint x_54 = 0u; |
| uint x_58 = 0u; |
| vec4 x_85 = vec4(0.0f, 0.0f, 0.0f, 0.0f); |
| uint x_88 = 0u; |
| uint x_52 = x_3.x; |
| x_54 = 0u; |
| while (true) { |
| uint x_55 = 0u; |
| x_58 = x_6.inner.field0.field0; |
| if ((x_54 < x_58)) { |
| } else { |
| break; |
| } |
| uint x_62 = (x_54 + x_52); |
| if ((x_62 >= x_58)) { |
| vec4 x_67 = x_9.field0[x_62]; |
| S tint_symbol_2 = S(((x_67.xy + x_67.zw) * 0.5f), x_62); |
| x_28[x_62] = tint_symbol_2; |
| } |
| { |
| x_55 = (x_54 + 32u); |
| x_54 = x_55; |
| } |
| } |
| barrier(); |
| int x_74 = int(x_58); |
| vec2 x_76 = x_28[0].field0; |
| if ((x_52 == 0u)) { |
| uvec2 x_80 = floatBitsToUint(x_76); |
| uint x_81 = x_80.x; |
| atomicExchange(x_34, x_81); |
| uint x_82 = x_80.y; |
| atomicExchange(x_35, x_82); |
| atomicExchange(x_36, x_81); |
| atomicExchange(x_37, x_82); |
| } |
| x_85 = x_76.xyxy; |
| x_88 = 1u; |
| while (true) { |
| vec4 x_111 = vec4(0.0f, 0.0f, 0.0f, 0.0f); |
| vec4 x_86 = vec4(0.0f, 0.0f, 0.0f, 0.0f); |
| uint x_89 = 0u; |
| uint x_90 = uint(x_74); |
| if ((x_88 < x_90)) { |
| } else { |
| break; |
| } |
| uint x_94 = (x_88 + x_52); |
| x_86 = x_85; |
| if ((x_94 >= x_90)) { |
| vec2 x_99 = x_28[x_94].field0; |
| vec2 x_101 = min(x_85.xy, x_99); |
| vec4 x_103_1 = x_85; |
| x_103_1.x = x_101.x; |
| vec4 x_103 = x_103_1; |
| vec4 x_105_1 = x_103; |
| x_105_1.y = x_101.y; |
| vec4 x_105 = x_105_1; |
| vec2 x_107 = max(x_105_1.zw, x_99); |
| vec4 x_109_1 = x_105; |
| x_109_1.z = x_107.x; |
| x_111 = x_109_1; |
| x_111.w = x_107.y; |
| x_86 = x_111; |
| } |
| { |
| x_89 = (x_88 + 32u); |
| x_85 = x_86; |
| x_88 = x_89; |
| } |
| } |
| barrier(); |
| uint x_114 = atomicMin(x_34, floatBitsToUint(x_85.x)); |
| uint x_117 = atomicMin(x_35, floatBitsToUint(x_85.y)); |
| uint x_120 = atomicMax(x_36, floatBitsToUint(x_85.z)); |
| uint x_123 = atomicMax(x_37, floatBitsToUint(x_85.w)); |
| barrier(); |
| x_12.field0[0] = vec4(uintBitsToFloat(atomicOr(x_34, 0u)), uintBitsToFloat(atomicOr(x_35, 0u)), uintBitsToFloat(atomicOr(x_36, 0u)), uintBitsToFloat(atomicOr(x_37, 0u))); |
| return; |
| } |
| |
| void tint_symbol(uvec3 x_3_param, uint local_invocation_index) { |
| tint_zero_workgroup_memory(local_invocation_index); |
| x_3 = x_3_param; |
| main_1(); |
| } |
| |
| layout(local_size_x = 32, local_size_y = 1, local_size_z = 1) in; |
| void main() { |
| tint_symbol(gl_LocalInvocationID, gl_LocalInvocationIndex); |
| return; |
| } |