diff mbox

[6/6] drm/i915: Add a FIXME about FBC vs. fence. 90/270 degree rotation

Message ID 20180221160235.11134-7-ville.syrjala@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ville Syrjala Feb. 21, 2018, 4:02 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Currently the FBC code doesn't handle the 90/270 degree rotated case
correctly. We would need the GTT tracking to monitor the fence on the
normal GTT view (the rotated view doesn't even have a fence). Not quite
sure how we should program the fence Y offset etc. in that case. For now
we'll end up disabling FBC with 90/270 degree rotation. Add a FIXME
to remind people about this fact.

v2: Reword the text (Chris)
    Move the FIXME to the fbc code

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_fbc.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Chris Wilson Feb. 21, 2018, 10:04 p.m. UTC | #1
Quoting Ville Syrjala (2018-02-21 16:02:35)
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Currently the FBC code doesn't handle the 90/270 degree rotated case
> correctly. We would need the GTT tracking to monitor the fence on the
> normal GTT view (the rotated view doesn't even have a fence). Not quite
> sure how we should program the fence Y offset etc. in that case. For now
> we'll end up disabling FBC with 90/270 degree rotation. Add a FIXME
> to remind people about this fact.

Oh my. plane_state would have to track both normal_vma and rotated_vma,
at least that is less complicated than having rotated_vma automagically
pin the normal_vma.

> v2: Reword the text (Chris)
>     Move the FIXME to the fbc code
> 
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index 97d088058d1d..ee0ca429a681 100644
--- a/drivers/gpu/drm/i915/intel_fbc.c
+++ b/drivers/gpu/drm/i915/intel_fbc.c
@@ -809,6 +809,12 @@  static bool intel_fbc_can_activate(struct intel_crtc *crtc)
 	 * Note that is possible for a tiled surface to be unmappable (and
 	 * so have no fence associated with it) due to aperture constaints
 	 * at the time of pinning.
+	 *
+	 * FIXME with 90/270 degree rotation we should use the fence on
+	 * the normal GTT view (the rotated view doesn't even have a
+	 * fence). Would need changes to the FBC fence Y offset as well.
+	 * For now this will effecively disable FBC with 90/270 degree
+	 * rotation.
 	 */
 	if (!(cache->flags & PLANE_HAS_FENCE)) {
 		fbc->no_fbc_reason = "framebuffer not tiled or fenced";