PDA

View Full Version : nvidia linux driver 4191 and glXMakeCurrent: problems...


kibun
01-04-03, 01:12 PM
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

grmoc
01-08-03, 10:20 AM
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.

grmoc
01-08-03, 10:28 AM
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 =)

kibun
01-08-03, 03:02 PM
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

grmoc
01-09-03, 12:08 AM
If it makes you feel better,
the 3123 drivers have glXMakeContextCurrent broken. <shrug> Broken either way =)

am2020
06-19-03, 08:18 PM
Where is that "GLX documentation" that was mentioned before?

grmoc
06-19-03, 08:32 PM
The openGL reference books have it, and there are manpages installed for it if you have RH9.

Otherwise, a simple web search should do.

am2020
06-19-03, 09:05 PM
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

am2020
06-20-03, 07:12 PM
glXMakeContextCurrent() and glXMakeCurrent()


* BOTH * are broken for me in driver 4363 and 4365

artm
06-22-03, 08:14 AM
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 :)