radv: reserve cmdbuf space in radv_flush_gfx2ace_semaphore()

Fixes an assertion with test_amplification_shader in vkd3d-proton.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23057>
(cherry picked from commit b83ce03a7d)
This commit is contained in:
Samuel Pitoiset 2023-05-16 14:38:55 +02:00 committed by Eric Engestrom
parent d5541307fd
commit 433e4e8fb8
2 changed files with 6 additions and 1 deletions

View file

@ -490,7 +490,7 @@
"description": "radv: reserve cmdbuf space in radv_flush_gfx2ace_semaphore()",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null
},

View file

@ -659,6 +659,8 @@ radv_flush_gfx2ace_semaphore(struct radv_cmd_buffer *cmd_buffer)
return false;
}
ASSERTED unsigned cdw_max = radeon_check_space(cmd_buffer->device->ws, cmd_buffer->cs, 12);
/* GFX writes a value to the semaphore which ACE can wait for.*/
si_cs_emit_write_event_eop(
cmd_buffer->cs, cmd_buffer->device->physical_device->rad_info.gfx_level,
@ -667,6 +669,9 @@ radv_flush_gfx2ace_semaphore(struct radv_cmd_buffer *cmd_buffer)
cmd_buffer->ace_internal.sem.gfx2ace_value, cmd_buffer->gfx9_eop_bug_va);
cmd_buffer->ace_internal.sem.emitted_gfx2ace_value = cmd_buffer->ace_internal.sem.gfx2ace_value;
assert(cmd_buffer->cs->cdw <= cdw_max);
return true;
}