1. 16 6月, 2015 2 次提交
    • V
      drm/i915: Align DSPSURF to 128k on VLV/CHV · 985b8bb4
      Ville Syrjälä 提交于
      VLV/CHV have problems with 4k aligned linear scanout buffers. The VLV
      docs got updated at some point to say that we need to align them to
      128k, just like we do on gen4.
      
      So far I've seen the problem manifest when the stride is an odd multiple
      of 512 bytes, and the surface address meets the following pattern
      '(addr & 0xf000) == 0x1000' (also == 0x2000 is problematic on VLV). The
      result is a starcase effect (so some pages get dropped maybe?), with a
      few pages here and there clearly getting scannout out at the wrong position.
      
      I've not actually been able to reproduce this problem on gen4, so it's
      not clear of the issue is any way related to the 128k restrictions
      supposedly inherited from gen4. But let's hope the 128k alignment is
      sufficient to hide it all.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NClint Taylor <Clinton.A.Taylor@intel.com>
      Reviewed-by: NArun R Murthy <arun.r.murthy@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      985b8bb4
    • V
      drm/i915: Actually respect DSPSURF alignment restrictions · 4e9a86b6
      Ville Syrjälä 提交于
      Currently intel_gen4_compute_page_offset() simply picks the closest
      page boundary below the linear offset. That however may not be suitably
      aligned to satisfy any hardware specific restrictions. So let's make
      sure the page boundary we choose is properly aligned.
      
      Also to play it a bit safer lets split the remaining linear offset into
      x and y values instead of just x. This should make no difference for
      most platforms since we convert the x and y offsets back into a linear
      offset before feeding them to the hardware. HSW+ are different however
      and use x and y offsets even with linear buffers, so they might have
      trouble if either the x or y get too big.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      4e9a86b6
  2. 15 6月, 2015 26 次提交
  3. 12 6月, 2015 12 次提交