pouët.net

opengl + ati + pbo + compression not working

category: general [glöplog]
 
hey,

seems like i ran into some trouble concerning asynchronous texture uploads to the gpu when using an ati graphics card (different hd3xxx/4xxxx models show the same result)...

thing is, when i stream textures to the gpu using a previously mapped pbo everything works fine for nvidia (tested on different models), even when i use compression via GL_COMPRESSED_XXX or GL_COMPRESSED_XXX_S3TC_DXTX. when i do the very same for an ati card, it results in a complete driver crash (blabla gpu recovery whatever).

(haven't tried to upload the textures in an already compressed format because that's not an option right now...)

before posting source code i just want to know if anyone experienced something similar to this? anyone streaming textures to the gpu on ati asynchronously and letting the card handle the compression?

i've looked around but haven't found anything going into that direction...

anyways maybe i'm just doing something completely wrong :)
added on the 2009-03-20 09:54:06 by supah supah
one thing to mention: using the GL_COMPRESSED_XXX stuff works fine for ati as long as not copying data from a bound pbo...
added on the 2009-03-20 09:56:38 by supah supah
I have had a similar problem with compressed textures.
added on the 2009-03-20 10:12:26 by Navis Navis
You can't use compressed targets when using compressed textures as a target. At least on my card. I don't know if it's part of the specs or not.
added on the 2009-03-20 13:17:48 by xernobyl xernobyl
mhm.. guess i'm going for cpu compression to the target format and then uploading the already compressed buffer. i really hope it's supported to use glCompressedTex(Sub)Image when streaming the data.

anyways, thanks for the responses!
added on the 2009-03-20 14:02:35 by supah supah
from:
framebuffer_object.txt
Quote:
No other formats, including compressed internal formats, are color-renderable.

I've searched for that a while ago, because when doing certain passes, like blurs, you can easily ignore the compression artifacts.
added on the 2009-03-20 14:22:42 by xernobyl xernobyl
well i wasn't talking about fbo, i was talking about pbo transfers of normal textures compressing them on the fly by the gpu. but yes, frame buffer objects can't be compressed from what i know...
added on the 2009-03-20 15:41:12 by supah supah
btw, using the example project from http://www.songho.ca/opengl/files/pboUnpack.zip clearly shows the difference between nvidia and ati.

i just replaced one single line of code for the compressed/uncompressed texture format (GL_RGBA->GL_COMPRESSED_RGBA) and it's resulting in a driver crash on ati under windows xp and fucked up data on ati under vista.

the spec isn't very clear about whether this is allowed or not, at least not to me...

added on the 2009-03-20 16:37:09 by supah supah
ahem... what are you doing around?

login