Skip to content
  1. Jan 28, 2017
    • Chris Wilson's avatar
      drm/i915: Enable userspace to opt-out of implicit fencing · 77ae9957
      Chris Wilson authored
      
      
      Userspace is faced with a dilemma. The kernel requires implicit fencing
      to manage resource usage (we always must wait for the GPU to finish
      before releasing its PTE) and for third parties. However, userspace may
      wish to avoid this serialisation if it is either using explicit fencing
      between parties and wants more fine-grained access to buffers (e.g. it
      may partition the buffer between uses and track fences on ranges rather
      than the implicit fences tracking the whole object). It follows that
      userspace needs a mechanism to avoid the kernel's serialisation on its
      implicit fences before execbuf execution.
      
      The next question is whether this is an object, execbuf or context flag.
      Hybrid users (such as using explicit EGL_ANDROID_native_sync fencing on
      shared winsys buffers, but implicit fencing on internal surfaces)
      require a per-object level flag. Given that this flag need to be only
      set once for the lifetime of the object, this reduces the convenience of
      having an execbuf or context level flag (and avoids having multiple
      pieces of uABI controlling the same feature).
      
      Incorrect use of this flag will result in rendering corruption and GPU
      hangs - but will not result in use-after-free or similar resource
      tracking issues.
      
      Serious caveat: write ordering is not strictly correct after setting
      this flag on a render target on multiple engines. This affects all
      subsequent GEM operations (execbuf, set-domain, pread) and shared
      dma-buf operations. A fix is possible - but costly (both in terms of
      further ABI changes and runtime overhead).
      
      Testcase: igt/gem_exec_async
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Acked-by: default avatarChad Versace <chadversary@chromium.org>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170127094008.27489-1-chris@chris-wilson.co.uk
      77ae9957
  2. Jan 27, 2017
  3. Jan 26, 2017
  4. Jan 25, 2017
  5. Jan 24, 2017
  6. Jan 23, 2017