summaryrefslogtreecommitdiff
path: root/graphics/asymptote/base/shaders/compress.glsl
blob: 26b4e1041e9008d6ada132367127e4627e3e3598 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;
}