1. 30 6月, 2017 1 次提交
  2. 17 6月, 2017 2 次提交
    • D
      amdgpu: use drm sync objects for shared semaphores (v6) · 660e8558
      Dave Airlie 提交于
      This creates a new command submission chunk for amdgpu
      to add in and out sync objects around the submission.
      
      Sync objects are managed via the drm syncobj ioctls.
      
      The command submission interface is enhanced with two new
      chunks, one for syncobj pre submission dependencies,
      and one for post submission sync obj signalling,
      and just takes a list of handles for each.
      
      This is based on work originally done by David Zhou at AMD,
      with input from Christian Konig on what things should look like.
      
      In theory VkFences could be backed with sync objects and
      just get passed into the cs as syncobj handles as well.
      
      NOTE: this interface addition needs a version bump to expose
      it to userspace.
      
      TODO: update to dep_sync when rebasing onto amdgpu master.
      (with this - r-b from Christian)
      
      v1.1: keep file reference on import.
      v2: move to using syncobjs
      v2.1: change some APIs to just use p pointer.
      v3: make more robust against CS failures, we now add the
      wait sems but only remove them once the CS job has been
      submitted.
      v4: rewrite names of API and base on new syncobj code.
      v5: move post deps earlier, rename some apis
      v6: lookup post deps earlier, and just replace fences
      in post deps stage (Christian)
      Reviewed-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      660e8558
    • D
      amdgpu/cs: split out fence dependency checking (v2) · 6f0308eb
      Dave Airlie 提交于
      This just splits out the fence depenency checking into it's
      own function to make it easier to add semaphore dependencies.
      
      v2: rebase onto other changes.
      
      v1-Reviewed-by: Christian König <christian.koenig@amd.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      6f0308eb
  3. 09 6月, 2017 1 次提交
  4. 01 6月, 2017 1 次提交
    • A
      drm/amdgpu: untie user ring ids from kernel ring ids v6 · effd924d
      Andres Rodriguez 提交于
      Add amdgpu_queue_mgr, a mechanism that allows disjointing usermode's
      ring ids from the kernel's ring ids.
      
      The queue manager maintains a per-file descriptor map of user ring ids
      to amdgpu_ring pointers. Once a map is created it is permanent (this is
      required to maintain FIFO execution guarantees for a context's ring).
      
      Different queue map policies can be configured for each HW IP.
      Currently all HW IPs use the identity mapper, i.e. kernel ring id is
      equal to the user ring id.
      
      The purpose of this mechanism is to distribute the load across multiple
      queues more effectively for HW IPs that support multiple rings.
      Userspace clients are unable to check whether a specific resource is in
      use by a different client. Therefore, it is up to the kernel driver to
      make the optimal choice.
      
      v2: remove amdgpu_queue_mapper_funcs
      v3: made amdgpu_queue_mgr per context instead of per-fd
      v4: add context_put on error paths
      v5: rebase and include new IPs UVD_ENC & VCN_*
      v6: drop unused amdgpu_ring_is_valid_index (Alex)
      Reviewed-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NAndres Rodriguez <andresx7@gmail.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      effd924d
  5. 25 5月, 2017 3 次提交
  6. 18 5月, 2017 1 次提交
  7. 29 4月, 2017 1 次提交
  8. 08 4月, 2017 1 次提交
  9. 07 4月, 2017 1 次提交
  10. 05 4月, 2017 1 次提交
  11. 30 3月, 2017 11 次提交
  12. 11 3月, 2017 1 次提交
  13. 10 2月, 2017 1 次提交
  14. 28 1月, 2017 2 次提交
  15. 24 1月, 2017 1 次提交
  16. 07 12月, 2016 1 次提交
  17. 11 11月, 2016 2 次提交
  18. 09 11月, 2016 1 次提交
  19. 26 10月, 2016 5 次提交
  20. 25 10月, 2016 1 次提交
    • C
      dma-buf: Rename struct fence to dma_fence · f54d1867
      Chris Wilson 提交于
      I plan to usurp the short name of struct fence for a core kernel struct,
      and so I need to rename the specialised fence/timeline for DMA
      operations to make room.
      
      A consensus was reached in
      https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html
      that making clear this fence applies to DMA operations was a good thing.
      Since then the patch has grown a bit as usage increases, so hopefully it
      remains a good thing!
      
      (v2...: rebase, rerun spatch)
      v3: Compile on msm, spotted a manual fixup that I broke.
      v4: Try again for msm, sorry Daniel
      
      coccinelle script:
      @@
      
      @@
      - struct fence
      + struct dma_fence
      @@
      
      @@
      - struct fence_ops
      + struct dma_fence_ops
      @@
      
      @@
      - struct fence_cb
      + struct dma_fence_cb
      @@
      
      @@
      - struct fence_array
      + struct dma_fence_array
      @@
      
      @@
      - enum fence_flag_bits
      + enum dma_fence_flag_bits
      @@
      
      @@
      (
      - fence_init
      + dma_fence_init
      |
      - fence_release
      + dma_fence_release
      |
      - fence_free
      + dma_fence_free
      |
      - fence_get
      + dma_fence_get
      |
      - fence_get_rcu
      + dma_fence_get_rcu
      |
      - fence_put
      + dma_fence_put
      |
      - fence_signal
      + dma_fence_signal
      |
      - fence_signal_locked
      + dma_fence_signal_locked
      |
      - fence_default_wait
      + dma_fence_default_wait
      |
      - fence_add_callback
      + dma_fence_add_callback
      |
      - fence_remove_callback
      + dma_fence_remove_callback
      |
      - fence_enable_sw_signaling
      + dma_fence_enable_sw_signaling
      |
      - fence_is_signaled_locked
      + dma_fence_is_signaled_locked
      |
      - fence_is_signaled
      + dma_fence_is_signaled
      |
      - fence_is_later
      + dma_fence_is_later
      |
      - fence_later
      + dma_fence_later
      |
      - fence_wait_timeout
      + dma_fence_wait_timeout
      |
      - fence_wait_any_timeout
      + dma_fence_wait_any_timeout
      |
      - fence_wait
      + dma_fence_wait
      |
      - fence_context_alloc
      + dma_fence_context_alloc
      |
      - fence_array_create
      + dma_fence_array_create
      |
      - to_fence_array
      + to_dma_fence_array
      |
      - fence_is_array
      + dma_fence_is_array
      |
      - trace_fence_emit
      + trace_dma_fence_emit
      |
      - FENCE_TRACE
      + DMA_FENCE_TRACE
      |
      - FENCE_WARN
      + DMA_FENCE_WARN
      |
      - FENCE_ERR
      + DMA_FENCE_ERR
      )
       (
       ...
       )
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      Acked-by: NSumit Semwal <sumit.semwal@linaro.org>
      Acked-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/20161025120045.28839-1-chris@chris-wilson.co.uk
      f54d1867
  21. 21 10月, 2016 1 次提交