[PATCH] Add flag to disable implicit synchronization
Andres Rodriguez
andresx7 at gmail.com
Mon Sep 18 23:16:49 UTC 2017
Implicit synchronization of jobs that access a shared bo is always enabled.
Currently this behaviour is required for DRI2/3 and PRIME use cases, where the
protocol doesn't provide a mechanism to shared an synchronization primitive
alongside the surface.
This patch series aims to provide a mechanism to allow userspace to disable
implicit synchronization when it is not required.
Following is an example of some 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 AMDGPU_GEM_CREATE_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
The libdrm and radv patches are included for reference.
Andres Rodriguez (1):
drm/amdgpu: introduce AMDGPU_GEM_CREATE_EXPLICIT_SYNC
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 +++-
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 4 +++-
drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 8 ++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 8 ++++++--
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.h | 3 ++-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 6 ++++--
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 10 ++++++----
include/uapi/drm/amdgpu_drm.h | 2 ++
8 files changed, 34 insertions(+), 11 deletions(-)
--
2.9.3
More information about the amd-gfx
mailing list