diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c index 92d0f6d..a33366a 100644 --- a/hw/xfree86/common/xf86xv.c +++ b/hw/xfree86/common/xf86xv.c @@ -234,7 +234,7 @@ xf86XVScreenInit(ScreenPtr pScreen, XF86VideoAdaptorPtr * adaptors, int num) XF86XVScreenPtr ScreenPriv; XvScreenPtr pxvs; - if (num <= 0 || noXvExtension) + if (num <= 0 || noXvExtension || pScreen->isGPU) return FALSE; if (Success != XvScreenInit(pScreen)) diff --git a/hw/xfree86/common/xf86xvmc.c b/hw/xfree86/common/xf86xvmc.c index 78a32bf..a0f6fcd 100644 --- a/hw/xfree86/common/xf86xvmc.c +++ b/hw/xfree86/common/xf86xvmc.c @@ -148,11 +148,15 @@ xf86XvMCScreenInit(ScreenPtr pScreen, { XvMCAdaptorPtr pAdapt; xf86XvMCScreenPtr pScreenPriv; - XvScreenPtr pxvs = (XvScreenPtr) dixLookupPrivate(&pScreen->devPrivates, - XF86XvScreenKey); + XvScreenPtr pxvs; int i, j; - if (noXvExtension) + if (noXvExtension || pScreen->isGPU || !XF86XvScreenKey) + return FALSE; + + pxvs = (XvScreenPtr) dixLookupPrivate(&pScreen->devPrivates, + XF86XvScreenKey); + if (!pxvs) return FALSE; if (!(pAdapt = malloc(sizeof(XvMCAdaptorRec) * num_adaptors)))