summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2018-08-17 14:45:39 +0200
committerSamuel Pitoiset <[email protected]>2018-08-17 15:00:21 +0200
commitd27e1584ce30b2186ac933f976dc31c3624b385b (patch)
tree30a260ee42e22fdf58e7f0f7a2d1d8cfd3e7088d
parentde3b34df97326b793fac2152eedbd25a0c2d0812 (diff)
radv/winsys: fix creating the BO list for virtual buffers
When the number of unique BO is 0, we optimize the list creation by copying all buffers of the current CS directly into it. But this is only valid if the CS doesn't have virtual buffers, otherwise they are not added and hw might report VM faults. This fixes VM faults with: dEQP-VK.sparse_resources.image_sparse_binding.2d.rgba8ui.1024_128_1 CC: <[email protected]> Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
-rw-r--r--src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
index c94c0f339fd..149c2562187 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
@@ -673,7 +673,7 @@ static int radv_amdgpu_create_bo_list(struct radv_amdgpu_winsys *ws,
if (!cs->num_buffers)
continue;
- if (unique_bo_count == 0) {
+ if (unique_bo_count == 0 && !cs->num_virtual_buffers) {
memcpy(handles, cs->handles, cs->num_buffers * sizeof(amdgpu_bo_handle));
unique_bo_count = cs->num_buffers;
continue;