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