Re: [XFree86] radeon 9500 Xvideo crash w/SwCursor, 4.2.99.901

2003-02-18 Thread Charles R. Anderson
On Tue, Feb 18, 2003 at 01:03:21PM +0100, Michel Dänzer wrote:
michel Great, thanks for testing. Have you also tried a DRI client? Even
michel glxinfo crashed the server for someone else.

glxinfo doesn't crash the server, however, I don't believe DRI is
supported on R300 chipsets yet:

Xlib:  extension XFree86-DRI missing on display :0.0.

so I'm stuck at 2D for the time being.

-- 
Charles R. Anderson [EMAIL PROTECTED] / http://angus.ind.wpi.edu/~cra/
PGP Key ID: 49BB5886
Fingerprint: EBA3 A106 7C93 FA07 8E15  3AC2 C367 A0F9 49BB 5886

___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86



[XFree86] radeon 9500 Xvideo crash w/SwCursor, 4.2.99.901

2003-02-17 Thread Charles R. Anderson
Hardware is Built-by-ATI Radeon 9500 128MB.  Server is
XFree86-4.2.99.901-20030213.1debug, which I built by enabling
DebuggableBuild in mharris' Rawhide package.  Server SEGV's when
starting any application which uses Xvideo (tested mplayer and xine) AND
the server is configured to use SwCursor.  Xv works fine with HwCursor
(I had cursor artifacts in that mode before 20030213.1, which fixes
that).  I tested in both dual- and single-head mode, with no change.

01:00.0 VGA compatible controller: ATI Technologies Inc: Unknown device 4144 (prog-if 
00 [VGA])
Subsystem: ATI Technologies Inc: Unknown device 0002
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ 
SERR+ FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- TAbort- 
MAbort- SERR- PERR-
Latency: 64 (2000ns min), cache line size 10
Interrupt: pin A routed to IRQ 11
Region 0: Memory at f000 (32-bit, prefetchable) [size=128M]
Region 1: I/O ports at ec00 [size=256]
Region 2: Memory at ff8f (32-bit, non-prefetchable) [size=64K]
Expansion ROM at 8000 [disabled] [size=128K]
Capabilities: available only to root

01:00.1 Display controller: ATI Technologies Inc: Unknown device 4164
Subsystem: ATI Technologies Inc: Unknown device 0003
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ 
SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- TAbort- 
MAbort- SERR- PERR-
Latency: 64 (2000ns min), cache line size 10
Region 0: Memory at e800 (32-bit, prefetchable) [size=128M]
Region 1: Memory at ff8e (32-bit, non-prefetchable) [size=64K]
Capabilities: available only to root

Here is a backtrace with gdb-xfree86 attached to the process when it
segfaulted. I had some trouble with gdb-xfree86 segfaulting if I
attempted to load all modules, so for this I just loaded radeon_drv.o
and libextmod.a.  I believe #0 is in libramdac.a, but gdb segfaults when
trying to load it.  I'm using gdb-5.1.1-2.0xfree rebuilt for the Rawhide
distribution I am running.

(gdb) bt
#0  0x08765a41 in ?? ()
#1  0x0871e409 in RADEONPutImage (pScrn=0x8554fa0, src_x=0, src_y=0,
drw_x=624, drw_y=468, src_w=352, src_h=240, drw_w=352, drw_h=264,
id=842094169, buf=0x40017000 '\020' repeats 200 times..., width=352,
height=240, Sync=0, clipBoxes=0xb190, data=0x87fe508)
at radeon_video.c:1286
#2  0x080bdb1b in xf86XVPutImage (client=0x88cc0e0, pDraw=0x88cd6c8,
pPort=0x88582a8, pGC=0x88cdb90, src_x=0, src_y=0, src_w=352, src_h=240,
drw_x=0, drw_y=0, drw_w=352, drw_h=264, format=0x88580a0,
data=0x40017000 '\020' repeats 200 times..., sync=0, width=352,
height=240) at xf86xv.c:1715
#3  0x0830c9dc in eviDDXReset ()
#4  0x08313f3c in WriteSwappedPortNotifyEvent ()
#5  0x083118af in WriteSwappedPortNotifyEvent ()
#6  0x080cb66a in Dispatch () at dispatch.c:450
#7  0x080e163f in main (argc=1, argv=0xb804, envp=0xb80c) at main.c:435
#8  0x420154a0 in __libc_start_main () from /lib/tls/libc.so.6


My XF86Config and XFree86.0.log is attached.

-- 
Charles R. Anderson [EMAIL PROTECTED] / http://angus.ind.wpi.edu/~cra/
PGP Key ID: 49BB5886
Fingerprint: EBA3 A106 7C93 FA07 8E15  3AC2 C367 A0F9 49BB 5886


