glXMakeCurrent() hangs on nVidia

I´ m fighting one problem for days now… after making the framebuffer context current, its impossible to make it non-current or make another context/drawable current. The application just hangs in the glXMakeCurrent() call. I get no error, no segfault… just nothing!

I´m using a GF6800GT, 61.11 drivers on Suse9.0.
The original rendering context was creating by a FXGLCanvas object of the FOX Toolkit library.

Edit: to be more precise:

  1. The hang occurs after the very first buffer-swap has been done. Before that I can switch the Contexts without problems.
  2. I use a KT400 chipset board

any hints are appreciated!

Are you destroying the old context? There could be some sort of bug that causes memory to be freed at the wrong time or something along those lines.

No, I do not. The very same code works without problems on Windows.

Does the code work with software rendering using Mesa? By that I mean using the out-of-the-box nv driver for XFree86 / X.org with indirect rendering. If that works, but the Nvidia driver doesn’t, it would certainly point to an Nvidia bug that should be reported to their dev rel. If it doesn’t work, then it could be due to some difference between the way things work in WGL vs. GLX. Can you post (or provide a link to) a small bit of code that shows the problem?

I have found some “solution” to my problem: disabling AGP in the nVidia driver. I suspect my KT400 mainboard (chipset?) to be the reason for all the odds, but I am not sure. I will do some experiments tomorrow and report my findings. At least I can now continue coding, yehaaw!

Also, you can post your problem to linux-bugs@nvidia.com

Please include a snipet of your code, and also include output from nvidia-bug-report.sh.

cd /tmp
/usr/bin/nvidia-bug-report.sh
and attach /tmp/nvidia-bug.report.log to your email.

Thanks,
–Ben

I would follow Ben’s instructions/advise and get that
in the list.

Also, how do you know that there is no problem when
you are switching between contexts before you have
done a buffer swap?
Why don’t you try and get an error number right
after that call, just in case something weird is
going on… Just a thought.

Also, how do you know that there is no problem when
you are switching between contexts before you have
done a buffer swap?
Why don’t you try and get an error number right
after that call, just in case something weird is
going on… Just a thought.
I know, because I tried out.
The application I am working on is heavily dependend on pbuffers for post processing effects, so I have about 20 makeCurrent()´s before the first buffer swap happens. I´d love to get any error number. But as I stated, the app hangs directly inside the first makeCurrent() that gets called after the very first buffer swap. No error occurs, no segfault - the app just stops running.

In meantime we exchanged the board (Asus A7V8X) with a nForce2 board (Asus A7N8X-X). The problem instantly went away. Before that we tried alot of other things like updating the kernel, using either the nVidia AGP driver or the kernel AGPGART module or updating the boards BIOS. Nothing helped.

Maybe I should note that not only my app was affected. The FOX Toolkit (platform independed GUI lib) I am using provides two sample apps, “gltest” and “glviewer”. Both hang the same way as my app. Also Tux-Racer hung when trying to quit it.

I´ll post this bug on that list, but I cannot provide the output of that bug report script, because the old board is no longer inside my machine.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.