From: Samuel Pitoiset Date: Fri, 25 Aug 2023 15:26:30 +0000 (+0200) Subject: radv/amdgpu: fix executing secondaries without IB2 X-Git-Tag: upstream/23.3.3~2514 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9206aeb077e60fa768f6fb06960cf6ad1b89cd2a;p=platform%2Fupstream%2Fmesa.git radv/amdgpu: fix executing secondaries without IB2 If a secondary cmdbuf has been grown and is executed without IB2 (eg. on compute queue or when it's not allowed), the ib size ptr contains chaining info, which means the IB size was wrong. This fixes CPU crashes when running gl_vk_meshlet_cadscene. Fixes: 277b2afd708 ("radv/amdgpu: add support for executing DGC cmdbuf with RADV_DEBUG=noibs") Signed-off-by: Samuel Pitoiset Part-of: --- diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c index efc7fc6..c0280bc 100644 --- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c +++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c @@ -455,7 +455,8 @@ radv_amdgpu_cs_finalize(struct radeon_cmdbuf *_cs) } /* Append the current (last) IB to the array of IB buffers. */ - radv_amdgpu_cs_add_ib_buffer(cs, cs->ib_buffer, 0, cs->use_ib ? *cs->ib_size_ptr : cs->base.cdw, false); + radv_amdgpu_cs_add_ib_buffer(cs, cs->ib_buffer, 0, cs->use_ib ? G_3F2_IB_SIZE(*cs->ib_size_ptr) : cs->base.cdw, + false); /* Prevent freeing this BO twice. */ cs->ib_buffer = NULL;