diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2026-08-18 00:43:03 +0200 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2026-08-18 00:43:03 +0200 |
| commit | 6db256b8eb4cc45c5296070ae7353e65398d121d (patch) | |
| tree | 0df44bebae817cbc575dbd288f4bb08a08767873 /shaders/tonemapping.comp | |
| parent | 0c7ff7a068958d2c23a8f362763cb22d34f32371 (diff) | |
Finished descriptor heaps implementation
Diffstat (limited to 'shaders/tonemapping.comp')
| -rw-r--r-- | shaders/tonemapping.comp | 38 |
1 files changed, 8 insertions, 30 deletions
diff --git a/shaders/tonemapping.comp b/shaders/tonemapping.comp index 65251df..ed30c92 100644 --- a/shaders/tonemapping.comp +++ b/shaders/tonemapping.comp @@ -1,9 +1,10 @@ #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 = 2, rgba32f) uniform image2D images[];
+layout(descriptor_heap, rgba32f) uniform image2D images[];
struct camera {
vec4 position;
@@ -22,44 +23,21 @@ struct camera { float aspect_ratio;
};
-layout(buffer_reference) readonly buffer global_params {
- camera cam;
-
- uint max_bounce;
- uint min_bounce;
- uint width;
- uint height;
-
- uint sample_index;
- uint enable_dof;
- uint debug_bvh;
+layout(push_constant) uniform registers {
int downscale_factor;
-};
-
-layout(buffer_reference) readonly buffer pass_params {
- uint padding;
-};
-
-layout(buffer_reference) readonly buffer draw_params {
uint output_image_index;
uint accumulation_image_index;
-};
-
-layout(push_constant) uniform registers {
- global_params globals;
- pass_params pass;
- draw_params draw;
} regs;
void main() {
- ivec2 coords = ivec2(gl_GlobalInvocationID.xy) * regs.globals.downscale_factor;
+ ivec2 coords = ivec2(gl_GlobalInvocationID.xy) * regs.downscale_factor;
- vec3 color = imageLoad(images[nonuniformEXT(regs.draw.accumulation_image_index)], coords).rgb;
+ vec3 color = imageLoad(images[nonuniformEXT(regs.accumulation_image_index)], coords).rgb;
vec3 out_color = sqrt(color);
- for (uint i = 0; i < regs.globals.downscale_factor; i++) {
- for (uint j = 0; j < regs.globals.downscale_factor; j++) {
- imageStore(images[nonuniformEXT(regs.draw.output_image_index)], coords + ivec2(i, j), vec4(out_color, 1.0));
+ for (uint i = 0; i < regs.downscale_factor; i++) {
+ for (uint j = 0; j < regs.downscale_factor; j++) {
+ imageStore(images[nonuniformEXT(regs.output_image_index)], coords + ivec2(i, j), vec4(out_color, 1.0));
}
}
}
|
