From 951083768b351b0700bdcc02758670e505cce974 Mon Sep 17 00:00:00 2001 From: Florian Will Date: Mon, 27 Jan 2020 10:30:21 +0100 Subject: [PATCH] radv/winsys: set IB flags prior to submit in the sysmem path This fixes missing scene objects in ZUSI 3 + dxvk. Index / vertex buffer upload using thousands of CopyBuffer commands in one huge Vulkan command buffer, mixed with lots of render pass begin/end and draw calls, failed for some of the buffers. radv divides the huge command buffer into 3 IBs, and they had random flags set because the field was uninitialized. Maybe IBs got discarded if they had the PREAMBLE bit set. Signed-off-by: Florian Will Reviewed-by: Bas Nieuwenhuizen Cc: Tested-by: Marge Bot Part-of: --- src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c index 676dd062ff3..dbc7397ed93 100644 --- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c +++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c @@ -1119,6 +1119,7 @@ static int radv_amdgpu_winsys_cs_submit_sysmem(struct radeon_winsys_ctx *_ctx, ibs[j].size = size; ibs[j].ib_mc_address = radv_buffer_get_va(bos[j]); + ibs[j].flags = 0; } cnt++; @@ -1163,6 +1164,7 @@ static int radv_amdgpu_winsys_cs_submit_sysmem(struct radeon_winsys_ctx *_ctx, ibs[0].size = size; ibs[0].ib_mc_address = radv_buffer_get_va(bos[0]); + ibs[0].flags = 0; } r = radv_amdgpu_create_bo_list(cs0->ws, &cs_array[i], cnt, -- 2.30.2