Mesa (master): mesa: expose EXT_texture_compression_bptc in GLES
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Dec 4 20:36:17 UTC 2018
Module: Mesa
Branch: master
Commit: 908f817918fb14a12887f942b8358a5c648b3f92
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=908f817918fb14a12887f942b8358a5c648b3f92
Author: Marek Olšák <marek.olsak at amd.com>
Date: Mon Aug 6 00:29:00 2018 -0400
mesa: expose EXT_texture_compression_bptc in GLES
tested by piglit.
v2: rebase
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu> (v1)
Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
---
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 4a61420be1..5a2e96e4ea 100644
--- a/docs/relnotes/19.0.0.html
+++ b/docs/relnotes/19.0.0.html
@@ -40,6 +40,7 @@ TBD.
<ul>
<li>GL_EXT_shader_implicit_conversions on all drivers (ES extension).</li>
+<li>GL_EXT_texture_compression_bptc on all GL 4.0 drivers (ES extension).</li>
<li>GL_EXT_texture_compression_rgtc on all GL 3.0 drivers (ES extension).</li>
<li>GL_EXT_texture_view on drivers supporting texture views (ES extension).</li>
<li>GL_OES_texture_view on drivers supporting texture views (ES extension).</li>
diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h
index a229f3af2b..d6ab81ee68 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 a63ccc0e5b..3a91600973 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 dcdb81ec11..2406cc5cf7 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)) {
More information about the mesa-commit
mailing list