render/vulkan: Use instanced draws instead of scissors

Similar to what we have already done for gles2. To simplify things we
use the staging ring buffer for the vertex buffers by extending the
usage bits, rather than introducing a separate pool.

Signed-off-by: Kenny Levinsen <kl@kl.wtf>
This commit is contained in:
Kenny Levinsen 2026-04-12 17:47:40 +02:00 committed by Félix Poisot
parent 439258a43b
commit 8abe53d1d2
3 changed files with 113 additions and 39 deletions

View file

@ -8,11 +8,14 @@ layout(push_constant, row_major) uniform UBO {
vec2 uv_size;
} data;
layout(location = 0) in vec4 inst_rect;
layout(location = 0) out vec2 uv;
void main() {
vec2 pos = vec2(float((gl_VertexIndex + 1) & 2) * 0.5f,
float(gl_VertexIndex & 2) * 0.5f);
pos = inst_rect.xy + pos * inst_rect.zw;
uv = data.uv_offset + pos * data.uv_size;
gl_Position = data.proj * vec4(pos, 0.0, 1.0);
}