When I try using ATI’s bindable uniform implementation, the desktop display gets…corrupted?..and the program stops responding. Has anyone had any luck with this?
I also have problems with bindable buffer on ATI HD2400.
Sometimes it works, but only first ~1/4 size of filled buffer contains valid data, rest of it are corrupted. And I can fill buffer only once with glMapbuffer/memcpy/glUnmapBuffer - everything is rendered corrupted (wrong positions) after second fill. glBufferSubData works ok - but it fills ~first quarter of buffer with correct values.
Also when I try to switch it off and on again (bindable buffer binding) I get locked desktop - luckily Vista tries to recover driver and everything resumes. If this error doesn’t happen, then on application exit I get access violation reading location 0xfeeefeee in wglDeleteContext function (call stack shows it happens in atoglxx.dll).
And there is more - if I put “#extension GL_EXT_bindable_uniform: require” in my vertex shader, then it does not compile - it complains that this extension is not supported. If I change require to enable, then it compiles fine without error message.
Hey Leadwerks, martinsm,
Is there anything specific you are trying that is causing issues? Is it only vertex shader usage?
Do you work for ATI? I don’t really feel like making a demo to demonstrate the problem right now.
What do you mean - “anything specific”? What I was doing is using EXT_bindable_uniform extension like it is supposed to be used - for instanced drawing. I was providing lot of model matrices using bindable uniform to vertex shader which chooses needed matrix for current object using gl_InstanceID index. But as you can read in my post - I was getting lot of crashes or wrong output. My code works fine with Nvidia card.
Here is example that demonstrates how this bindable buffer doesn’t work on ATI: http://www.box.net/shared/pb0jjz7zrf
Included Visual C++ 2008 solution with source code. Rendering is done at bottom of renderer.cpp file.
Hi martinsm. Thanks for the package. I’ll take a look. Looks like I forgot to check the email notifications option when I created a new account here. Sorry for the slow reply.