drm/i915: Adjust obj tiling vs. fb modifier rules
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 11 Feb 2016 17:16:37 +0000 (19:16 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 11 Aug 2016 15:34:07 +0000 (18:34 +0300)
commitc2ff7370aee6ba750859d7008d05c68e873d7c7b
tree33303d7b4e3d27374c8225952b23759b1dbdb47e
parent72618ebfde9e3ff74e03eb6c0bc1fdb33d1d1fa0
drm/i915: Adjust obj tiling vs. fb modifier rules

Currently we require the object to be X tiled if the fb is X
tiled. The argument is supposedly FBC GTT tracking. But
actually that no longer holds water since FBC supports
Y tiling as well on SKL+.

A better rule IMO is to require that if there is a fence, the
fb modifier match the object tiling mode. But if the object is linear,
we can allow the fb modifier to be anything. The idea being that
if the user set the tiling mode on the object, presumably the intention
is to actually use the fence for CPU access. But if the tiling mode is
not set, the user has no intention of using a fence (and can't actually
since we disallow tiling mode changes when there are framebuffers
associated with the object).

On gen2/3 we must keep to the rule that the object and fb
must be either both linear or both X tiled. No mixing allowed
since the display engine itself will use the fence if it's present.

v2: Fix typos
v3: Rebase due to i915_gem_object_get_tiling() & co.

Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1470821001-25272-7-git-send-email-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c