[Mesa-dev] [PATCH] mesa: do more teximage error checking for generic compressed formats

Brian Paul brianp at vmware.com
Thu Aug 16 10:23:19 PDT 2012


On 08/15/2012 02:31 PM, Anuj Phogat wrote:
> On Tue, May 1, 2012 at 2:07 PM, Brian Paul <brianp at vmware.com
> <mailto:brianp at vmware.com>> wrote:
>
>     When glTexImage or glCopyTexImage is called with internalFormat
>     being a
>     generic compressed format (like GL_COMPRESSED_RGB) we need to do
>     the same
>     error checks as for specific compressed formats.  In particular,
>     check if
>     the texture target is compatible with the format.  None of the texture
>     compression formats we support so far work with GL_TEXTURE_1D, for
>     example.
>
>     See also https://bugs.freedesktop.org/show_bug.cgi?id=49124
>
>
> Brian, generic texture compression formats with GL_TEXTURE_1D seem to
> work fine
> on i965 drivers.

Does that wind up using one of the DXT formats?


  I verified this by allowing generic texture
> compression formats for
> GL_TEXTURE_1D in piglit copyteximage test case and reverting the
> changes due to
> this patch on mesa. Is this an issue only on swrast?

That's what the bug reported, don't recall testing other drivers.


> Returning
> GL_INVALID_ENUM
> error for generic texture compression formats in glTexImage1D() and
> glCopyTexImage1D() doesn't seem to follow the OpenGL
> specification. Spec does allow
> GL_INVALID_ENUM error for a similar scenario in case
> of glCompressedTexImage1D().
> Please correct me if I'm missing something.

I guess I'd like to check what either NVIDIA or AMD do in some of 
these cases.

AFAIK, the various DXT, LATC, etc compressed formats are only spec'd 
to work with 2D textures, not 1D.  Since 1D textures are generally 
pretty small to start with, there's not a lot of value in compressed 
1D textures.  Plus, if a compressed 1D texture uses 4 or 8 bytes to 
store a 4x1 block of texels, there's only 50% or 0% memory savings 
with compression.

If you can post your patch for the piglit test I can run it with the 
NVIDIA driver and see what it does.

-Brian


More information about the mesa-dev mailing list