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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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(-)





[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux