From 6db256b8eb4cc45c5296070ae7353e65398d121d Mon Sep 17 00:00:00 2001 From: ladevieq Date: Tue, 18 Aug 2026 00:43:03 +0200 Subject: Finished descriptor heaps implementation --- shaders/test.comp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'shaders/test.comp') diff --git a/shaders/test.comp b/shaders/test.comp index 3a4230f..b2ddf1c 100644 --- a/shaders/test.comp +++ b/shaders/test.comp @@ -1,29 +1,27 @@ #extension GL_EXT_buffer_reference : require #extension GL_EXT_nonuniform_qualifier : require +#extension GL_EXT_descriptor_heap : require layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in; -layout(set = 0, binding = 0) uniform sampler samplers[]; -layout(set = 0, binding = 1) uniform texture2D textures[]; -layout(set = 0, binding = 2, rgba32f) uniform image2D images[]; +layout(descriptor_heap) uniform texture2D textures[]; +layout(descriptor_heap, rgba32f) uniform image2D images[]; +layout(descriptor_heap) uniform sampler samplers[]; -layout(buffer_reference) readonly buffer draw_params { + +layout(push_constant) uniform buffers { uint input_id1; uint input_id2; uint output_id; uint pad; -}; - -layout(push_constant) uniform buffers { - layout(offset = 16) draw_params draw; } regs; void main() { ivec2 coords = ivec2(gl_GlobalInvocationID.xy); float t = 0.5; - vec3 color_1 = imageLoad(images[nonuniformEXT(regs.draw.input_id1)], coords).xyz; - vec3 color_2 = imageLoad(images[nonuniformEXT(regs.draw.input_id2)], coords).xyz; + vec3 color_1 = imageLoad(images[nonuniformEXT(regs.input_id1)], coords).xyz; + vec3 color_2 = imageLoad(images[nonuniformEXT(regs.input_id2)], coords).xyz; vec3 out_color = (t * color_1) + ((1.0 - t) * color_2); - imageStore(images[nonuniformEXT(regs.draw.output_id)], coords, vec4(out_color, 1.0)); + imageStore(images[nonuniformEXT(regs.output_id)], coords, vec4(out_color, 1.0)); } -- cgit v1.3