2021-11-16 15:15:36 +00:00
|
|
|
#version 310 es
|
|
|
|
|
2022-11-02 02:25:38 +00:00
|
|
|
struct Buf {
|
2021-11-16 15:15:36 +00:00
|
|
|
uint count;
|
|
|
|
uint data[50];
|
2022-11-02 02:25:38 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
layout(binding = 0, std430) buffer b_block_ssbo {
|
|
|
|
Buf inner;
|
2021-11-16 15:15:36 +00:00
|
|
|
} b;
|
2022-09-02 19:19:10 +00:00
|
|
|
|
2022-11-21 17:11:05 +00:00
|
|
|
uint tint_mod(uint lhs, uint rhs) {
|
|
|
|
return (lhs % ((rhs == 0u) ? 1u : rhs));
|
|
|
|
}
|
|
|
|
|
2021-11-16 15:15:36 +00:00
|
|
|
void tint_symbol() {
|
|
|
|
uint i = 0u;
|
|
|
|
while (true) {
|
2022-11-02 02:25:38 +00:00
|
|
|
if ((i >= b.inner.count)) {
|
2021-11-16 15:15:36 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
uint p_save = i;
|
2022-11-09 22:04:11 +00:00
|
|
|
uint tint_symbol_1 = tint_mod(i, 2u);
|
|
|
|
if ((tint_symbol_1 == 0u)) {
|
2021-11-16 15:15:36 +00:00
|
|
|
{
|
2022-11-02 02:25:38 +00:00
|
|
|
b.inner.data[p_save] = (b.inner.data[p_save] * 2u);
|
2021-11-16 15:15:36 +00:00
|
|
|
i = (i + 1u);
|
|
|
|
}
|
|
|
|
continue;
|
|
|
|
}
|
2022-11-02 02:25:38 +00:00
|
|
|
b.inner.data[p_save] = 0u;
|
2021-11-16 15:15:36 +00:00
|
|
|
{
|
2022-11-02 02:25:38 +00:00
|
|
|
b.inner.data[p_save] = (b.inner.data[p_save] * 2u);
|
2021-11-16 15:15:36 +00:00
|
|
|
i = (i + 1u);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
2022-01-26 16:48:55 +00:00
|
|
|
|
2022-01-28 22:36:58 +00:00
|
|
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
2021-11-16 15:15:36 +00:00
|
|
|
void main() {
|
|
|
|
tint_symbol();
|
2022-01-28 22:36:58 +00:00
|
|
|
return;
|
2021-11-16 15:15:36 +00:00
|
|
|
}
|