1. 07 Jan, 2020 2 commits
    • Imre Deak's avatar
      drm/i915/tgl: Make sure a semiplanar UV plane is tile row size aligned · d156135e
      Imre Deak authored
      Currently the GGTT offset of a UV plane in a semiplanar YUV FB is tile
      size (4kB) aligned. I noticed, that enforcing only this alignment leads
      oddly to random memory corruptions on TGL while scanning out Y-tiled
      FBs. This issue can be easily reproduced with a UV plane offset that is
      not aligned to the plane's tile row size.
      
      Some experiments showed the correct alignment to be tile row size
      indeed. This also makes sense, since the de-tiling fence created for the
      object - with its own stride and so "left" and "right" edge - applies to
      all the planes in the FB, so each tile row of all planes should be tile
      row aligned.
      
      In fact BSpec requires this alignment since SKL. On SKL we may enforce
      this due to the AUX plane x,y coords check, but on ICL and TGL we don't.
      For now enforce this only on TGL; I can follow up with any necessary
      change for ICL after more tests.
      
      BSpec requires a stricter alignment for linear UV planes too (kind of a
      tile row alignment), but it's unclear whether that's really needed
      (couldn't be explained with the de-tiling fence as above) and enforcing
      that could break existing user space; so avoid that too for now until
      more tests.
      
      v2:
      - Clarify the commit log wrt. the address space the alignment applies to.
        (Chris)
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Acked-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarMika Kahola <mika.kahola@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20191231233756.18753-3-imre.deak@intel.com
      d156135e
    • Imre Deak's avatar
      drm/i915: Add support for non-power-of-2 FB plane alignment · 7361bdb2
      Imre Deak authored
      At least one framebuffer plane on TGL - the UV plane of YUV semiplanar
      FBs - requires a non-power-of-2 alignment, so add support for this. This
      new alignment restriction applies only to an offset within an FB, so the
      GEM buffer itself containing the FB must still be power-of-2 aligned.
      Add a check for this (in practice plane 0, since the plane 0 offset must
      be 0).
      
      v2:
      - Fix WARN check for alignment=0.
      v3:
      - Return error for alignment programming bugs. (Chris)
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20191231233756.18753-2-imre.deak@intel.com
      7361bdb2
  2. 06 Jan, 2020 8 commits
  3. 05 Jan, 2020 2 commits
  4. 04 Jan, 2020 3 commits
  5. 03 Jan, 2020 13 commits
  6. 02 Jan, 2020 3 commits
  7. 01 Jan, 2020 3 commits
  8. 31 Dec, 2019 3 commits
  9. 30 Dec, 2019 3 commits