mesa/main: do not allow stencil-texture enums on gles1
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Fri, 16 Nov 2018 08:56:34 +0000 (09:56 +0100)
committerErik Faye-Lund <erik.faye-lund@collabora.com>
Mon, 3 Dec 2018 17:16:44 +0000 (18:16 +0100)
ctx->Extensions.ARB_texture_stencil8 is set regardless of the API
that's used, so checking for those direcly will always allow the
enums from this extensions when they are supported by the driver.

So let's instead check for both ARB_texture_stencil8 and
OES_texture_stencil8, so we support depth textures on OpenGL and
OpenGL ES 2.0+. There's no extension enabling stencil-textures for
OpenGL ES 1.x, so we shouldn't allow those enums there.

Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/main/glformats.c

index 811271737e4220f4314fa20397856b911400864e..8a3f9f27d47b328f812835c258251b85db131270 100644 (file)
@@ -2337,7 +2337,8 @@ _mesa_base_tex_format(const struct gl_context *ctx, GLint internalFormat)
       }
    }
 
-   if (ctx->Extensions.ARB_texture_stencil8) {
+   if (_mesa_has_ARB_texture_stencil8(ctx) ||
+       _mesa_has_OES_texture_stencil8(ctx)) {
       switch (internalFormat) {
       case GL_STENCIL_INDEX:
       case GL_STENCIL_INDEX1: