1. 17 Feb, 2021 1 commit
    • Ville Syrjälä's avatar
      drm/i915: Disallow plane x+w>stride on ilk+ with X-tiling · 80cf9a88
      Ville Syrjälä authored
      ilk+ planes get notably unhappy when the plane x+w exceeds
      the stride. This wasn't a problem previously because we
      always aligned SURF to the closest tile boundary so the
      x offset never got particularly large. But now with async
      flips we have to align to 256KiB instead and thus this
      becomes a real issue.
      
      On ilk/snb/ivb it looks like the accesses just wrap
      early to the next tile row when scanout goes past the
      SURF+n*stride boundary, hsw/bdw suffer more heavily and
      start to underrun constantly. i965/g4x appear to be immune.
      vlv/chv I've not yet checked.
      
      Let's borrow another trick from the skl+ code and search
      backwards for a better SURF offset in the hopes of getting the
      x offset below the limit. IIRC when I ran into a similar issue
      on skl years ago it was causing the hardware to fall over
      pretty hard as well.
      
      And let's be consistent and include i965/g4x in the check
      as well, just in case I just got super lucky somehow when
      I wasn't able to reproduce the issue. Not that it really
      matters since we still use 4k SURF alignment for i965/g4x
      anyway.
      
      Fixes: 6ede6b06 ("drm/i915: Implement async flips for vlv/chv")
      Fixes: 4bb18054 ("drm/i915: Implement async flip for ilk/snb")
      Fixes: 2a636e24 ("drm/i915: Implement async flip for ivb/hsw")
      Fixes: cda195f1 ("drm/i915: Implement async flips for bdw")
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210209021918.16234-1-ville.syrjala@linux.intel.comReviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      (cherry picked from commit 59fb8218)
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      [Rodrigo also exported some functions from intel_display.c during backport]
      80cf9a88
  2. 08 Feb, 2021 7 commits
  3. 04 Feb, 2021 25 commits
  4. 02 Feb, 2021 7 commits