Imported Debian patch 2:1.15.1-0ubuntu2.6
[deb_xorg-server.git] / debian / patches / xfree86-no-xv-for-gpuscreens.patch
diff --git a/debian/patches/xfree86-no-xv-for-gpuscreens.patch b/debian/patches/xfree86-no-xv-for-gpuscreens.patch
new file mode 100644 (file)
index 0000000..cfb0f08
--- /dev/null
@@ -0,0 +1,36 @@
+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)))