diff options
Diffstat (limited to 'Build/source/utils/asymptote/base/shaders/compress.glsl')
-rw-r--r-- | Build/source/utils/asymptote/base/shaders/compress.glsl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/base/shaders/compress.glsl b/Build/source/utils/asymptote/base/shaders/compress.glsl new file mode 100644 index 00000000000..26b4e1041e9 --- /dev/null +++ b/Build/source/utils/asymptote/base/shaders/compress.glsl @@ -0,0 +1,23 @@ +layout(binding=0) uniform atomic_uint elements; + +layout(binding=1, std430) buffer indexBuffer +{ + uint index[]; +}; + +layout(binding=2, std430) buffer countBuffer +{ + uint maxSize; + uint count[]; +}; + +uniform uint width; + +void main() +{ + uint pixel=uint(gl_FragCoord.y)*width+uint(gl_FragCoord.x); + uint Count=index[pixel]; + if(Count > 0u) + count[(index[pixel]=atomicCounterIncrement(elements))]=Count; + discard; +} |