nvk: Add a wfi for blackwell in CmdDispatchIndirect
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

This fixes CTS flakes in several tests, for example:
dEQP-VK.synchronization.signal_order.shared_binary_semaphore.write_copy_buffer_read_ssbo_compute_indirect.buffer_262144_opaque_fd

Fixes: 1c77a6f049 ("nvk: Don't emit MME FIFO config on Blackwell+")
Reviewed-by: Mary Guillemard <mary@mary.zone>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41010>
This commit is contained in:
Mel Henning 2026-04-15 18:54:43 -04:00 committed by Marge Bot
parent ee64cb2763
commit 1e114e2dce

View file

@ -572,8 +572,18 @@ nvk_CmdDispatchIndirect(VkCommandBuffer commandBuffer,
struct nv_push *p;
if (nvk_cmd_buffer_compute_cls(cmd) >= TURING_COMPUTE_A) {
p = nvk_cmd_buffer_push(cmd, 14);
if (nvk_cmd_buffer_compute_cls(cmd) < BLACKWELL_COMPUTE_A)
if (nvk_cmd_buffer_compute_cls(cmd) < BLACKWELL_COMPUTE_A) {
P_IMMD(p, NVC597, SET_MME_DATA_FIFO_CONFIG, FIFO_SIZE_SIZE_4KB);
} else {
/* The line in the other side of the if causes an implicit wfi
* due to the subc switch which we apparently rely on for
* correctness (!?). Anyway, to prevent issues on blackwell
* we need to wfi here too.
* TODO: delete this
*/
P_IMMD(p, NVC86F, WFI, 0);
}
if (nvk_cmd_buffer_compute_cls(cmd) >= AMPERE_COMPUTE_B)
P_1INC(p, NVC7C0, CALL_MME_MACRO(NVK_MME_DISPATCH_INDIRECT));
else