Module: Mesa Branch: main Commit: 6d00c2f78cf651ef156c287368783ac6d0c40d50 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d00c2f78cf651ef156c287368783ac6d0c40d50
Author: Dave Airlie <[email protected]> Date: Tue Sep 26 10:24:23 2023 +1000 draw/mesh: reset some user state values on mesh draws. Otherwise previous non-mesh draws and can leave things dirty. Fixes crashes in: dEQP-VK.mesh_shader.ext.query.all_queries.triangles.reset_before.copy.no_wait.indirect_draw.32bit.no_availability.no_blocks.task_mesh.inside_rp.single_view.with_secondary after other shaders have run. Reviewed-by: Mike Blumenkrantz <[email protected]> Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25385> --- src/gallium/auxiliary/draw/draw_pt.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gallium/auxiliary/draw/draw_pt.c b/src/gallium/auxiliary/draw/draw_pt.c index e983bd7dafd..01f11ed104d 100644 --- a/src/gallium/auxiliary/draw/draw_pt.c +++ b/src/gallium/auxiliary/draw/draw_pt.c @@ -643,6 +643,12 @@ draw_mesh(struct draw_context *draw, { struct draw_pt_middle_end *middle = draw->pt.middle.mesh; + draw->pt.user.eltSize = 0; + draw->pt.user.viewid = 0; + draw->pt.user.drawid = 0; + draw->pt.user.increment_draw_id = false; + draw->pt.vertices_per_patch = 0; + middle->prepare(middle, 0, 0, NULL); draw_mesh_middle_end_run(middle, vert_info, prim_info);
