summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/base/shaders/compress.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/base/shaders/compress.glsl')
-rw-r--r--Build/source/utils/asymptote/base/shaders/compress.glsl23
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;
+}