[PATCH 0/6] amdgpu: Allow explicitly synchronized submissions.

Christian König christian.koenig at amd.com
Thu Aug 18 13:20:05 UTC 2022


Hi Bas,

I've just pushed the branch drm-exec to my fdo repository: 
https://gitlab.freedesktop.org/ckoenig/linux-drm.git

This branch contains all the gang submit patches as well as the latest 
drm-exec stuff. VCN3/4 video decoding has some issues on it, but that 
probably shouldn't bother your work.

Please rebase this work on top. It should at least make the TTM changes 
unnecessary.

Going to take a closer look into the VM sync changes now.

Regards,
Christian.

Am 13.08.22 um 03:27 schrieb Bas Nieuwenhuizen:
> This adds a context option to use DMA_RESV_USAGE_BOOKKEEP for userspace submissions,
> based on Christians TTM work.
>
> Disabling implicit sync is something we've wanted in radv for a while for resolving
> some corner cases. A more immediate thing that would be solved here is avoiding a
> bunch of implicit sync on GPU map/unmap operations as well, which helps with stutter
> around sparse maps/unmaps.
>
> This has seen a significant improvement in stutter in Forza Horizon 5 and Forza
> Horizon 4. (As games that had significant issues in sparse binding related stutter).
> I've been able to pass a full vulkan-cts run on navi21 with this.
>
> Userspace code for this is available at
> https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18032 and a branch
> for the kernel code is available at
> https://github.com/BNieuwenhuizen/linux/tree/no-implicit-sync-5.19
>
> This is a follow-up on RFC series https://patchwork.freedesktop.org/series/104578/ .
>
> The main changes were:
>
> 1) Instead of replacing num_shared with usage, I'm just adding usage, since
>     num_shared was actually needed.
> 2) We now agree that DMA_RESV_USAGE_BOOKKEEP is reasonable for this purpose.
>
> Please let me know if I missed anything, especially with the change to VM updates,
> as we went back and forth a ton of times on that.
>
>
> Bas Nieuwenhuizen (6):
>    drm/ttm: Add usage to ttm_validate_buffer.
>    drm/amdgpu: Add separate mode for syncing DMA_RESV_USAGE_BOOKKEEP.
>    drm/amdgpu: Allow explicit sync for VM ops.
>    drm/amdgpu: Refactor amdgpu_vm_get_pd_bo.
>    drm/amdgpu: Add option to disable implicit sync for a context.
>    drm/amdgpu: Bump amdgpu driver version.
>
>   .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c  | 16 +++++++---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c        | 20 +++++++++---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_csa.c       |  3 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c       | 32 +++++++++++++++++--
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.h       |  1 +
>   drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c       |  3 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c       | 12 ++++---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c       |  3 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.c    | 11 ++++---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.h    |  3 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c      | 11 +++++--
>   drivers/gpu/drm/amd/amdgpu/amdgpu_sync.h      |  4 +--
>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c       |  1 +
>   drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c       |  2 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c        |  5 ++-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h        |  3 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c    |  3 +-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c   |  3 +-
>   drivers/gpu/drm/amd/amdkfd/kfd_svm.c          |  1 +
>   drivers/gpu/drm/qxl/qxl_release.c             |  1 +
>   drivers/gpu/drm/radeon/radeon_cs.c            |  2 ++
>   drivers/gpu/drm/radeon/radeon_gem.c           |  1 +
>   drivers/gpu/drm/radeon/radeon_vm.c            |  2 ++
>   drivers/gpu/drm/ttm/ttm_execbuf_util.c        |  3 +-
>   drivers/gpu/drm/vmwgfx/vmwgfx_resource.c      |  7 +++-
>   drivers/gpu/drm/vmwgfx/vmwgfx_validation.c    |  1 +
>   include/drm/ttm/ttm_execbuf_util.h            |  2 ++
>   include/uapi/drm/amdgpu_drm.h                 |  3 ++
>   28 files changed, 122 insertions(+), 37 deletions(-)
>



More information about the dri-devel mailing list