radv: rework the optimal packet order for task/mesh draws

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37013>
This commit is contained in:
Samuel Pitoiset
2025-08-29 13:53:27 +02:00
committed by Marge Bot
parent f5bbe5228f
commit 62c92a0516
+11 -11
View File
@@ -12462,17 +12462,6 @@ radv_before_taskmesh_draw(struct radv_cmd_buffer *cmd_buffer, const struct radv_
radv_emit_all_graphics_states(cmd_buffer, info);
if (cmd_buffer->state.flush_bits)
radv_emit_cache_flush(cmd_buffer);
if (task_shader) {
radv_gang_cache_flush(cmd_buffer);
if (need_task_semaphore) {
radv_wait_gang_leader(cmd_buffer);
}
}
struct radv_descriptor_state *descriptors_state =
radv_get_descriptors_state(cmd_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS);
@@ -12492,6 +12481,17 @@ radv_before_taskmesh_draw(struct radv_cmd_buffer *cmd_buffer, const struct radv_
radv_gfx12_emit_buffered_regs(device, cmd_buffer->gang.cs);
}
if (cmd_buffer->state.flush_bits)
radv_emit_cache_flush(cmd_buffer);
if (task_shader) {
radv_gang_cache_flush(cmd_buffer);
if (need_task_semaphore) {
radv_wait_gang_leader(cmd_buffer);
}
}
if (device->sqtt.bo && !dgc)
radv_describe_draw(cmd_buffer, info);
if (likely(!info->indirect_va)) {