This is a pre-release version of XFree86, and is not supported in any
way.  Bugs may be reported to [EMAIL PROTECTED] and patches submitted
to [EMAIL PROTECTED]  Before reporting bugs in pre-release versions,
please check the latest version in the XFree86 CVS repository
(http://www.XFree86.Org/cvs).

XFree86 Version 4.2.99.901 (4.3.0 RC 1) (Custom Build: 4.2.99.901-20030213.1debug)
Release Date: 12 February 2003
X Protocol Version 11, Revision 0, Release 6.6
Build Operating System: Linux 2.4.20-2.48 i686 [ELF] 
Build Date: 17 February 2003
Build Host: dustpuppy.WPI.EDU
 
Before reporting problems, check http://www.XFree86.Org/
to make sure that you have the latest version.
Module Loader present
OS Kernel: Linux version 2.4.20-2.48 ([EMAIL PROTECTED]) (gcc version 
3.2.1 20030202 (Red Hat Linux 8.0 3.2.1-7)) #1 Thu Feb 13 11:52:55 EST 2003 
Markers: (--) probed, (**) from config file, (==) default setting,
 (++) from command line, (!!) notice, (II) informational,
 (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: /var/log/XFree86.0.log, Time: Mon Feb 17 13:34:42 2003
(==) Using config file: /etc/X11/XF86Config
(==) ServerLayout ATI-Dual-Head
(**) |--Screen Dell 2000FP on Radeon jack 0 (0)
(**) |   |--Monitor Dell 2000FP
(**) |   |--Device Radeon jack 0
(**) |--Screen Sun 21 on Radeon jack 1 (1)
(**) |   |--Monitor Sun 21
(**) |   |--Device Radeon jack 1
(**) |--Input Device Mouse0
(**) |--Input Device Keyboard0
(**) Option XkbRules xfree86
(**) XKB: rules: xfree86
(**) Option XkbModel pc105
(**) XKB: model: pc105
(**) Option XkbLayout us
(**) XKB: layout: us
(==) 

Re: [XFree86] radeon 9500 Xvideo crash w/SwCursor, 4.2.99.901

2003-02-17 Thread Michel Dänzer
On Mon, 2003-02-17 at 19:45, Charles R. Anderson wrote:

 Server SEGV's when starting any application which uses Xvideo (tested mplayer 
 and xine) AND the server is configured to use SwCursor.  Xv works fine with 
 HwCursor (I had cursor artifacts in that mode before 20030213.1, which fixes
 that).

Hopefully, one of the patches to eliminate the artifacts with HW cursor
will make it into 4.3.0.


 Here is a backtrace with gdb-xfree86 attached to the process when it
 segfaulted. I had some trouble with gdb-xfree86 segfaulting if I
 attempted to load all modules, so for this I just loaded radeon_drv.o
 and libextmod.a.  I believe #0 is in libramdac.a, 

Indeed, I suspect it's the xf86ForceHWCursor() call.

Can you try this patch? It didn't help for the same problem with the DRI
for someone else, but that was without the radeon_driver.c hunk; let's
hope that makes a difference.


-- 
Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
XFree86 and DRI project member   /  CS student, Free Software enthusiast

Index: programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c
===
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c,v
retrieving revision 1.30
diff -p -u -r1.30 radeon_dri.c
--- programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c	2003/02/08 23:27:36	1.30
+++ programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c	2003/02/16 22:46:20
@@ -1829,7 +1829,9 @@ static void RADEONDRITransitionTo3d(Scre
 RADEONEnablePageFlip(pScreen);
 
 info-have3DWindows = 1;
-xf86ForceHWCursor (pScreen, TRUE);
+
+if (info-cursor_start)
+	xf86ForceHWCursor (pScreen, TRUE);
 }
 
 static void RADEONDRITransitionTo2d(ScreenPtr pScreen)
@@ -1852,5 +1854,7 @@ static void RADEONDRITransitionTo2d(Scre
 xf86FreeOffscreenArea(info-depthTexArea); 
 
 info-have3DWindows = 0;
-xf86ForceHWCursor (pScreen, FALSE);
+
+if (info-cursor_start)
+	xf86ForceHWCursor (pScreen, FALSE);
 }
Index: programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c
===
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c,v
retrieving revision 1.23
diff -p -u -r1.23 radeon_video.c
--- programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c	2003/01/29 18:06:07	1.23
+++ programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c	2003/02/16 22:46:20
@@ -680,7 +680,8 @@ RADEONStopVideo(ScrnInfoPtr pScrn, point
  if(pPriv-videoStatus  CLIENT_VIDEO_ON) {
 	RADEONWaitForFifo(pScrn, 2);
 	OUTREG(RADEON_OV0_SCALE_CNTL, 0);
-	xf86ForceHWCursor (pScrn-pScreen, FALSE);
+	if (info-cursor_start)
+	xf86ForceHWCursor (pScrn-pScreen, FALSE);
  }
  if(info-videoLinear) {
 	xf86FreeOffscreenLinear(info-videoLinear);
@@ -1282,7 +1283,7 @@ RADEONPutImage(
 	   REGION_RECTS(clipBoxes));
 }
 
-if (!(pPriv-videoStatus  CLIENT_VIDEO_ON))
+if (info-cursor_start  !(pPriv-videoStatus  CLIENT_VIDEO_ON))
 	xf86ForceHWCursor (pScrn-pScreen, TRUE);
 
 RADEONDisplayVideo(pScrn, id, offset, offset, width, height, dstPitch,
@@ -1349,7 +1350,7 @@ RADEONVideoTimerCallback(ScrnInfoPtr pSc
 	if(pPriv-offTime  now) {
 		unsigned char *RADEONMMIO = info-MMIO;
 		OUTREG(RADEON_OV0_SCALE_CNTL, 0);
-		if (pPriv-videoStatus  CLIENT_VIDEO_ON)
+		if (info-cursor_start  pPriv-videoStatus  CLIENT_VIDEO_ON)
 		xf86ForceHWCursor (pScrn-pScreen, FALSE);
 		pPriv-videoStatus = FREE_TIMER;
 		pPriv-freeTime = now + FREE_DELAY;
@@ -1360,7 +1361,7 @@ RADEONVideoTimerCallback(ScrnInfoPtr pSc
 		   xf86FreeOffscreenLinear(info-videoLinear);
 		   info-videoLinear = NULL;
 		}
-		if (pPriv-videoStatus  CLIENT_VIDEO_ON)
+		if (info-cursor_start  pPriv-videoStatus  CLIENT_VIDEO_ON)
 		xf86ForceHWCursor (pScrn-pScreen, FALSE);
 		pPriv-videoStatus = 0;
 		info-VideoTimerCallback = NULL;
@@ -1543,7 +1544,8 @@ RADEONDisplaySurface(
 if (portPriv-videoStatus  CLIENT_VIDEO_ON) {
 	REGION_EMPTY(pScrn-pScreen, portPriv-clip);   
 	UpdateCurrentTime();
-	xf86ForceHWCursor (pScrn-pScreen, FALSE);
+	if (info-cursor_start)
+	xf86ForceHWCursor (pScrn-pScreen, FALSE);
 	portPriv-videoStatus = FREE_TIMER;
 	portPriv-freeTime = currentTime.milliseconds + FREE_DELAY;
 	info-VideoTimerCallback = RADEONVideoTimerCallback;
Index: programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
===
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c,v
retrieving revision 1.87
diff -p -u -r1.87 radeon_driver.c
--- programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c	2003/02/13 03:12:25	1.87
+++ programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c	2003/02/17 20:43:43
@@ -4006,6 +4412,7 @@ Bool RADEONScreenInit(int scrnIndex, Scr
 	xf86DrvMsg(scrnIndex, X_INFO, Using software cursor\n);
 	}
 } else {
+	info-cursor_start = 0;
 	xf86DrvMsg(scrnIndex, X_INFO, Using software cursor\n);
 }
 



Re: [XFree86] radeon 9500 Xvideo crash w/SwCursor, 4.2.99.901

2003-02-17 Thread Charles R. Anderson
On Mon, Feb 17, 2003 at 09:52:53PM +0100, Michel Dänzer wrote:
michel Indeed, I suspect it's the xf86ForceHWCursor() call.
michel Can you try this patch? It didn't help for the same problem with the DRI
michel for someone else, but that was without the radeon_driver.c hunk; let's
michel hope that makes a difference.

Thanks!

It does indeed eliminate the crash.  However, now I notice some (very
minor) weirdness with Xv...namely, a black block is left under the
SwCursor when switching from a window to fullscreen mode in mplayer...
The black block remains there while the video plays underneath and
around it.

HwCursor, once again, has no issues whatsoever.

-- 
Charles R. Anderson [EMAIL PROTECTED] / http://angus.ind.wpi.edu/~cra/
PGP Key ID: 49BB5886
Fingerprint: EBA3 A106 7C93 FA07 8E15  3AC2 C367 A0F9 49BB 5886

___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86