mesa/main: do not allow s3tc enums on gles1
There's no extension enabling S3TC formats on OpenGL ES 1.x, so we shouldn't allow these even if the driver can support it. So let's check for EXT_texture_compression_s3tc instead of ANGLE_texture_compression_dxt, which is supported on all other OpenGL variations. We also need to use _mesa_has_EXT_texture_compression_s3tc() instead of checking the driver cap directly, otherwise we end up enabling this on OpenGL ES 1.x, as the API isn't checked. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
@@ -1371,10 +1371,7 @@ _mesa_is_compressed_format(const struct gl_context *ctx, GLenum format)
|
||||
switch (_mesa_get_format_layout(m_format)) {
|
||||
case MESA_FORMAT_LAYOUT_S3TC:
|
||||
if (_mesa_get_format_color_encoding(m_format) == GL_LINEAR) {
|
||||
/* Assume that the ANGLE flag will always be set if the
|
||||
* EXT flag is set.
|
||||
*/
|
||||
return ctx->Extensions.ANGLE_texture_compression_dxt;
|
||||
return _mesa_has_EXT_texture_compression_s3tc(ctx);
|
||||
} else {
|
||||
return _mesa_has_EXT_texture_sRGB(ctx) &&
|
||||
_mesa_has_EXT_texture_compression_s3tc(ctx);
|
||||
@@ -2802,7 +2799,7 @@ _mesa_gles_error_check_format_and_type(const struct gl_context *ctx,
|
||||
/* The GLES variant of EXT_texture_compression_s3tc is very vague and
|
||||
* doesn't list valid types. Just do exactly what the spec says.
|
||||
*/
|
||||
if (ctx->Extensions.EXT_texture_compression_s3tc &&
|
||||
if (_mesa_has_EXT_texture_compression_s3tc(ctx) &&
|
||||
(internalFormat == GL_COMPRESSED_RGB_S3TC_DXT1_EXT ||
|
||||
internalFormat == GL_COMPRESSED_RGBA_S3TC_DXT1_EXT ||
|
||||
internalFormat == GL_COMPRESSED_RGBA_S3TC_DXT3_EXT ||
|
||||
|
||||
Reference in New Issue
Block a user