drm/i915: prevent tiling changes on framebuffer backing storage
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 9 Oct 2013 19:23:52 +0000 (21:23 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 16 Oct 2013 20:04:52 +0000 (22:04 +0200)
commit80075d492f8773209e26d11d6bb13ba624ef95a4
treed3f3c4ae6a96849e790bb0bcead6531b28f02e24
parentdd4916c55aa4bacb26c343d0f0faa64e7aaef918
drm/i915: prevent tiling changes on framebuffer backing storage

Assuming that all framebuffer related metadata is invariant simplifies
our userspace input data checking. And current userspace always first
updates the tiling of an object before creating a framebuffer with it.

This allows us to upconvert a check in pin_and_fence to a WARN.

In the future it should also be helpful to know which buffer objects
are potential scanout targets for e.g. frontbuffer rendering tracking
and similar things.

Note that SNA shipped for one prerelease with code which will be
broken through this patch. But users shouldn't notice since it's
purely an optimization and will transparently fall back to allocating
a new fb. i-g-t also had offending code (now fixed), but we don't
really care about breaking the test-suite.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Grumpily-reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem_tiling.c
drivers/gpu/drm/i915/intel_display.c