Re: [XFree86] DRI weirdnesses for RADEON 9200

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



manu wrote:

Hi all,
before I open a bug for that I would like to sort out things a bit.
Here is the story : I installed a MDK 9.2, the agpgart module seems to be OK with my mobo (which has a nForce2 Ultra chipset), so I went on and try to make 3D accel work for my Radeon 9200. Whereas all logs were OK, glxgears locks up hard (only hard reset could get me out of it). So I asked on this list some help, and I have been advised to download latest DRI snapshot, what I did, installed it with no problems. But here is what I have now :
- glxgears crashes at startup here is the stacktrace (using the core dumped) :
#0 0x00000000 in ?? ()
#1 0x4033eece in GetDRIDrawable () from /usr/X11R6/lib/libGL.so.1.2
#2 0x4033fd57 in glXSwapBuffers () from /usr/X11R6/lib/libGL.so.1.2
#3 0x4004abdf in glXSwapBuffers () from /usr/X11R6/lib/libGL.so.1
#4 0x0804a546 in XOpenDisplay ()
#5 0x401ccc57 in __libc_start_main () from /lib/i686/libc.so.6
- xawtv does not start and gives me these errors :
This is xawtv-3.88, running on Linux/i686 (2.4.22-10mdk)
Loading required GL library /usr/X11R6/lib/libGL.so.1.2
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 144 (GLX)
Minor opcode of failed request: 5 (X_GLXMakeCurrent)
Serial number of failed request: 307
Current serial number in output stream: 307

Someone on the dri-devel list reported something similar. Based on your stacktrace, it looks like DRI is enabled on the display but not on the screen. The crash seems to be because psc->getDrawable is NULL in GetDRIDrawable. Do you have more than one screen on the display? The X log doesn't seem to indicate so. It doesn't seem right that psc->getDrawable should be NULL if DRI is enabled on a display and there's only one screen. I'm also not sure how you get from XOpenDisplay to glXSwapBuffers. Hmm...


So I ran glxinfo see below which told me that Direct Rendering is not enabled! This is crazy as you can check in the XFree log (file attached).
Hope someone can tell me more about this, be it to file this directly as a bug on bugzilla ;-)

I believe that you should file a bug against this, but also try the attached patch. The patch should prevent calling the NULL function pointer, but there may be other problems.


Index: lib/GL/glx/glxcmds.c
===================================================================
RCS file: /cvs/dri/xc/xc/lib/GL/glx/glxcmds.c,v
retrieving revision 1.65
diff -u -d -r1.65 glxcmds.c
--- lib/GL/glx/glxcmds.c	23 Oct 2003 23:21:23 -0000	1.65
+++ lib/GL/glx/glxcmds.c	31 Oct 2003 00:49:08 -0000
@@ -269,8 +269,8 @@
 
 	for ( i = 0 ; i < screen_count ; i++ ) {
 	    __DRIscreen * const psc = &priv->screenConfigs[i].driScreen;
-	    __DRIdrawable * const pdraw = (*psc->getDrawable)(dpy, drawable,
-							      psc->private);
+	    __DRIdrawable * const pdraw = (psc->private != NULL)
+	       ? (*psc->getDrawable)(dpy, drawable, psc->private) : NULL;
 
 	    if ( pdraw != NULL ) {
 		if ( scrn_num != NULL ) {

[Index of Archives]     [X Forum]     [Xorg]     [XFree86 Newbie]     [IETF Announce]     [Security]     [Font Config]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux Kernel]

  Powered by Linux