Nice :) For the series: Reviewed-by: Erik Faye-Lund <[email protected]>
On Tue, 2018-12-04 at 14:57 -0500, Marek Olšák wrote: > From: Marek Olšák <[email protected]> > > tested by piglit. > > v2: rebase > > Reviewed-by: Ilia Mirkin <[email protected]> (v1) > --- > docs/relnotes/19.0.0.html | 1 + > src/mesa/main/extensions_table.h | 1 + > src/mesa/main/glformats.c | 13 ++++++++++++- > src/mesa/main/texcompress.c | 8 ++++++++ > 4 files changed, 22 insertions(+), 1 deletion(-) > > diff --git a/docs/relnotes/19.0.0.html b/docs/relnotes/19.0.0.html > index 4a61420be1a..5a2e96e4eab 100644 > --- a/docs/relnotes/19.0.0.html > +++ b/docs/relnotes/19.0.0.html > @@ -33,20 +33,21 @@ Compatibility contexts may report a lower version > depending on each driver. > <h2>SHA256 checksums</h2> > <pre> > TBD. > </pre> > > > <h2>New features</h2> > > <ul> > <li>GL_EXT_shader_implicit_conversions on all drivers (ES > extension).</li> > +<li>GL_EXT_texture_compression_bptc on all GL 4.0 drivers (ES > extension).</li> > <li>GL_EXT_texture_compression_rgtc on all GL 3.0 drivers (ES > extension).</li> > <li>GL_EXT_texture_view on drivers supporting texture views (ES > extension).</li> > <li>GL_OES_texture_view on drivers supporting texture views (ES > extension).</li> > </ul> > > <h2>Bug fixes</h2> > > <ul> > <li>TBD</li> > </ul> > diff --git a/src/mesa/main/extensions_table.h > b/src/mesa/main/extensions_table.h > index a229f3af2b2..d6ab81ee689 100644 > --- a/src/mesa/main/extensions_table.h > +++ b/src/mesa/main/extensions_table.h > @@ -269,20 +269,21 @@ EXT(EXT_shadow_funcs , > ARB_shadow > EXT(EXT_stencil_two_side , > EXT_stencil_two_side , GLL, x , x , x , 2001) > EXT(EXT_stencil_wrap , > dummy_true , GLL, x , x , x , 2002) > EXT(EXT_subtexture , > dummy_true , GLL, x , x , x , 1995) > EXT(EXT_tessellation_point_size , > ARB_tessellation_shader , x , x , x , 31, 2013) > EXT(EXT_tessellation_shader , > ARB_tessellation_shader , x , x , x , 31, 2013) > EXT(EXT_texture , > dummy_true , GLL, x , x , x , 1996) > EXT(EXT_texture3D , > dummy_true , GLL, x , x , x , 1996) > EXT(EXT_texture_array , > EXT_texture_array , GLL, GLC, x , x , 2006) > EXT(EXT_texture_border_clamp , > ARB_texture_border_clamp , x , x , x , ES2, 2014) > EXT(EXT_texture_buffer , > OES_texture_buffer , x , x , x , 31, 2014) > +EXT(EXT_texture_compression_bptc , > ARB_texture_compression_bptc , x , x , x , 30, 2017) > 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 , 30, 2004) > 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) > EXT(EXT_texture_env_add , > dummy_true , GLL, x , x , x , 1999) > EXT(EXT_texture_env_combine , > dummy_true , GLL, x , x , x , 2000) > EXT(EXT_texture_env_dot3 , > EXT_texture_env_dot3 , GLL, x , x , x , 2000) > diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c > index 77e0d94a71b..74e1d3761ec 100644 > --- a/src/mesa/main/glformats.c > +++ b/src/mesa/main/glformats.c > @@ -1381,21 +1381,22 @@ _mesa_is_compressed_format(const struct > gl_context *ctx, GLenum format) > case MESA_FORMAT_LAYOUT_RGTC: > return _mesa_has_ARB_texture_compression_rgtc(ctx) || > _mesa_has_EXT_texture_compression_rgtc(ctx); > case MESA_FORMAT_LAYOUT_LATC: > return _mesa_has_EXT_texture_compression_latc(ctx); > case MESA_FORMAT_LAYOUT_ETC1: > return _mesa_has_OES_compressed_ETC1_RGB8_texture(ctx); > case MESA_FORMAT_LAYOUT_ETC2: > return _mesa_is_gles3(ctx) || > _mesa_has_ARB_ES3_compatibility(ctx); > case MESA_FORMAT_LAYOUT_BPTC: > - return _mesa_has_ARB_texture_compression_bptc(ctx); > + return _mesa_has_ARB_texture_compression_bptc(ctx) || > + _mesa_has_EXT_texture_compression_bptc(ctx); > case MESA_FORMAT_LAYOUT_ASTC: > return _mesa_has_KHR_texture_compression_astc_ldr(ctx); > default: > return GL_FALSE; > } > } > > /** > * Test if the given format represents an sRGB format. > * \param format the GL format (can be an internal format) > @@ -2837,20 +2838,25 @@ _mesa_gles_error_check_format_and_type(const > struct gl_context *ctx, > switch (internalFormat) { > case GL_RGBA: > case GL_RGBA8: > case GL_RGB5_A1: > case GL_RGBA4: > break; > case GL_SRGB8_ALPHA8_EXT: > if (ctx->Version <= 20) > return GL_INVALID_OPERATION; > break; > + case GL_COMPRESSED_RGBA_BPTC_UNORM: > + case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM: > + if (!_mesa_has_EXT_texture_compression_bptc(ctx)) > + return GL_INVALID_OPERATION; > + break; > default: > return GL_INVALID_OPERATION; > } > break; > > case GL_BYTE: > if (ctx->Version <= 20 || internalFormat != GL_RGBA8_SNORM) > return GL_INVALID_OPERATION; > break; > > @@ -3041,20 +3047,25 @@ _mesa_gles_error_check_format_and_type(const > struct gl_context *ctx, > case GL_RGB16F: > case GL_RGB32F: > case GL_R11F_G11F_B10F: > case GL_RGB9_E5: > if (ctx->Version <= 20) > return GL_INVALID_OPERATION; > break; > case GL_RGB: > if (_mesa_has_OES_texture_float(ctx) && internalFormat > == format) > break; > + case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT: > + case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT: > + if (!_mesa_has_EXT_texture_compression_bptc(ctx)) > + return GL_INVALID_OPERATION; > + break; > default: > return GL_INVALID_OPERATION; > } > break; > > case GL_HALF_FLOAT_OES: > if (!_mesa_has_OES_texture_half_float(ctx) || > internalFormat != format) > return GL_INVALID_OPERATION; > break; > > diff --git a/src/mesa/main/texcompress.c > b/src/mesa/main/texcompress.c > index dcdb81ec111..2406cc5cf7e 100644 > --- a/src/mesa/main/texcompress.c > +++ b/src/mesa/main/texcompress.c > @@ -320,20 +320,28 @@ _mesa_get_compressed_formats(struct gl_context > *ctx, GLint *formats) > * "New State > * > * The queries for NUM_COMPRESSED_TEXTURE_FORMATS and > * COMPRESSED_TEXTURE_FORMATS include ETC1_RGB8_OES." > */ > if (_mesa_is_gles(ctx) > && ctx->Extensions.OES_compressed_ETC1_RGB8_texture) { > formats[n++] = GL_ETC1_RGB8_OES; > } > > + /* Required by EXT_texture_compression_bptc in GLES. */ > + if (_mesa_has_EXT_texture_compression_bptc(ctx)) { > + formats[n++] = GL_COMPRESSED_RGBA_BPTC_UNORM; > + formats[n++] = GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM; > + formats[n++] = GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT; > + formats[n++] = GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT; > + } > + > /* Required by EXT_texture_compression_rgtc in GLES. */ > if (_mesa_is_gles3(ctx) && > _mesa_has_EXT_texture_compression_rgtc(ctx)) { > formats[n++] = GL_COMPRESSED_RED_RGTC1_EXT; > formats[n++] = GL_COMPRESSED_SIGNED_RED_RGTC1_EXT; > formats[n++] = GL_COMPRESSED_RED_GREEN_RGTC2_EXT; > formats[n++] = GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT; > } > > if (ctx->API == API_OPENGLES) { _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
