1. 20 12月, 2010 1 次提交
  2. 18 12月, 2010 1 次提交
  3. 17 12月, 2010 1 次提交
    • M
      drm/i915: Add support for precise vblank timestamping (v2) · 0af7e4df
      Mario Kleiner 提交于
      v2: Change IS_IRONLAKE to IS_GEN5 to adapt to 2.6.37
      
      This patch adds new functions for use by the drm core:
      
      .get_vblank_timestamp() provides a precise timestamp
      for the end of the most recent (or current) vblank
      interval of a given crtc, as needed for the DRI2
      implementation of the OML_sync_control extension.
      It is a thin wrapper around the drm function
      drm_calc_vbltimestamp_from_scanoutpos() which does
      almost all the work.
      
      .get_scanout_position() provides the current horizontal
      and vertical video scanout position and "in vblank"
      status of a given crtc, as needed by the drm for use by
      drm_calc_vbltimestamp_from_scanoutpos().
      
      The patch modifies the pageflip completion routine
      to use these precise vblank timestamps as the timestamps
      for pageflip completion events.
      
      This code has been only tested on a HP-Mini Netbook with
      Atom processor and Intel 945GME gpu. The codepath for
      (IS_G4X(dev) || IS_GEN5(dev) || IS_GEN6(dev)) gpu's
      has not been tested so far due to lack of hardware.
      Signed-off-by: NMario Kleiner <mario.kleiner@tuebingen.mpg.de>
      Acked-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      0af7e4df
  4. 10 12月, 2010 2 次提交
  5. 06 12月, 2010 1 次提交
  6. 05 12月, 2010 1 次提交
  7. 02 12月, 2010 2 次提交
    • C
      drm/i915: Pipelined fencing [infrastructure] · d9e86c0e
      Chris Wilson 提交于
      With this change, every batchbuffer can use all available fences (save
      pinned and scanout, of course) without ever stalling the gpu!
      
      In theory. Currently the actual pipelined update of the register is
      disabled due to some stability issues. However, just the deferred update
      is a significant win.
      
      Based on a series of patches by Daniel Vetter.
      
      The premise is that before every access to a buffer through the GTT we
      have to declare whether we need a register or not. If the access is by
      the GPU, a pipelined update to the register is made via the ringbuffer,
      and we track the last seqno of the batches that access it. If by the
      CPU we wait for the last GPU access and update the register (either
      to clear or to set it for the current buffer).
      
      One advantage of being able to pipeline changes is that we can defer the
      actual updating of the fence register until we first need to access the
      object through the GTT, i.e. we can eliminate the stall on set_tiling.
      This is important as the userspace bo cache does not track the tiling
      status of active buffers which generate frequent stalls on gen3 when
      enabling tiling for an already bound buffer.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      d9e86c0e
    • C
  8. 30 11月, 2010 1 次提交
  9. 26 11月, 2010 2 次提交
  10. 25 11月, 2010 2 次提交
  11. 24 11月, 2010 10 次提交
  12. 23 11月, 2010 2 次提交
  13. 22 11月, 2010 3 次提交
  14. 13 11月, 2010 1 次提交
  15. 12 11月, 2010 1 次提交
  16. 11 11月, 2010 1 次提交
  17. 09 11月, 2010 1 次提交
  18. 08 11月, 2010 2 次提交
  19. 05 11月, 2010 1 次提交
    • D
      drm/i915: kill mappable/fenceable disdinction · 75e9e915
      Daniel Vetter 提交于
      a00b10c3 "Only enforce fence limits inside the GTT" also
      added a fenceable/mappable disdinction when binding/pinning buffers.
      This only complicates the code with no pratical gain:
      
      - In execbuffer this matters on for g33/pineview, as this is the only
        chip that needs fences and has an unmappable gtt area. But fences
        are only possible in the mappable part of the gtt, so need_fence
        implies need_mappable. And need_mappable is only set independantly
        with relocations which implies (for sane userspace) that the buffer
        is untiled.
      
      - The overlay code is only really used on i8xx, which doesn't have
        unmappable gtt. And it doesn't support tiled buffers, currently.
      
      - For all other buffers it's a bug to pass in a tiled bo.
      
      In short, this disdinction doesn't have any practical gain.
      
      I've also reverted mapping the overlay and context pages as possibly
      unmappable. It's not worth being overtly clever here, all the big
      gains from unmappable are for execbuf bos.
      
      Also add a comment for a clever optimization that confused me
      while reading the original patch by Chris Wilson.
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      75e9e915
  20. 04 11月, 2010 1 次提交
  21. 02 11月, 2010 1 次提交
  22. 01 11月, 2010 2 次提交