cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

J0KER
Journeyman III

ATI 4870x2 VBO problem

Hey all,

Was not sure where to post this, so I hope its in the right spot, i'm pretty sure its a graphics issue.

I'm having problems with VBOs, i'm doing everything right, compiles fine... but when i run it, it freezes, screen glitches, goes black and then my screen reappears saying my display driver was restored... I get this error message as well once the program is closed 'has exited with code -1073741510 (0xc000013a)'. If I take out the VBOs it runs absolutely fine... Ive tested the VBO code on several other PCs and it runs perfectly. Any ideas why its not running on my ATI card?

I'm running win7 x64 and a 4870x2 graphics card.

Thanks in advance

J0KER

0 Likes
8 Replies
pboudier
Staff

can you contact devrel with a link to your test case and application ? (and which driver you were using).

fyi, on consumer boards, crossfire is not enabled by default, and is limited to fullscreen anyway.

thanks,

Pierre B.

0 Likes

contact devrel? sorry kinda new to the form room :S  

 

Anyway Ill paste it here for now... I am running CCC 10.9, the motherboard is a Asus Rampage II extreme crossfire and SLI compatible. Running windows 7 x64 Pro. Ive pasted my test code at this address below.

http://yallara.cs.rmit.edu.au/~mpatton/gltest.cpp

 

cheers

J0KER 

0 Likes

added in my compiled .exe a popped it all into a .zip folder

http://yallara.cs.rmit.edu.au/~mpatton/gltest.zip

 

cheers,

J0KER

 

0 Likes

I'd like to hear from an official AMD person on this one. On a typical use of VBO's one would do something like this...

glGenBuffers(1, &vbo);

glBindBuffer(GL_ARRAY_BUFFER, vbo);

glBufferData(GL_ARRAY_BUFFER, num_vert, verts, GL_STATIC_DRAW);

There are other calls, but that doesn't matter, as the call to glBufferData() causes the video drivers to crash. glGetString(GL_EXTENSIONS) very clearly lists VBO's as supported by the device. This occurs on my 4870x2 on win7-64. I checked on Ubuntu-x64 and it works as expected.
What's up AMD?

 

0 Likes

Update:

Windows Update solved the initial problem... however...

Calling glBufferData(GL_ELEMENT_ARRAY_BUFFER,...) does not update the contents of the bound Element Array buffer.

Ok, that's a problem, but not the end of the world... so naturally one would call glBufferSubData()... except THAT will crash the video card drivers now.

So the method I've found that does work, is this...

Initialised your VBO with...

glBufferData(GL_ELEMENT_ARRAY_BUFFER, SizeOfYourDataInBytes, NULL, type);

void *p = glMapBuffer(GL_ELEMENT_ARRAY_BUFFER, GL_WRITE_ONLY);

memcpy(p, YourDataPtr, SizeOfYourDataInBytes);

glUnMapBuffer(GL_ELEMENT_ARRAY_BUFFER);

 

If you're feeling (justifiably) paranoid, you can use GL_READ_WRITE instead and read a couple of bytes to check they're actually there.

 

From my limited testing, you can just go ahead and use whatever you want on Linux, I can't comment on other versions of windows although I suspect the Vista x64 drivers have similar "features".

0 Likes

Our engineering doesn't see anything wrong with the code.

You mentions that it works fine on a number of other systems.

Are these non AMD graphics cards?

If not, what AMD graphics cards don't show this issue?

You also mention that it works fine under Linux. Our linux driver shares almost all code with the windows one.

Could you try a fresh install and report back?

0 Likes

I hate to bring back an old thread, but this is relevent to the issue posted.

I'm having the same issue on my 4870x2.

glBufferData does not copy the data like it's suppose to.

I can confirm that this works as expected in Catalyst 9.12. However it stopped working with the next driver I was able to find (Catalyst 10.7). This function does not work in every Catalyst version since then. I tested this on a new Windows installation. Several other PC's with different graphics card types work just fine, it's only this 4870x2 and the Catalyst 10.x+ 11.x+ drivers.

0 Likes

I can confirm this, as I have the exact same problem. glBufferData does not work as expected.

I'm using Catalyst 11.11 at this time.

0 Likes