From 4ecdaa7cd08f4f3ee04cd49f8f2271636ac81e64 Mon Sep 17 00:00:00 2001 From: "Anna (navi) Figueiredo Gomes" Date: Sun, 11 Feb 2024 20:39:22 +0100 Subject: transparency Signed-off-by: Anna (navi) Figueiredo Gomes --- shaders/shader.frag | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'shaders/shader.frag') diff --git a/shaders/shader.frag b/shaders/shader.frag index a4ce603..eb255e3 100644 --- a/shaders/shader.frag +++ b/shaders/shader.frag @@ -1,8 +1,27 @@ #version 450 -layout(location = 0) in vec4 fragColor; -layout(location = 0) out vec4 outColor; +layout(location = 0) in vec4 color; + +layout(set = 0, binding = 0) uniform mvp { + mat4 model; + mat4 view; + mat4 proj; + uint count; +} ubo; + +layout(binding = 1) buffer fragment_buffer { + uvec3 fragments[]; +}; +layout(binding = 2, r32ui) uniform uimage2D head; +layout(binding = 3) buffer counter { + uint data; +}; void main() { - outColor = fragColor; + const uint idx = atomicAdd(data, 1); + if (idx >= ubo.count) { + discard; + } + const uint prev_idx = imageAtomicExchange(head, ivec2(gl_FragCoord.xy), idx); + fragments[idx] = uvec3(prev_idx, packUnorm4x8(color), floatBitsToUint(gl_FragCoord.z)); } -- cgit v1.2.3