[Intel-gfx] [PATCH] uxa/glamor: Fallback to new glamor pixmap if failed to create textured pixmap.

Chris Wilson chris at chris-wilson.co.uk
Fri Dec 16 10:21:24 CET 2011


On Fri, 16 Dec 2011 15:39:55 +0800, zhigang.gong at linux.intel.com wrote:
> +fallback_glamor:
> +	/* Create textured pixmap failed means glamor failed to
> +	 * create a texture from current BO for some reasons. We turn
> +	 * to create a new glamor pixmap and clean up current one.
> +	 * One thing need to be noted, this new pixmap doesn't
> +	 * has a priv and bo attached to it. It's glamor's responsbility
> +	 * to take care it.
> +	 */
This then fails intel_uxa_is_offscreen() and we can no longer fallback
to swrast correctly as uxa_prepare_access() becomes a no-op.

> +	if (usage & INTEL_CREATE_PIXMAP_DRI2) {
> +		xf86DrvMsg(scrn->scrnIndex, X_WARNING,
> +			   "Failed to create textured DRI2 pixmap.");
> +		return pixmap;
At which point we really do need a better means for integrating glamor
and UXA ops...

> +	}
> +	new_pixmap = intel_glamor_create_pixmap(screen, w, h,
> +						depth, usage);
>  	dri_bo_unreference(priv->bo);
>  fallback_priv:
>  	free(priv);
>  fallback_pixmap:
>  	fbDestroyPixmap(pixmap);
> -	return fbCreatePixmap(screen, w, h, depth, usage);
> +	if (new_pixmap)
> +		return new_pixmap;
> +	else
> +		return fbCreatePixmap(screen, w, h, depth, usage);
>  }

Otherwise, it does look to be a step in the right direction.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list