34 lines
853 B
Plaintext
34 lines
853 B
Plaintext
#version 450
|
|
#if defined(GL_ARB_gpu_shader_int64)
|
|
#extension GL_ARB_gpu_shader_int64 : require
|
|
#elif defined(GL_NV_gpu_shader5)
|
|
#extension GL_NV_gpu_shader5 : require
|
|
#else
|
|
#error No extension available for 64-bit integers.
|
|
#endif
|
|
#extension GL_ARB_shader_ballot : require
|
|
#extension GL_AMD_shader_ballot : require
|
|
layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
|
|
|
|
layout(binding = 0, std430) buffer inputData
|
|
{
|
|
float inputDataArray[];
|
|
} _12;
|
|
|
|
layout(binding = 1, std430) buffer outputData
|
|
{
|
|
float outputDataArray[];
|
|
} _74;
|
|
|
|
void main()
|
|
{
|
|
bool _31 = _12.inputDataArray[gl_LocalInvocationID.x] > 0.0;
|
|
uvec4 _37 = uvec4(unpackUint2x32(ballotARB(_31)), 0u, 0u);
|
|
uint _44 = mbcntAMD(packUint2x32(uvec2(_37.xy)));
|
|
if (_31)
|
|
{
|
|
_74.outputDataArray[_44] = _12.inputDataArray[gl_LocalInvocationID.x];
|
|
}
|
|
}
|
|
|