From 8b8f347e4b90afe3d341c7e884e04b7c19573b17 Mon Sep 17 00:00:00 2001 From: Neha Bhende Date: Thu, 27 Jun 2024 14:51:50 -0700 Subject: [PATCH] svga: Retrieve stride info from hwtnl->cmd.vdecl for swtnl draws This fixes spec@!opengl 1.0@gl-1.0-polygon-line-aa spec@!opengl 1.1@clipflat and multiple piglit tests failures on VGPU9 device Fixes: 76725452 ("gallium: move vertex stride to CSO") Reviewed-by: Brian Paul Part-of: --- src/gallium/drivers/svga/svga_draw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/svga/svga_draw.c b/src/gallium/drivers/svga/svga_draw.c index 651b4a4385d..9bf0cfe7f92 100644 --- a/src/gallium/drivers/svga/svga_draw.c +++ b/src/gallium/drivers/svga/svga_draw.c @@ -684,7 +684,7 @@ validate_vertex_buffers(struct svga_hwtnl *hwtnl, /* Set IA slot0 input buffer to the SO buffer */ assert(vbuf_count == 1); - vbuffer_attrs[0].stride = svga->curr.velems->strides[0]; + vbuffer_attrs[0].stride = svga->state.sw.need_swtnl ? hwtnl->cmd.vdecl[0].array.stride : svga->curr.velems->strides[0]; vbuffer_attrs[0].offset = hwtnl->cmd.vbufs[0].buffer_offset; vbuffer_attrs[0].sid = 0; assert(so_vertex_count->buffer != NULL); @@ -699,7 +699,7 @@ validate_vertex_buffers(struct svga_hwtnl *hwtnl, struct svga_buffer *sbuf = svga_buffer(hwtnl->cmd.vbufs[i].buffer.resource); - vbuffer_attrs[i].stride = svga->curr.velems->strides[i]; + vbuffer_attrs[i].stride = svga->state.sw.need_swtnl ? hwtnl->cmd.vdecl[i].array.stride : svga->curr.velems->strides[i]; vbuffer_attrs[i].offset = hwtnl->cmd.vbufs[i].buffer_offset; vbuffer_attrs[i].sid = 0;