panvk: Fix ordering in prepare_draw()
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

panvk_draw_prepare_attributes() depends on VS descriptors sets being
up-to-date which implies calling cmd_prepare_shader_desc_tables()
before. panvk_draw_prepare_vs_copy_desc_job() depends on img_attrib_table,
which can be set in panvk_draw_prepare_vs_attributes().

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37501>
This commit is contained in:
Boris Brezillon 2025-09-19 21:09:20 +02:00
parent f011e5707d
commit 971e068762

View file

@ -1362,8 +1362,6 @@ prepare_draw(struct panvk_cmd_buffer *cmdbuf, struct panvk_draw_data *draw)
if (result != VK_SUCCESS)
return result;
panvk_draw_prepare_attributes(cmdbuf, draw);
uint32_t used_set_mask =
vs->desc_info.used_set_mask | (fs ? fs->desc_info.used_set_mask : 0);
@ -1380,8 +1378,6 @@ prepare_draw(struct panvk_cmd_buffer *cmdbuf, struct panvk_draw_data *draw)
cmdbuf, desc_state, vs, vs_desc_state);
if (result != VK_SUCCESS)
return result;
panvk_draw_prepare_vs_copy_desc_job(cmdbuf, draw);
}
/* No need to setup the FS desc tables if the FS is not executed. */
@ -1397,6 +1393,11 @@ prepare_draw(struct panvk_cmd_buffer *cmdbuf, struct panvk_draw_data *draw)
return result;
}
panvk_draw_prepare_attributes(cmdbuf, draw);
if (gfx_state_dirty(cmdbuf, DESC_STATE) || gfx_state_dirty(cmdbuf, VS))
panvk_draw_prepare_vs_copy_desc_job(cmdbuf, draw);
draw->tls = batch->tls.gpu;
draw->fb = batch->fb.desc.gpu;