[Mesa-dev] [PATCH v2 03/29] mesa/main: clean up S3_s3tc check

Ian Romanick idr at freedesktop.org
Sat Dec 1 00:25:58 UTC 2018


On 11/30/2018 03:15 PM, Marek Olšák wrote:
> On Fri, Nov 30, 2018 at 5:57 PM Ian Romanick <idr at freedesktop.org
> <mailto:idr at freedesktop.org>> wrote:
> 
>     On 11/30/2018 02:17 PM, Marek Olšák wrote:
>     >
>     >
>     > On Fri, Nov 23, 2018 at 5:54 AM Erik Faye-Lund
>     > <erik.faye-lund at collabora.com
>     <mailto:erik.faye-lund at collabora.com>
>     <mailto:erik.faye-lund at collabora.com
>     <mailto:erik.faye-lund at collabora.com>>> wrote:
>     >
>     >     S3_s3tc is the extension that enables this functionality on
>     desktop, so
>     >     let's check for that one. The _mesa_has_S3_s3tc() helper already
>     >     verifies the API according to the extension-table.
>     >
>     >     Signed-off-by: Erik Faye-Lund <erik.faye-lund at collabora.com
>     <mailto:erik.faye-lund at collabora.com>
>     >     <mailto:erik.faye-lund at collabora.com
>     <mailto:erik.faye-lund at collabora.com>>>
>     >     ---
>     >      src/mesa/main/glformats.c | 8 +++-----
>     >      1 file changed, 3 insertions(+), 5 deletions(-)
>     >
>     >     diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c
>     >     index 9a507d11b96..b2c18aa6d94 100644
>     >     --- a/src/mesa/main/glformats.c
>     >     +++ b/src/mesa/main/glformats.c
>     >     @@ -1352,8 +1352,7 @@ _mesa_is_compressed_format(const struct
>     >     gl_context *ctx, GLenum format)
>     >         case GL_RGB4_S3TC:
>     >         case GL_RGBA_S3TC:
>     >         case GL_RGBA4_S3TC:
>     >     -      return _mesa_is_desktop_gl(ctx) &&
>     >     -         ctx->Extensions.ANGLE_texture_compression_dxt;
>     >     +      return _mesa_has_S3_s3tc(ctx);
>     >         case GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI:
>     >            return ctx->API == API_OPENGL_COMPAT
>     >               && ctx->Extensions.ATI_texture_compression_3dc;
>     >     @@ -1378,9 +1377,8 @@ _mesa_is_compressed_format(const struct
>     >     gl_context *ctx, GLenum format)
>     >                */
>     >               return ctx->Extensions.ANGLE_texture_compression_dxt;
>     >            } else {
>     >     -         return _mesa_is_desktop_gl(ctx)
>     >     -            && ctx->Extensions.EXT_texture_sRGB
>     >     -            && ctx->Extensions.EXT_texture_compression_s3tc;
>     >     +         return _mesa_has_EXT_texture_sRGB(ctx) &&
>     >     +            _mesa_has_S3_s3tc(ctx);
>     >
>     > This looks like it should be _mesa_has_EXT_texture_compression_s3tc.
> 
>     I haven't looked at the code to verify, but I think
>     _mesa_has_EXT_texture_compression_s3tc can be true in OpenGL ES, but
>     _mesa_has_S3_s3tc cannot.  The original code has _mesa_is_desktop_gl, so
>     we don't want to allow ES.  But I also thought _mesa_has_S3_s3tc wasn't
>     allowed in core profile, so that might not be right either?
> 
> 
> They are all allowed by core & compat. EXT_texture_sRGB is only
> available in desktop GL, so any s3tc extension should work, but
> EXT_texture_sRGB defines interactions with EXT_texture_compression_s3tc,
> not S3_s3tc.

Ah.  That makes sense.

> Marek



More information about the mesa-dev mailing list