From b83ce03a7d1378fef8e9999e8afe8aa777debc01 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 16 May 2023 14:38:55 +0200 Subject: [PATCH] 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 Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index b8625f9c567..05323cbc0a7 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -663,6 +663,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, @@ -671,6 +673,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; }