blob: 62cd623cebfd55ea08818a67c1eaa627904e1e1d [file] [log] [blame]
#version 310 es
precision highp float;
struct atomic_compare_exchange_result_i32 {
int old_value;
bool exchanged;
};
bool tint_discarded = false;
layout(location = 0) out vec4 value;
layout(binding = 0, std430) buffer S_block_ssbo {
int inner;
} S;
vec4 tint_symbol() {
if (false) {
tint_discarded = true;
}
atomic_compare_exchange_result_i32 tint_symbol_2 = atomic_compare_exchange_result_i32(0, false);
if (!(tint_discarded)) {
atomic_compare_exchange_result_i32 atomic_compare_result;
atomic_compare_result.old_value = atomicCompSwap(S.inner, 0, 1);
atomic_compare_result.exchanged = atomic_compare_result.old_value == 0;
tint_symbol_2 = atomic_compare_result;
}
atomic_compare_exchange_result_i32 tint_symbol_1 = tint_symbol_2;
int old_value = tint_symbol_1.old_value;
return vec4(float(old_value));
}
void main() {
vec4 inner_result = tint_symbol();
value = inner_result;
if (tint_discarded) {
discard;
}
return;
}