summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2018-08-17 14:45:39 +0200
committerDylan Baker <dylan@pnwbakers.com>2018-08-20 08:25:34 -0700
commitfe63541a7058762be1b40749ca89626440b8e091 (patch)
tree4093d0c80c650ce43bcdff77d737c1ab38879252
parentb33a2fa9113c47d6700161eef6e87471e37996ea (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: <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> (cherry picked from commit d27e1584ce30b2186ac933f976dc31c3624b385b)
-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 0cd870b7c89..3103a29cc76 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
@@ -692,7 +692,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));
memcpy(priorities, cs->priorities, cs->num_buffers * sizeof(uint8_t));
unique_bo_count = cs->num_buffers;