[Mesa-dev] Naked DXTn support via ARB_texture_compression?

Petr Sebor petr at scssoft.com
Sun Mar 20 02:55:16 PDT 2011

On 20.3.2011 1:40, Henri Verbeet wrote:
> On 20 March 2011 00:42, Petr Sebor<petr at scssoft.com>  wrote:
>> And this is not an undocumented hack. ARB_texture_compression explicitly
>> defines mechanisms to work with 'unknown' formats providing a safe
>> passthrough.
>> Thats what glCompressedTexImage actually is for.
> Sure, the CompressedTexImage* calls are in principle agnostic to the
> specific format. But without the s3tc extension there's nothing that
> defines e.g. GL_COMPRESSED_RGBA_S3TC_DXT5_EXT. So you can't use those
> tokens, unless you have another extension that defines them.
There is a slight difference between unknown and 'unknown'. You would 
enumerate the 'unknown'
formats first via

glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &num_formats)
glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, &format_table)

compare the values returned with the format values you have and if there 
is a match, you're done.
Sure it is convenient to know GL_COMPRESSED_RGBA_S3TC_DXT5_EXT is 0x83f3.

I don't want to pretend that S3TC extension doesn't exist. Of course, 
there is a negligible
overlap with the EXT_tc_s3tc extension specification in the sense that 
is is convenient to know
the value of the format tokens. I assume that by defining and using such 
tokens isn't illegal.

To sum this up, ARB_tc offers a way to pass through precompressed data, 
yet the Mesa code
blocks anything S3TC related unless the compressing library is not 
present. I was asking for
relaxing this requirement, at least on hardware where we're sure to not 
enter the legal grounds
(apparently at least NV). So take it or leave it. The world isn't going 
to collapse if this opportunity
is ignored.


Petr Sebor / SCS Software [ http://www.scssoft.com ]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20110320/116ce930/attachment.html>

More information about the mesa-dev mailing list