[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