From 9206aeb077e60fa768f6fb06960cf6ad1b89cd2a Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 25 Aug 2023 17:26:30 +0200 Subject: [PATCH] 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: --- src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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; -- 2.7.4