This implements the sparseBinding feature radv. The feature name is a misnomer,
as all the resources still have to be completely backed by memore. However,
that can be done independently of descriptor generation, so we have to work
with blocks of address space already.

This feature does not need any kernel features. There are some kernel features
that are useful for sparseResidencyBuffer in the works, this series is designed
such that plugging those in and enabling sparseResidencyBuffer is going to take
minimal work.

deqp-vk -n \*sparse\*:

Test run totals:
  Passed:        1261/2981 (42.3%)
  Failed:        0/2981 (0.0%)
  Not supported: 1720/2981 (57.7%)
  Warnings:      0/2981 (0.0%)

As well as no regressions in the complete CTS.


Bas Nieuwenhuizen (8):
  radv/amdgpu: Allow submitting 0 command buffers.
  radv: Better handle submitting 0 command buffers.
  radv/amdgpu: Add winsys implementation of virtual buffers.
  radv: Implement sparse buffer creation.
  radv: Implement sparse image creation.
  radv: Implement sparse memory binding.
  radv/amdgpu: Use reference counting for bos.
  radv: Enable sparseBinding feature.

 src/amd/vulkan/radv_device.c                  | 134 +++++++++++++--
 src/amd/vulkan/radv_image.c                   |  23 ++-
 src/amd/vulkan/radv_private.h                 |   2 +
 src/amd/vulkan/radv_radeon_winsys.h           |   6 +
 src/amd/vulkan/radv_wsi.c                     |   3 +-
 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c | 228 +++++++++++++++++++++++---
 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.h |  36 +++-
 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 110 ++++++++++++-
 8 files changed, 496 insertions(+), 46 deletions(-)

-- 
2.11.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to