From 75acd0104448d7c5f43f99700decff39b8a034b2 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Fri, 3 Feb 2023 00:15:19 +0100 Subject: Graphics pipeline and rendering implementation --- shaders/api-test-ui.frag | 20 +++++++++++--------- shaders/api-test-ui.vert | 25 +++++++++++++------------ shaders/test.comp | 2 +- 3 files changed, 25 insertions(+), 22 deletions(-) (limited to 'shaders') diff --git a/shaders/api-test-ui.frag b/shaders/api-test-ui.frag index 0272ba2..fc1c1ee 100644 --- a/shaders/api-test-ui.frag +++ b/shaders/api-test-ui.frag @@ -7,15 +7,17 @@ layout(location = 0) in struct { vec4 color; } 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(set = 1, binding = 0) uniform parameters { -// uint texture_index; -// uint sampler_index; -// } params; +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(set = 2, binding = 0) uniform parameters { + uint vertex_buffer; + vec2 scale; + vec2 translate; + uint texture_index; +} params; void main() { - // o_Color = In.color * texture(sampler2D(textures[params.texture_index], samplers[params.sampler_index]), In.uv.xy); - o_Color = vec4(1, 0, 0, 1); + o_Color = In.color * texture(sampler2D(textures[nonuniformEXT(params.texture_index)], samplers[nonuniformEXT(0U)]), In.uv.xy); + // o_Color = vec4(1, 0, 0, 1); } diff --git a/shaders/api-test-ui.vert b/shaders/api-test-ui.vert index 3b6d0b5..8dd05a8 100644 --- a/shaders/api-test-ui.vert +++ b/shaders/api-test-ui.vert @@ -4,18 +4,19 @@ struct vertex { vec2 pos; vec2 uv; uint color; - uint[3] padding; + uint padding; }; layout(buffer_reference) readonly buffer vertices { vertex vertices[]; }; -// layout(set = 1, binding = 0) uniform parameters { -// vertices vertex_buffer; -// vec2 scale; -// vec2 translate; -// } params; +layout(set = 2, binding = 0) uniform parameters { + vertices vertex_buffer; + vec2 scale; + vec2 translate; + uint texture_index; +} params; out gl_PerVertex { vec4 gl_Position; @@ -28,13 +29,13 @@ layout(location = 0) out struct { void main() { - // vertex v = params.vertex_buffer.vertices[gl_VertexIndex]; + vertex v = params.vertex_buffer.vertices[gl_VertexIndex]; - // Out.color = unpackUnorm4x8(v.color); - // Out.uv = v.uv; + Out.color = unpackUnorm4x8(v.color); + Out.uv = v.uv; - // gl_Position = vec4(v.pos * params.scale + params.translate, 0.0, 1.0); + gl_Position = vec4(v.pos * params.scale + params.translate, 0.0, 1.0); - vec2 pos[3] = vec2[3]( vec2(-0.7, 0.7), vec2(0.7, 0.7), vec2(0.0, -0.7) ); - gl_Position = vec4(pos[gl_VertexIndex], 0.0, 1.0); + // vec2 pos[3] = vec2[3]( vec2(-0.7, 0.7), vec2(0.7, 0.7), vec2(0.0, -0.7) ); + // gl_Position = vec4(pos[gl_VertexIndex], 1.0, 1.0); } diff --git a/shaders/test.comp b/shaders/test.comp index 244533e..b3d2089 100644 --- a/shaders/test.comp +++ b/shaders/test.comp @@ -6,7 +6,7 @@ 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(set = 1, binding = 0) uniform parameters { +layout(set = 2, binding = 0) uniform parameters { uint input_id1; uint input_id2; uint output_id; -- cgit v1.3