| #version 310 es |
| layout(local_size_x = 1) in; |
| |
| layout(std430, binding = 0) readonly buffer SSBO |
| { |
| vec4 in_data[]; |
| }; |
| |
| layout(std430, binding = 1) writeonly buffer SSBO2 |
| { |
| vec4 out_data[]; |
| }; |
| |
| void main() |
| { |
| uint ident = gl_GlobalInvocationID.x; |
| vec4 v = mod(in_data[ident], out_data[ident]); |
| out_data[ident] = v; |
| |
| uvec4 vu = floatBitsToUint(in_data[ident]) % floatBitsToUint(out_data[ident]); |
| out_data[ident] = uintBitsToFloat(vu); |
| |
| ivec4 vi = floatBitsToInt(in_data[ident]) % floatBitsToInt(out_data[ident]); |
| out_data[ident] = intBitsToFloat(vi); |
| } |
| |