[Mesa-dev] [PATCH 0/2] Use explicit sync for non-dri BOs
Andres Rodriguez
andresx7 at gmail.com
Fri Oct 20 22:42:11 UTC 2017
Currently, implicit synchronization of jobs that access a shared bo is always
enabled. Currently this behaviour is required for DRI use cases, where the
protocol doesn't provide a mechanism to share a synchronization primitive
alongside the surface.
This patch selectively disables implicit synchronization for all non-dri BOs.
Following is an example of some steamvr async compute work getting delayed for
2.12ms due to implicit synchronization:
https://drive.google.com/open?id=0B2ygSoZuj3IMRzFCYzBxaDFpaFk
Following is the same workload but with explicit sync enabled:
https://drive.google.com/open?id=0B2ygSoZuj3IMb0pTZEJRQmNwVHM
In the second case we can see that hellovr_vulkan and the steamvr compositor
can access the same surface simultaneously, without the gpu scheduler
introducing any implicit waits.
Gpuvis traces for these two scenarios can be found here:
https://drive.google.com/open?id=0B2ygSoZuj3IMRklfM1llbTJqTnc
Implicit sync is only required for dri BOs, where we don't have
an explicit sync protocol available.
This benefits non-dri compositors that use explicit synchronization,
e.g. the steamvr compositor.
Andres Rodriguez (2):
radv: factor out radv_alloc_memory
radv: disable implicit sync for radv allocated bos v2
src/amd/vulkan/radv_device.c | 22 +++++++++++++++++-----
src/amd/vulkan/radv_private.h | 11 +++++++++++
src/amd/vulkan/radv_radeon_winsys.h | 1 +
src/amd/vulkan/radv_wsi.c | 3 ++-
src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c | 2 ++
5 files changed, 33 insertions(+), 6 deletions(-)
--
2.9.3
More information about the mesa-dev
mailing list