$ glxinfo
name of display: localhost:10.0
Xlib: connection to ":0.0" refused by server
Xlib: Client is not authorized to connect to Server
display: localhost:10 screen: 0
direct rendering: No
If the display is different from :0.0 (:1.0, remote display, whatever)
then GLX initialization tries to connecxt to :0.0 and fails. Sometimes
this takes time, depending on user configuration. For example, on my
home computer I have to wait quite a long for this :0.0 connect timeout
for some reason when running GLX things on :1.0. I have seen this
behaviour several times and today I decided to find out what's wrong.
If this si the wrong list and there is a better list for GLX library
problems, please direct me there.
Below is an excerpt from ltrace -S glxinfo to find out the call trace.
It basically shows that glxinfo calls glXMakeCurrent with correct
display struct but inside glXMakeCurrent a connection to :0.0 is made.
A little digging in the code shows that glXMakeCurrent saves old
context:
oldGC = __glXGetCurrentContext();
__glXGetCurrentContext() finds no previous context and uses dummyContext
instead. Somehow dummyContext is used without check later and it seems
that this results in spurious connect to default display :0.0. I have
not determined where the exact call is since I don't have time to
recompile it with debug info currently.
This trace is from XFree 4.1.0-17 Debian package (because that's what
I'm running on the computer where ltrace works) but I tried it with
4.2.99.1 CVS on another computer (sparc, so no ltrace) and the result
was similar - it still connected to :0.0. Even more, it segfaulted
somewhere after that but my current binaries are without debug info and
I can't find out what exactly happened. Anyway, this GLX problem is
present both in 4.1 and 4.2 current.
17369 XCreateWindow(0x08053b00, 49, 0, 0, 100) = 0x03000002
17369 glXCreateContext(0x08053b00, 0x08055848, 0, 1, 1 <unfinished ...>
17369 malloc(1308 <unfinished ...>
17369 SYS_brk(0x08057000) = 0x08057000
17369 <... malloc resumed> ) = 0x08055d10
17369 malloc(262140 <unfinished ...>
17369 SYS_mmap(0xbffffb04, 262144, 0x40337dd0, 266240, 0x80000000) = 0x40392000
17369 <... malloc resumed> ) = 0x40392008
17369 <... glXCreateContext resumed> ) = 0x08055d10
17369 glXMakeCurrent(0x08053b00, 0x03000002, 0x08055d10, 1, 1 <unfinished ...>
17369 SYS_write(3, "\217\024 ", 232) = 232
17369 SYS_read(3, ???, 32) = -11
17369 SYS__newselect(4, 0xbffffaac, 0, 0, 0) = 1
17369 SYS_read(3, "\001", 32) = 32
17369 XOpenDisplay(":0.0" <unfinished ...>
17369 SYS_uname(0xbffff534) = 0
17369 SYS_socketcall(1, 0xbffff774, 0x401e8fdc, 0x401e69e8, 60) = 4
17369 SYS_uname(0xbffff574) = 0
17369 SYS_uname(0xbffff474) = 0
17369 SYS_socketcall(3, 0xbffff754, 0x401feac0, 19, 0xbffff7cc) = 0
17369 SYS_uname(0xbffff5b4) = 0
17369 SYS_fcntl64(4, 2, 1, 2, 4) = 0
17369 SYS_access(0x08054678, 4, 0x401e8fdc, 0x08054678, 0xbffff82e) = 0
17369 SYS_open("/home/mroos/.Xauthority", 0, 0666) = 5
17369 SYS_fstat64(5, 0xbffff58c, 0x40338a40, 0x4033c36c, 5) = 0
17369 SYS_mmap(0xbffff554, 0xbffff58c, 0x40337dd0, 0x080568d8, 4096) = 0x40016000
17369 SYS_read(5, "", 4096) = 304
17369 SYS_read(5, "", 4096) = 0
17369 SYS_close(5) = 0
17369 SYS_munmap(0x40016000, 4096) = 0
17369 SYS_brk(0x08058000) = 0x08058000
17369 SYS_writev(4, 0xbffff954, 1, 1, 4) = 12
17369 SYS_fcntl64(4, 3, 0, 3, 4) = 2
17369 SYS_fcntl64(4, 4, 2050, 4, 4) = 0
17369 SYS_read(4, ???, 8) = -11
17369 SYS__newselect(5, 0xbffff8cc, 0, 0, 0) = 1
17369 SYS_read(4, "", 8) = 8
17369 SYS_read(4, "Client is not authorized to conn"..., 48) = 48
17369 SYS_write(2, "Xlib: connection to ":0.0" refus"..., 52) = 52
17369 SYS_write(2, "Client is not authorized to conn"..., 45) = 45
17369 SYS_write(2, "\r\n", 2) = 2
17369 SYS_socketcall(13, 0xbffff8c4, 0x401e8fdc, 0x08056868, 0x08056820) = 0
17369 SYS_close(4) = 0
17369 <... XOpenDisplay resumed> ) = NULL
17369 malloc(2244) = 0x080562b8
17369 <... glXMakeCurrent resumed> ) = 1
--
Meelis Roos ([EMAIL PROTECTED])
_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert