View Full Version : nvidia linux driver 4191 and glXMakeCurrent: problems...
dear all,
after upgrading to v.4191 my self-developed C++ framework with a GL widget stopped functioning on my GeForce2 GTS + RH8.0 (kernel 2.4.18-18.8.0).
the problem is in the call to glXMakeCurrent()... it returns false but I do not have any idea of what the reason is.
the GLX context is created and made current in the ConfigureNotify event.
video depth is 24
the GL visual is #38 which according to glxinfo:
visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
----------------------------------------------------------------------
0x21 24 tc 0 32 0 r y . 8 8 8 0 0 24 8 16 16 16 16 0 0 None
...
0x26 24 tc 0 32 0 r y . 8 8 8 0 0 0 0 16 16 16 16 0 0 None
...
the code behaved well with previous release and *is* ok with std XFree86 4.2.0 (Mesa based) libGl.
any clue ?
is there any magix environment var to
Did you try using the gluErrorString(glGetError())
(or since I've probably messed up a name or two, you get the picture)?
It generally gives you a pretty good idea as to what is going wrong.
I know my code generally looks like:
err=glXMakeContextCurrent(display,writeDrawable,re adDrawable), glXContext );
if(!err){
cerr<<"Error making window target of writes and pbuffer target of reads\n";
}else{
ONDEBUG(cerr<<"glXMakeContextCurrent should have been successful\n";)
}
Have you played around with glPixelZoom by any chance?
I'm finding it to be incredibly slow under 4192
nutball
01-08-03, 10:26 AM
The latest drivers (41.91) fully implement GLX version 1.3. The previous drivers only implemented GLX 1.2 (plus some bits of 1.3).
In 1.3 glXMakeCurrent is deprecated I think, and replaced by glXMakeContextCurrent. The GLX documentation gives the details.
This might be your problem.
In any case glXMakeContextCurrent is more flexible since it allows you to copy/blit from one drawable to another (i.e. from a pbuffer to a window) without making a trip through main memory.
You want to use it =)
Originally posted by grmoc
In any case glXMakeContextCurrent is more flexible since it allows you to copy/blit from one drawable to another (i.e. from a pbuffer to a window) without making a trip through main memory.
You want to use it =)
AHHHHH it seems a good suggestion... I'll try it.
although I do not think that glXMakeCurrent should be kept broken... backward compatibility is a must...
regards
If it makes you feel better,
the 3123 drivers have glXMakeContextCurrent broken. <shrug> Broken either way =)
Where is that "GLX documentation" that was mentioned before?
The openGL reference books have it, and there are manpages installed for it if you have RH9.
Otherwise, a simple web search should do.
Yep, got it at the opengl.org site:
http://www.opengl.org/developers/documentation/glx.html
Also GLU docs there.
I guess I was looking for it being included in the NVIDIA package.
Thanks
glXMakeContextCurrent() and glXMakeCurrent()
* BOTH * are broken for me in driver 4363 and 4365
Originally posted by grmoc
In any case glXMakeContextCurrent is more flexible since it allows you to copy/blit from one drawable to another (i.e. from a pbuffer to a window) without making a trip through main memory.
You want to use it =)
Does somebody know if i should be able to blend from one drawable to another. It's not totally clear for me from neither gl specs nor from the opengl programming guide - it seems glCopyPixels should blend with other drawable but it doesn't. Full description of the problem with code fragment is here:
http://www.nvnews.net/vbulletin/showthread.php?s=&threadid=13681
so far my workaround consists in blitting from the read drawable to texture and then blending texture with the draw drawable, but I find this non-cosher hack :)
vBulletin® v3.7.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.