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 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
