From: Marek Olšák Date: Mon, 6 Aug 2018 02:50:54 +0000 (-0400) Subject: mesa: expose EXT_texture_compression_s3tc on GLES X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a09cbaffbfb1dcf0b6ae41bbba21ae9bfdfb8a3b;p=mesa.git mesa: expose EXT_texture_compression_s3tc on GLES The spec was modified to support GLES. Tested-by: Erik Faye-Lund Reviewed-by: Ilia Mirkin --- diff --git a/docs/relnotes/18.3.0.html b/docs/relnotes/18.3.0.html index 5874d3fa330..e0061872de4 100644 --- a/docs/relnotes/18.3.0.html +++ b/docs/relnotes/18.3.0.html @@ -57,6 +57,7 @@ Note: some of the new features are only available with certain drivers.
  • GL_AMD_multi_draw_indirect on all GL 4.x drivers.
  • GL_AMD_query_buffer_object on i965, nvc0, r600, radeonsi.
  • GL_EXT_disjoint_timer_query on radeonsi and most other Gallium drivers (ES extension)
  • +
  • GL_EXT_texture_compression_s3tc on all drivers (ES extension)
  • GL_EXT_vertex_attrib_64bit on i965, nvc0, radeonsi.
  • GL_EXT_window_rectangles on radeonsi.
  • GL_KHR_texture_compression_astc_sliced_3d on radeonsi.
  • diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h index 09bf923bd0e..47db1583135 100644 --- a/src/mesa/main/extensions_table.h +++ b/src/mesa/main/extensions_table.h @@ -278,7 +278,7 @@ EXT(EXT_texture_buffer , OES_texture_buffer 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 , x , 2004) -EXT(EXT_texture_compression_s3tc , EXT_texture_compression_s3tc , GLL, GLC, x , x , 2000) +EXT(EXT_texture_compression_s3tc , EXT_texture_compression_s3tc , GLL, GLC, x , ES2, 2000) EXT(EXT_texture_cube_map , ARB_texture_cube_map , GLL, x , x , x , 2001) EXT(EXT_texture_cube_map_array , OES_texture_cube_map_array , x , x , x , 31, 2014) EXT(EXT_texture_edge_clamp , dummy_true , GLL, x , x , x , 1997) diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c index 6cb3435dea2..f8fc36e9311 100644 --- a/src/mesa/main/glformats.c +++ b/src/mesa/main/glformats.c @@ -2803,6 +2803,17 @@ _mesa_es3_error_check_format_and_type(const struct gl_context *ctx, internalFormat = effectiveInternalFormat; } + /* 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 && + (internalFormat == GL_COMPRESSED_RGB_S3TC_DXT1_EXT || + internalFormat == GL_COMPRESSED_RGBA_S3TC_DXT1_EXT || + internalFormat == GL_COMPRESSED_RGBA_S3TC_DXT3_EXT || + internalFormat == GL_COMPRESSED_RGBA_S3TC_DXT5_EXT)) + return format == GL_RGB || format == GL_RGBA ? GL_NO_ERROR : + GL_INVALID_OPERATION; + switch (format) { case GL_BGRA_EXT: if (type != GL_UNSIGNED_BYTE || internalFormat != GL_BGRA)