diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/main/glformats.c | 23 | ||||
-rw-r--r-- | src/mesa/main/glformats.h | 3 | ||||
-rw-r--r-- | src/mesa/main/teximage.c | 1 |
3 files changed, 27 insertions, 0 deletions
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 @@ -907,6 +907,29 @@ _mesa_is_astc_format(GLenum 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. */ GLboolean 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 @@ -61,6 +61,9 @@ extern GLboolean _mesa_is_astc_format(GLenum internalFormat); extern GLboolean +_mesa_is_etc2_format(GLenum internalFormat); + +extern GLboolean _mesa_is_type_unsigned(GLenum type); extern GLboolean 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); } |