From: Ilia Mirkin Date: Fri, 8 Jul 2016 22:41:03 +0000 (-0400) Subject: mesa: etc2 online compression is unsupported, don't attempt it X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8ee3cdde049d30095451f44080a9cd2d6e949459;p=mesa.git mesa: etc2 online compression is unsupported, don't attempt it Signed-off-by: Ilia Mirkin Reviewed-by: Anuj Phogat Cc: "11.2 12.0" --- diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c index 448577e059f..0c2210a42d9 100644 --- a/src/mesa/main/glformats.c +++ b/src/mesa/main/glformats.c @@ -906,6 +906,29 @@ _mesa_is_astc_format(GLenum internalFormat) is_astc_3d_format(internalFormat); } +/** + * Test if the given format is an ETC2 format. + */ +GLboolean +_mesa_is_etc2_format(GLenum internalFormat) +{ + switch (internalFormat) { + case GL_COMPRESSED_RGB8_ETC2: + case GL_COMPRESSED_SRGB8_ETC2: + case GL_COMPRESSED_RGBA8_ETC2_EAC: + case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: + case GL_COMPRESSED_R11_EAC: + case GL_COMPRESSED_RG11_EAC: + case GL_COMPRESSED_SIGNED_R11_EAC: + case GL_COMPRESSED_SIGNED_RG11_EAC: + case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: + case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: + return true; + default: + return false; + } +} + /** * Test if the given format is an integer (non-normalized) format. */ diff --git a/src/mesa/main/glformats.h b/src/mesa/main/glformats.h index 782e0f2edc8..763307f2593 100644 --- a/src/mesa/main/glformats.h +++ b/src/mesa/main/glformats.h @@ -60,6 +60,9 @@ _mesa_bytes_per_vertex_attrib(GLint comps, GLenum type); extern GLboolean _mesa_is_astc_format(GLenum internalFormat); +extern GLboolean +_mesa_is_etc2_format(GLenum internalFormat); + extern GLboolean _mesa_is_type_unsigned(GLenum type); diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index 26a6c21cd0f..81e46a170ae 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -1307,6 +1307,7 @@ bool _mesa_format_no_online_compression(const struct gl_context *ctx, GLenum format) { return _mesa_is_astc_format(format) || + _mesa_is_etc2_format(format) || compressedteximage_only_format(ctx, format); }