blob: 40385661d0802f05db6798bd48943adc59b07d7f [file] [log] [blame]
RWByteAddressBuffer b : register(u0, space0);
uint tint_mod(uint lhs, uint rhs) {
return (lhs % ((rhs == 0u) ? 1u : rhs));
}
[numthreads(1, 1, 1)]
void main() {
uint i = 0u;
while (true) {
if ((i >= b.Load(0u))) {
break;
}
const uint p_save = i;
const uint tint_symbol = tint_mod(i, 2u);
if ((tint_symbol == 0u)) {
{
b.Store((4u + (4u * p_save)), asuint((b.Load((4u + (4u * p_save))) * 2u)));
i = (i + 1u);
}
continue;
}
b.Store((4u + (4u * p_save)), asuint(0u));
{
b.Store((4u + (4u * p_save)), asuint((b.Load((4u + (4u * p_save))) * 2u)));
i = (i + 1u);
}
}
return;
}