From 8ee3cdde049d30095451f44080a9cd2d6e949459 Mon Sep 17 00:00:00 2001 From: Ilia Mirkin Date: Fri, 8 Jul 2016 18:41:03 -0400 Subject: [PATCH] mesa: etc2 online compression is unsupported, don't attempt it Signed-off-by: Ilia Mirkin Reviewed-by: Anuj Phogat Cc: "11.2 12.0" --- src/mesa/main/glformats.c | 23 +++++++++++++++++++++++ src/mesa/main/glformats.h | 3 +++ src/mesa/main/teximage.c | 1 + 3 files changed, 27 insertions(+) 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); } -- 2.30.2