1. 07 10月, 2017 2 次提交
  2. 14 9月, 2017 2 次提交
  3. 09 9月, 2017 1 次提交
  4. 22 6月, 2017 1 次提交
  5. 16 6月, 2017 1 次提交
    • C
      drm/i915: First try the previous execbuffer location · 616d9cee
      Chris Wilson 提交于
      When choosing a slot for an execbuffer, we ideally want to use the same
      address as last time (so that we don't have to rebind it) and the same
      address as expected by the user (so that we don't have to fixup any
      relocations pointing to it). If we first try to bind the incoming
      execbuffer->offset from the user, or the currently bound offset that
      should hopefully achieve the goal of avoiding the rebind cost and the
      relocation penalty. However, if the object is not currently bound there
      we don't want to arbitrarily unbind an object in our chosen position and
      so choose to rebind/relocate the incoming object instead. After we
      report the new position back to the user, on the next pass the
      relocations should have settled down.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NJoonas Lahtinen <joonas.lahtien@linux.intel.com>
      616d9cee
  6. 02 6月, 2017 1 次提交
  7. 03 3月, 2017 2 次提交
  8. 15 2月, 2017 8 次提交
  9. 14 2月, 2017 1 次提交
  10. 10 2月, 2017 1 次提交
  11. 15 1月, 2017 6 次提交
  12. 14 1月, 2017 1 次提交
  13. 13 1月, 2017 1 次提交
  14. 11 1月, 2017 3 次提交
  15. 07 1月, 2017 1 次提交
  16. 20 12月, 2016 1 次提交
    • P
      drm/i915: fully apply WaSkipStolenMemoryFirstPage · 3c6b29b2
      Paulo Zanoni 提交于
      Don't even tell the mm allocator to handle the first page of stolen on
      the affected platforms. This means that we won't inherit the FB in
      case the BIOS decides to put it at the start of stolen. But the BIOS
      should not be putting it at the start of stolen since it's going to
      get corrupted. I suppose the bug here is that some pixels at the very
      top of the screen will be corrupted, so it's not exactly easy to
      notice.
      
      We have confirmation that the first page of stolen does actually get
      corrupted, so I really think we should do this in order to avoid any
      possible future headaches, even if that means losing BIOS framebuffer
      inheritance. Let's not use the HW in a way it's not supposed to be
      used.
      
      Notice that now ggtt->stolen_usable_size won't reflect the ending
      address of the stolen usable range anymore, so we have to fix the
      places that rely on this. To simplify, we'll just use U64_MAX.
      
      v2: don't even put the first page on the mm (Chris)
      v3: drm_mm_init() takes size instead of end as argument (Ville)
      v4: add a comment explaining the reserved ranges (Chris)
          use 0 for start and U64_MAX for end when possible (Chris)
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94605
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: http://patchwork.freedesktop.org/patch/msgid/1481808235-27607-1-git-send-email-paulo.r.zanoni@intel.com
      3c6b29b2
  17. 29 11月, 2016 1 次提交
  18. 17 11月, 2016 2 次提交
  19. 11 11月, 2016 1 次提交
  20. 01 11月, 2016 1 次提交
  21. 29 10月, 2016 2 次提交
    • C
      drm/i915: Enable multiple timelines · 80b204bc
      Chris Wilson 提交于
      With the infrastructure converted over to tracking multiple timelines in
      the GEM API whilst preserving the efficiency of using a single execution
      timeline internally, we can now assign a separate timeline to every
      context with full-ppgtt.
      
      v2: Add a comment to indicate the xfer between timelines upon submission.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20161028125858.23563-35-chris@chris-wilson.co.uk
      80b204bc
    • C
      drm/i915: Move GEM activity tracking into a common struct reservation_object · d07f0e59
      Chris Wilson 提交于
      In preparation to support many distinct timelines, we need to expand the
      activity tracking on the GEM object to handle more than just a request
      per engine. We already use the struct reservation_object on the dma-buf
      to handle many fence contexts, so integrating that into the GEM object
      itself is the preferred solution. (For example, we can now share the same
      reservation_object between every consumer/producer using this buffer and
      skip the manual import/export via dma-buf.)
      
      v2: Reimplement busy-ioctl (by walking the reservation object), postpone
      the ABI change for another day. Similarly use the reservation object to
      find the last_write request (if active and from i915) for choosing
      display CS flips.
      
      Caveats:
      
       * busy-ioctl: busy-ioctl only reports on the native fences, it will not
      warn of stalls (in set-domain-ioctl, pread/pwrite etc) if the object is
      being rendered to by external fences. It also will not report the same
      busy state as wait-ioctl (or polling on the dma-buf) in the same
      circumstances. On the plus side, it does retain reporting of which
      *i915* engines are engaged with this object.
      
       * non-blocking atomic modesets take a step backwards as the wait for
      render completion blocks the ioctl. This is fixed in a subsequent
      patch to use a fence instead for awaiting on the rendering, see
      "drm/i915: Restore nonblocking awaits for modesetting"
      
       * dynamic array manipulation for shared-fences in reservation is slower
      than the previous lockless static assignment (e.g. gem_exec_lut_handle
      runtime on ivb goes from 42s to 66s), mainly due to atomic operations
      (maintaining the fence refcounts).
      
       * loss of object-level retirement callbacks, emulated by VMA retirement
      tracking.
      
       * minor loss of object-level last activity information from debugfs,
      could be replaced with per-vma information if desired
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20161028125858.23563-21-chris@chris-wilson.co.uk
      d07f0e59