1. 15 11月, 2010 1 次提交
  2. 29 10月, 2010 1 次提交
    • C
      drm/i915: Only enforce fence limits inside the GTT. · a00b10c3
      Chris Wilson 提交于
      So long as we adhere to the fence registers rules for alignment and no
      overlaps (including with unfenced accesses to linear memory) and account
      for the tiled access in our size allocation, we do not have to allocate
      the full fenced region for the object. This allows us to fight the bloat
      tiling imposed on pre-i965 chipsets and frees up RAM for real use. [Inside
      the GTT we still suffer the additional alignment constraints, so it doesn't
      magic allow us to render larger scenes without stalls -- we need the
      expanded GTT and fence pipelining to overcome those...]
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      a00b10c3
  3. 22 10月, 2010 1 次提交
  4. 25 9月, 2010 1 次提交
    • C
      drm/i915: Adjust hangcheck EIO semantics · 30dbf0c0
      Chris Wilson 提交于
      Owain Ainsworth reported an issue between the interaction of the
      hangcheck and userspace immediately (and permanently) falling back to
      s/w rasterisation. In order to break the mutex and begin resetting the
      GPU, we must abort the current operation (usually within the wait) and
      climb sufficiently far back up the call chain to drop the mutex. In his
      implementation, Owain has a loop within the ioctl handler to detect the
      hang and then sleep until the error handler has run. I've chosen to
      return to userspace and report an EAGAIN which should trigger the
      userspace ioctl handler to repeat the call (simply because it felt less
      invasive...). Before hitting a wedged GPU, we then wait upon completion
      of the error handler.
      Reported-by: NOwain G. Ainsworth <zerooa@googlemail.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      30dbf0c0
  5. 21 9月, 2010 1 次提交
  6. 15 9月, 2010 1 次提交
  7. 08 9月, 2010 1 次提交
  8. 10 8月, 2010 1 次提交
  9. 02 8月, 2010 1 次提交
  10. 11 5月, 2010 1 次提交
  11. 19 4月, 2010 1 次提交
    • D
      drm/i915: fix tiling limits for i915 class hw v2 · c36a2a6d
      Daniel Vetter 提交于
      Current code is definitely crap: Largest pitch allowed spills into
      the TILING_Y bit of the fence registers ... :(
      
      I've rewritten the limits check under the assumption that 3rd gen hw
      has a 3d pitch limit of 8kb (like 2nd gen). This is supported by an
      otherwise totally misleading XXX comment.
      
      This bug mostly resulted in tiling-corrupted pixmaps because the kernel
      allowed too wide buffers to be tiled. Bug brought to the light by the
      xf86-video-intel 2.11 release because that unconditionally enabled
      tiling for pixmaps, relying on the kernel to check things. Tiling for
      the framebuffer was not affected because the ddx does some additional
      checks there ensure the buffer is within hw-limits.
      
      v2: Instead of computing the value that would be written into the
      hw fence registers and then checking the limits simply check whether
      the stride is above the 8kb limit. To better document the hw, add
      some WARN_ONs in i915_write_fence_reg like I've done for the i830
      case (using the right limits).
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=27449Tested-by: NAlexander Lam <lambchop468@gmail.com>
      Cc: stable@kernel.org
      Signed-off-by: NEric Anholt <eric@anholt.net>
      c36a2a6d
  12. 26 3月, 2010 1 次提交
  13. 19 3月, 2010 1 次提交
  14. 27 2月, 2010 1 次提交
  15. 23 2月, 2010 2 次提交
  16. 17 2月, 2010 1 次提交
  17. 11 2月, 2010 1 次提交
  18. 07 1月, 2010 1 次提交
  19. 08 12月, 2009 1 次提交
  20. 06 11月, 2009 1 次提交
  21. 08 9月, 2009 1 次提交
    • D
      drm/i915: get the bridge device once. · ec2a4c3f
      Dave Airlie 提交于
      The driver gets the bridge device in a number of places, upcoming
      vga arb code paths need the bridge device, however they need it in
      under a lock, and the pci lookup can allocate memory. So clean
      this code up before then and get the bridge once for the driver lifetime.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      ec2a4c3f
  22. 05 9月, 2009 1 次提交
  23. 11 7月, 2009 1 次提交
  24. 19 6月, 2009 2 次提交
  25. 10 6月, 2009 1 次提交
  26. 05 6月, 2009 1 次提交
  27. 27 5月, 2009 1 次提交
    • E
      drm/i915: Fix tiling pitch handling on 8xx. · e76a16de
      Eric Anholt 提交于
      The pitch field is an exponent on pre-965, so we were rejecting buffers
      on 8xx that we shouldn't have.  915 got lucky in that the largest legal
      value happened to match (8KB / 512 = 0x10), but 8xx has a smaller tile width.
      Additionally, we programmed that bad value into the register on 8xx, so the
      only pitch that would work correctly was 4096 (512-1023 pixels), while others
      would probably give bad rendering or hangs.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      
      fd.o bug #20473.
      e76a16de
  28. 18 4月, 2009 1 次提交
  29. 09 4月, 2009 1 次提交
    • E
      drm/i915: Allow tiling of objects with bit 17 swizzling by the CPU. · 280b713b
      Eric Anholt 提交于
      Save the bit 17 state of the pages when freeing the page list, and
      reswizzle them if necessary when rebinding the pages (in case they were
      swapped out).  Since we have userland with expectations that the swizzle
      enums let it pread and pwrite contents accurately, we can't expose a new
      swizzle enum for bit 17 (which it would have to GTT map to handle), so we
      handle it down in pread and pwrite by swizzling the copy when bit 17 of the
      page address is set.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      280b713b
  30. 02 4月, 2009 1 次提交
    • D
      drm/i915: fix up tiling/fence reg setup on i8xx class hw · 8d7773a3
      Daniel Vetter 提交于
      This fixes all the tiling problems with the 2d ddx. glxgears still doesn't work.
      Changes:
      
      - fix a copy&paste error in i8xx fence reg setup. It resulted in an at most a
        512KB offset of the fence reg window, so was only visible sometimes.
      - add tests for stride and object size constrains (also for i915 and 1965 class
        hw). Userspace seems to have an of-by-one bug there, which changes the fence
        size by at most 512KB due to an overflow.
      - because i8xx hw is quite old (and therefore not as well-tested) I left 2 debug
        WARN_ONs in the i8xx fence reg setup code to hopefully catch any further
        overflows in the bit-fields. Lastly there's one small change to make the
        alignment checks more consistent.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=20289Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      8d7773a3
  31. 28 3月, 2009 1 次提交
  32. 20 2月, 2009 1 次提交
  33. 08 2月, 2009 2 次提交
  34. 29 12月, 2008 1 次提交
  35. 04 12月, 2008 1 次提交
  36. 18 10月, 2008 2 次提交