[Intel-gfx] [PATCH] drm/i915: Only scan for a potential fb is the object is pinned to the display

Chris Wilson chris at chris-wilson.co.uk
Fri Jan 10 21:46:54 CET 2014


On Fri, Jan 10, 2014 at 12:41:49PM -0800, Ben Widawsky wrote:
> On Fri, Jan 10, 2014 at 08:26:23PM +0000, Chris Wilson wrote:
> > Only objects pinned to the display engine can be an active framebuffer,
> > so we can refine the current check for any pinned object to be a
> > pinned-display object.
> > 
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > ---
> >  drivers/gpu/drm/i915/i915_gem_execbuffer.c | 4 +---
> >  1 file changed, 1 insertion(+), 3 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
> > index 8c11037eb2d2..04b0271d48ff 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
> > +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
> > @@ -949,9 +949,7 @@ i915_gem_execbuffer_move_to_active(struct list_head *vmas,
> >  		if (obj->base.write_domain) {
> >  			obj->dirty = 1;
> >  			obj->last_write_seqno = intel_ring_get_seqno(ring);
> > -			/* check for potential scanout */
> > -			if (i915_gem_obj_ggtt_bound(obj) &&
> > -			    i915_gem_obj_to_ggtt(obj)->pin_count)
> > +			if (obj->pin_display) /* check for potential scanout */
> >  				intel_mark_fb_busy(obj, ring);
> >  		}
> >  
> 
> This was an error during PPGTT development:
> commit d7f46fc4e7323887494db13f063a8e59861fefb0
> Author: Ben Widawsky <benjamin.widawsky at intel.com>
> Date:   Fri Dec 6 14:10:55 2013 -0800
> 
>     drm/i915: Make pin count per VMA

It's been discussed before (frontbuffer tracking) so I was surprised
that this patch wasn't already on the list.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list