blob: 49b71fa4190f82f7d816847602f4ce87ad925410 [file] [log] [blame]
#version 310 es
struct S {
vec2 field0;
uint field1;
};
struct S_1 {
uint field0;
};
struct S_2 {
S_1 field0;
};
shared S x_28[4096];
shared uint x_34;
shared uint x_35;
shared uint x_36;
shared uint x_37;
uvec3 x_3 = uvec3(0u);
layout(binding = 1, std140)
uniform x_6_block_1_ubo {
S_2 inner;
} v;
layout(binding = 2, std430)
buffer S_3_1_ssbo {
vec4 field0[];
} x_9;
layout(binding = 3, std430)
buffer S_4_1_ssbo {
vec4 field0[];
} x_12;
void main_1() {
uint x_54 = 0u;
uint x_58 = 0u;
vec4 x_85 = vec4(0.0f);
uint x_88 = 0u;
uint x_52 = x_3.x;
x_54 = 0u;
{
while(true) {
uint x_55 = 0u;
x_58 = v.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];
x_28[x_62] = S(((x_67.xy + x_67.zw) * 0.5f), x_62);
}
{
x_55 = (x_54 + 32u);
x_54 = x_55;
}
continue;
}
}
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[0u];
atomicExchange(x_34, x_81);
uint x_82 = x_80[1u];
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);
vec4 x_86 = vec4(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[0u] = x_101[0u];
vec4 x_103 = x_103_1;
vec4 x_105_1 = x_103;
x_105_1[1u] = x_101[1u];
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[2u] = x_107[0u];
x_111 = x_109_1;
x_111[3u] = x_107[1u];
x_86 = x_111;
}
{
x_89 = (x_88 + 32u);
x_85 = x_86;
x_88 = x_89;
}
continue;
}
}
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();
float v_1 = uintBitsToFloat(atomicOr(x_34, 0u));
float v_2 = uintBitsToFloat(atomicOr(x_35, 0u));
float v_3 = uintBitsToFloat(atomicOr(x_36, 0u));
x_12.field0[0] = vec4(v_1, v_2, v_3, uintBitsToFloat(atomicOr(x_37, 0u)));
}
void tint_symbol_inner(uvec3 x_3_param, uint tint_local_index) {
if ((tint_local_index == 0u)) {
atomicExchange(x_34, 0u);
atomicExchange(x_35, 0u);
atomicExchange(x_36, 0u);
atomicExchange(x_37, 0u);
}
{
uint v_4 = 0u;
v_4 = tint_local_index;
while(true) {
uint v_5 = v_4;
if ((v_5 >= 4096u)) {
break;
}
x_28[v_5] = S(vec2(0.0f), 0u);
{
v_4 = (v_5 + 32u);
}
continue;
}
}
barrier();
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_inner(gl_LocalInvocationID, gl_LocalInvocationIndex);
}