Re: [XFree86] radeon 9500 Xvideo crash w/SwCursor, 4.2.99.901
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
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
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
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