drm/i915: Require fence only for FBC capable planes
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 21 Feb 2018 16:02:33 +0000 (18:02 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 22 Feb 2018 16:11:05 +0000 (18:11 +0200)
As only a subset of primary planes are FBC capable there's no need
to waste fences on all of them. So let's skip the fence if the plane
isn't even fbc capable.

In the future we might extend this to skip the fence even for FBC
capable planes if the crtc and/or plane state isn't suitable
for FBC.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180221160235.11134-5-ville.syrjala@linux.intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/intel_display.c

index 9ca8ba2c894c95aea4ea20528f25f10dfbb08864..dd9e280365f9b9489d45451a7289ae6c98d92851 100644 (file)
@@ -2072,7 +2072,7 @@ static bool intel_plane_uses_fence(const struct intel_plane_state *plane_state)
        struct intel_plane *plane = to_intel_plane(plane_state->base.plane);
        struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
 
-       return INTEL_GEN(dev_priv) < 4 || plane->id == PLANE_PRIMARY;
+       return INTEL_GEN(dev_priv) < 4 || plane->has_fbc;
 }
 
 struct i915_vma *