From 376a0a9b08543f3978efd6f51cec3d4cf628e939 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 11 Oct 2017 10:32:25 -0700 Subject: [PATCH] mesa: Disallow GL_RED/GL_RG with half-floats on GLES2. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Sure, you'd think that the combination of GL_OES_texture_half_float and GL_EXT_texture_rg would mean that GL_RG16F exists, but it doesn't. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103227 Fixes: c16a7443e999 ("mesa: Expose GL_OES_required_internalformat on GLES contexts.") Reviewed-by: Nicolai Hähnle --- src/mesa/main/glformats.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c index 7b4b405a814..1e797c24c2a 100644 --- a/src/mesa/main/glformats.c +++ b/src/mesa/main/glformats.c @@ -3119,6 +3119,8 @@ _mesa_es3_error_check_format_and_type(const struct gl_context *ctx, case GL_HALF_FLOAT_OES: switch (internalFormat) { case GL_RG16F: + if (ctx->Version <= 20) + return GL_INVALID_OPERATION; break; case GL_RG: if (ctx->Extensions.ARB_texture_rg && @@ -3207,6 +3209,8 @@ _mesa_es3_error_check_format_and_type(const struct gl_context *ctx, case GL_HALF_FLOAT_OES: switch (internalFormat) { case GL_R16F: + if (ctx->Version <= 20) + return GL_INVALID_OPERATION; break; case GL_RG: case GL_RED: -- 2.30.2