[Intel-gfx] [PATCH v5 06/10] drm/i915: Implement LRI based FBC tracking
Chris Wilson
chris at chris-wilson.co.uk
Thu Nov 28 12:29:03 CET 2013
On Wed, Nov 27, 2013 at 05:22:55PM +0200, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> As per the SNB and HSW PM guides, we should enable FBC render/blitter
> tracking only during batches targetting the front buffer.
>
> On SNB we must also update the FBC render tracking address whenever it
> changes. And since the register in question is stored in the context,
> we need to make sure we reload it with correct data after context
> switches.
>
> On IVB/HSW we use the render nuke mechanism, so no render tracking
> address updates are needed. Hoever on the blitter side we need to
> enable the blitter tracking like on SNB, and in addition we need
> to issue the cache clean messages, which we already did.
>
> v2: Introduce intel_fb_obj_has_fbc()
> Fix crtc locking around crtc->fb access
> Drop a hunk that was included by accident in v1
> Set fbc_address_dirty=false not true after emitting the LRI
> v3: Now that fbc hangs on to the fb intel_fb_obj_has_fbc() doesn't
> need to upset lockdep anymore
> v4: Use |= instead of = to update fbc_address_dirty
> v5: |= for fbc_dirty too, kill fbc_obj variable, pack the
> intel_ringbuffer dirty bits using bitfields, skip ILK_FBC_RT_BASE
> write on SNB+, kill sandybridge_blit_fbc_update(), reorganize
> code to make future ILK FBC RT LRI support easier
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
I'm content with the patch itself. I'd like to know what impact it has,
but I can live with my belief that it has to better than what we have
right now.
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list