PDA

View Full Version : glBindVertexArray freezes app



soconne
08-29-2009, 06:41 AM
I'm working with an NVIDIA 8600m GT notebook card with the latest 190.56 drivers w/modified inf. Running realtech's OpenGL extension viewer, it states that I have OpenGL 3.2 support.

I've tried creating OpenGL 2.1, 3.0, 3.1 and 3.2 contexts, with and without forward compatibility, but my app always freezes when calling glBindVertexArray. Even if I pass in the value 0, it still causes my app to hang. Does anybody know why this is happening?

I can call glGenVertexArray, which generates a valid ID. I've tried it back to back, and the IDs are 1, 2, 3, ect...

Ilian Dinev
08-29-2009, 07:12 AM
Let me confirm: you _must_ use the ID returned by glGenVertexArray, even if you know it's going to return "1". This will do the proper initializations.
Then, take special note that if you happen to be doing caching of vertex-attrib enables, the VAO will put them out of whack. By caching I mean this:


if(!g_isArrayAlreadyEnabled[i]){
glEnableVertexAttribArray(i);
g_isArrayAlreadyEnabled[i]=true;
}

VAO works with GF8600 @ 190.56 driver.

soconne
08-29-2009, 07:24 AM
Yeah I'm not using my own values for the IDs, I'm calling:

GLuint vaoID;
glGenVertexArrays(1, &vaoID);
glBindVertexArray(vaoID);

I downgraded to 186.81 drivers, since they are official notebook ones. Now everything works just fine, but I can't create a context past OpenGL 3.0. Plus, if I declare the forward compatability bit in my attribList, then the first call to glGenVertexArrays crashes my app. I can create fragment and vertex shaders just fine with forward compatibility, I just can't call glGenVertexArrays.

Aleksandar
08-29-2009, 08:25 AM
I'm working with an NVIDIA 8600m GT notebook card with the latest 190.56 drivers w/modified inf.
Very brave, indeed! But, it is not recommended to install such drivers on notebooks. 190.56 have a problem with VAO, but everything is fixed in 190.57.

On my notebook (also with NV 8600M GT) the latest version of the drivers that work perfectly is 185.81. Those drivers are fully GL 3.0 compatible, and so far I haven't had any problem with them.

Aleksandar
08-29-2009, 08:54 AM
VAO works with GF8600 @ 190.56 driver.
NOT TRUE!

190.56 are full of bugs (at least on Windows). Lack of ability to bind VAO is one of those bugs. But forget 190.56. They cannot be downloaded any more, and 190.57 (so far) work perfectly.

Ilian Dinev
08-29-2009, 08:57 AM
Ah yes, sorry - I was actually with .57

soconne
08-29-2009, 04:36 PM
Thanks guys, VAOs now work with 190.57 on my 8600m for context versions 3.0 and 3.1. But 3.2 causes every OpenGL call to throw an error, including VAO, shaders, VBOs. And on any context version, declaring the context to be forward compatible makes VAO calls crash again.