[PATCH] drm/i915: Don't wait for vblank for sprite plane flips

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 28, 2013 at 07:45:31PM +0530, Vijay Purushothaman wrote:
> Since the sprite planes are using synchronized MMIO based flip, no need
> to wait for vblank. Removing this wait allows us to get a nice
> performance boost to both 3D & media workloads based on sprite (~60 fps
> from ~20 fps)

Nak. We can't unpin the buffer until the hardware has finished reading
from it.

The proper fix is to do the unpin asynchronously after the flip has
completed. That's one part of the bigger atomic pageflip story.

> 
> Signed-off-by: Vijay Purushothaman <vijay.a.purushothaman at intel.com>
> Signed-off-by: Gary Smith <gary.k.smith at intel.com>
> ---
>  drivers/gpu/drm/i915/intel_sprite.c |   14 +-------------
>  1 file changed, 1 insertion(+), 13 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
> index 1fa5612..1d14fc0 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -828,20 +828,8 @@ intel_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
>  		intel_disable_primary(crtc);
>  
>  	/* Unpin old obj after new one is active to avoid ugliness */
> -	if (old_obj) {
> -		/*
> -		 * It's fairly common to simply update the position of
> -		 * an existing object.  In that case, we don't need to
> -		 * wait for vblank to avoid ugliness, we only need to
> -		 * do the pin & ref bookkeeping.
> -		 */
> -		if (old_obj != obj) {
> -			mutex_unlock(&dev->struct_mutex);
> -			intel_wait_for_vblank(dev, to_intel_crtc(crtc)->pipe);
> -			mutex_lock(&dev->struct_mutex);
> -		}
> +	if (old_obj)
>  		intel_unpin_fb_obj(old_obj);
> -	}
>  
>  out_unlock:
>  	mutex_unlock(&dev->struct_mutex);
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrj?l?
Intel OTC


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux