From b3b73643cac771a3edffd3afbbe32c70def44aa9 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: (cherry picked from commit 951083768b351b0700bdcc02758670e505cce974) --- .pick_status.json | 2 +- src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index e08b27d1762..a95e5f8292d 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -364,7 +364,7 @@ "description": "radv/winsys: set IB flags prior to submit in the sysmem path", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, 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.11.0