From: Steffen H. <st...@me...> - 2003-12-17 18:15:58
|
Hello, I have a big problem with compressed textures under Mesa 5.0. I tried to load a previously compressed texture (generated under MS Windows with native nvidia driver), but it failed. Then I tried to create a compressed texture from a pixmap, but it failed either! Does Mesa texture compression work at all? Here is what I did in detail: 1. Loading a previously generated compressed texture file from disk: GLCompressedTexImage2DARB (GL_TEXTURE_2D, 0, internalFormat, w, h, 0, s, data); internalFormat had the value GL_COMPRESSED_RGBA_S3TC_DXT5_EXT. This works pretty well under Windows with a native nvidia driver, but under Mesa it generates OpenGL error "invalid enumerate" and "invalid value". 2. Generating a compressed texture: Here I called these functions to set the texture: glTexImage2D (GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_ARB, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); glGetTexLevelParameteriv (GL_TEXTURE_2D, 0, GL_TEXTURE_COMPRESSED_ARB, &compressed); Afterwards compressed has the value 0, so texture compression failed. Again, under Windows with a native nvidia driver, it works well again! Does anyone have an idea how to use texture compression under Mesa? Thanks a lot! Steffen |
From: Brian P. <br...@tu...> - 2003-12-17 18:23:29
|
Steffen Hauser wrote: > Hello, > > I have a big problem with compressed textures under Mesa 5.0. I tried to > load a previously compressed texture (generated under MS Windows with native > nvidia driver), but it failed. Then I tried to create a compressed texture > from a pixmap, but it failed either! Does Mesa texture compression work at > all? No. It's not implemented because of questions about S3 patents/IP. > Here is what I did in detail: > > > 1. Loading a previously generated compressed texture file from disk: > > GLCompressedTexImage2DARB (GL_TEXTURE_2D, 0, internalFormat, > > w, h, 0, s, data); > > internalFormat had the value GL_COMPRESSED_RGBA_S3TC_DXT5_EXT. This works > pretty well under Windows with a native nvidia driver, but under Mesa it > generates OpenGL error "invalid enumerate" and "invalid value". As it should. > 2. Generating a compressed texture: > > Here I called these functions to set the texture: > > glTexImage2D (GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_ARB, > > w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); > > glGetTexLevelParameteriv (GL_TEXTURE_2D, 0, GL_TEXTURE_COMPRESSED_ARB, > &compressed); > > Afterwards compressed has the value 0, so texture compression failed. Again, > under Windows with a native nvidia driver, it works well again! > > > Does anyone have an idea how to use texture compression under Mesa? Thanks a > lot! Compressed textures, specifically GL_EXT_texture_compression_s3tc, isn't supported. Your application should be checking glGetString(GL_EXTENSIONS) before assuming that any particular extension is supported. -Brian |