This patch fixes a bug that causes problems when non-mach64 screens are present. ATIMach64XVInitialiseAdaptor gets called by any driver that calls xf86XVListGenericAdaptors, and it happily does this:
Breakpoint 1, ATIMach64XVInitialiseAdaptor (pScreenInfo=0x81f2b0, pppAdaptor=0x7fff75dcdea0) at atimach64xv.c:1351 1351 ScreenPtr pScreen = screenInfo.screens[pScreenInfo->scrnIndex]; (gdb) n 1352 ATIPtr pATI = ATIPTR(pScreenInfo); (gdb) 1353 XF86VideoAdaptorPtr *ppAdaptor = NULL; (gdb) p pScreenInfo->driverName $1 = 0x2afb386547b8 "nvidia" (gdb) p pScreenInfo->driverPrivate $2 = (pointer) 0x820af0 (gdb) p pATI $3 = (ATIPtr) 0x820af0 (gdb) bt #0 ATIMach64XVInitialiseAdaptor (pScreenInfo=0x81f2b0, pppAdaptor=0x7fff75dcdea0) at atimach64xv.c:1353 #1 0x00000000004995f4 in xf86XVListGenericAdaptors () #2 0x00002afb384be128 in ?? () from /usr/lib64/xorg/modules//drivers/nvidia_drv.so #3 0x00002afb3847fa42 in ?? () from /usr/lib64/xorg/modules//drivers/nvidia_drv.so #4 0x00000000004390b8 in AddScreen () #5 0x00000000004684f6 in InitOutput () #6 0x0000000000439865 in main () As you can imagine, this doesn't always work out so well. -- Aaron
From 09da76bae4d9d9aed048975b7123a7d539d96c61 Mon Sep 17 00:00:00 2001
From: Aaron Plattner <[EMAIL PROTECTED]>
Date: Mon, 8 Sep 2008 11:59:06 -0700
Subject: [PATCH] Make sure the screen is a mach64 screen before doing anything
in ATIMach64XVInitialiseAdaptor.
---
src/atimach64xv.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/src/atimach64xv.c b/src/atimach64xv.c
index ef17861..1b38d71 100644
--- a/src/atimach64xv.c
+++ b/src/atimach64xv.c
@@ -31,6 +31,7 @@
#include "atimach64accel.h"
#include "atimach64io.h"
#include "atixv.h"
+#include "atimach64version.h"
#include <X11/extensions/Xv.h>
#include "fourcc.h"
@@ -1358,6 +1359,9 @@ ATIMach64XVInitialiseAdaptor
XF86OffscreenImagePtr surf0 = &(ATIMach64Surface[0]);
XF86OffscreenImagePtr surf1 = &(ATIMach64Surface[1]);
+ if (xf86NameCmp(pScreenInfo->driverName, MACH64_DRIVER_NAME) != 0)
+ return 0;
+
if (pppAdaptor)
*pppAdaptor = NULL;
--
1.5.2.4
pgps0YLgPPxKw.pgp
Description: PGP signature
_______________________________________________ xorg mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/xorg
