diff options
Diffstat (limited to 'shaders/api-test-ui.vert')
| -rw-r--r-- | shaders/api-test-ui.vert | 52 |
1 files changed, 43 insertions, 9 deletions
diff --git a/shaders/api-test-ui.vert b/shaders/api-test-ui.vert index bf6acf8..f4d5fee 100644 --- a/shaders/api-test-ui.vert +++ b/shaders/api-test-ui.vert @@ -8,10 +8,35 @@ struct vertex { uint color;
};
-layout(buffer_reference, buffer_reference_align = 8) readonly buffer params {
- vec2 scale;
- vec2 translate;
- uint texture_index;
+struct camera {
+ vec4 position;
+
+ vec4 forward;
+ vec4 up;
+ vec4 right;
+
+ vec4 horizontal;
+ vec4 vertical;
+ vec4 first_pixel;
+
+ float lens_radius;
+};
+
+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;
+ int downscale_factor;
+};
+
+layout(buffer_reference) readonly buffer pass_params {
uint padding;
};
@@ -19,10 +44,19 @@ layout(buffer_reference) readonly buffer vertices { vertex vertices[];
};
-layout(push_constant) uniform constants {
- layout(offset = 16) params ui_params;
+layout(buffer_reference) readonly buffer params {
vertices vertex_buffer;
-} consts;
+ vec2 scale;
+ vec2 translate;
+ uint texture_index;
+ uint padding;
+};
+
+layout(push_constant) uniform registers {
+ global_params globals;
+ pass_params pass;
+ params ui_params;
+} regs;
out gl_PerVertex {
vec4 gl_Position;
@@ -35,11 +69,11 @@ layout(location = 0) out struct { void main() {
- vertex v = consts.vertex_buffer.vertices[gl_VertexIndex];
+ vertex v = regs.ui_params.vertex_buffer.vertices[gl_VertexIndex];
Out.color = unpackUnorm4x8(v.color);
Out.uv = vec2(v.uv_x, v.uv_y);
vec2 pos = vec2(v.pos_x, v.pos_y);
- gl_Position = vec4(pos * consts.ui_params.scale + consts.ui_params.translate, 0.0, 1.0);
+ gl_Position = vec4(pos * regs.ui_params.scale + regs.ui_params.translate, 0.0, 1.0);
}
|
