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 <brian.paul@broadcom.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29947>
This commit is contained in:
Neha Bhende 2024-06-27 14:51:50 -07:00 committed by Marge Bot
parent f9a15b37ef
commit 8b8f347e4b

View file

@ -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;