diff options
author | Florian Will <[email protected]> | 2020-01-27 10:30:21 +0100 |
---|---|---|
committer | Florian Will <[email protected]> | 2020-01-27 11:53:22 +0100 |
commit | 951083768b351b0700bdcc02758670e505cce974 (patch) | |
tree | 6f8e50a22432a2f0bba45a6083cef85ff159c672 /src/amd/vulkan/winsys | |
parent | 90312de551dc3d4a14e9e4c084d99d5bdae6f599 (diff) |
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 <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Cc: <[email protected]>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3577>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3577>
Diffstat (limited to 'src/amd/vulkan/winsys')
-rw-r--r-- | src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 2 |
1 files changed, 2 insertions, 0 deletions
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, |