From 908f817918fb14a12887f942b8358a5c648b3f92 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 6 Aug 2018 00:29:00 -0400 Subject: [PATCH] mesa: expose EXT_texture_compression_bptc in GLES tested by piglit. v2: rebase Reviewed-by: Ilia Mirkin (v1) Reviewed-by: Erik Faye-Lund --- docs/relnotes/19.0.0.html | 1 + src/mesa/main/extensions_table.h | 1 + src/mesa/main/glformats.c | 13 ++++++++++++- src/mesa/main/texcompress.c | 8 ++++++++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/relnotes/19.0.0.html b/docs/relnotes/19.0.0.html index 4a61420be1a..5a2e96e4eab 100644 --- a/docs/relnotes/19.0.0.html +++ b/docs/relnotes/19.0.0.html @@ -40,6 +40,7 @@ TBD.
  • GL_EXT_shader_implicit_conversions on all drivers (ES extension).
  • +
  • GL_EXT_texture_compression_bptc on all GL 4.0 drivers (ES extension).
  • GL_EXT_texture_compression_rgtc on all GL 3.0 drivers (ES extension).
  • GL_EXT_texture_view on drivers supporting texture views (ES extension).
  • GL_OES_texture_view on drivers supporting texture views (ES extension).
  • diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h index a229f3af2b2..d6ab81ee689 100644 --- a/src/mesa/main/extensions_table.h +++ b/src/mesa/main/extensions_table.h @@ -276,6 +276,7 @@ EXT(EXT_texture3D , dummy_true EXT(EXT_texture_array , EXT_texture_array , GLL, GLC, x , x , 2006) EXT(EXT_texture_border_clamp , ARB_texture_border_clamp , x , x , x , ES2, 2014) EXT(EXT_texture_buffer , OES_texture_buffer , x , x , x , 31, 2014) +EXT(EXT_texture_compression_bptc , ARB_texture_compression_bptc , x , x , x , 30, 2017) EXT(EXT_texture_compression_dxt1 , ANGLE_texture_compression_dxt , GLL, GLC, ES1, ES2, 2004) EXT(EXT_texture_compression_latc , EXT_texture_compression_latc , GLL, x , x , x , 2006) EXT(EXT_texture_compression_rgtc , ARB_texture_compression_rgtc , GLL, GLC, x , 30, 2004) diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c index a63ccc0e5ba..3a916009735 100644 --- a/src/mesa/main/glformats.c +++ b/src/mesa/main/glformats.c @@ -1388,7 +1388,8 @@ _mesa_is_compressed_format(const struct gl_context *ctx, GLenum format) case MESA_FORMAT_LAYOUT_ETC2: return _mesa_is_gles3(ctx) || _mesa_has_ARB_ES3_compatibility(ctx); case MESA_FORMAT_LAYOUT_BPTC: - return _mesa_has_ARB_texture_compression_bptc(ctx); + return _mesa_has_ARB_texture_compression_bptc(ctx) || + _mesa_has_EXT_texture_compression_bptc(ctx); case MESA_FORMAT_LAYOUT_ASTC: return _mesa_has_KHR_texture_compression_astc_ldr(ctx); default: @@ -2846,6 +2847,11 @@ _mesa_gles_error_check_format_and_type(const struct gl_context *ctx, if (ctx->Version <= 20) return GL_INVALID_OPERATION; break; + case GL_COMPRESSED_RGBA_BPTC_UNORM: + case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM: + if (!_mesa_has_EXT_texture_compression_bptc(ctx)) + return GL_INVALID_OPERATION; + break; default: return GL_INVALID_OPERATION; } @@ -3050,6 +3056,11 @@ _mesa_gles_error_check_format_and_type(const struct gl_context *ctx, case GL_RGB: if (_mesa_has_OES_texture_float(ctx) && internalFormat == format) break; + case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT: + case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT: + if (!_mesa_has_EXT_texture_compression_bptc(ctx)) + return GL_INVALID_OPERATION; + break; default: return GL_INVALID_OPERATION; } diff --git a/src/mesa/main/texcompress.c b/src/mesa/main/texcompress.c index dcdb81ec111..2406cc5cf7e 100644 --- a/src/mesa/main/texcompress.c +++ b/src/mesa/main/texcompress.c @@ -327,6 +327,14 @@ _mesa_get_compressed_formats(struct gl_context *ctx, GLint *formats) formats[n++] = GL_ETC1_RGB8_OES; } + /* Required by EXT_texture_compression_bptc in GLES. */ + if (_mesa_has_EXT_texture_compression_bptc(ctx)) { + formats[n++] = GL_COMPRESSED_RGBA_BPTC_UNORM; + formats[n++] = GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM; + formats[n++] = GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT; + formats[n++] = GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT; + } + /* Required by EXT_texture_compression_rgtc in GLES. */ if (_mesa_is_gles3(ctx) && _mesa_has_EXT_texture_compression_rgtc(ctx)) { -- 2.30.2