Reviewed-by: Marek Olšák <marek.ol...@amd.com> Marek
On Tue, Jan 14, 2014 at 11:19 PM, Ian Romanick <i...@freedesktop.org> wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > The ES and desktop GL specs diverge here. Yay! > > In desktop OpenGL, the driver can perform online compression of > uncompressed texture data. GL_NUM_COMPRESSED_TEXTURE_FORMATS and > GL_COMPRESSED_TEXTURE_FORMATS give the application a list of formats > that it could ask the driver to compress with some expectation of > quality. The GL_ARB_texture_compression spec calls this "suitable for > general-purpose usage." As noted above, this means > GL_COMPRESSED_RGBA_S3TC_DXT1_EXT is not included in the list. > > In OpenGL ES, the driver never performs compression. > GL_NUM_COMPRESSED_TEXTURE_FORMATS and GL_COMPRESSED_TEXTURE_FORMATS give > the application a list of formats that the driver can receive from the > application. It is the *complete* list of formats. The > GL_EXT_texture_compression_s3tc spec says: > > "New State for OpenGL ES 2.0.25 and 3.0.2 Specifications > > The queries for NUM_COMPRESSED_TEXTURE_FORMATS and > COMPRESSED_TEXTURE_FORMATS include COMPRESSED_RGB_S3TC_DXT1_EXT, > COMPRESSED_RGBA_S3TC_DXT1_EXT, COMPRESSED_RGBA_S3TC_DXT3_EXT, > and COMPRESSED_RGBA_S3TC_DXT5_EXT." > > Note that the addition is only to the OpenGL ES specification! > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> > See-also: > http://lists.freedesktop.org/archives/mesa-dev/2013-October/047439.html > Cc: Marek Olšák <marek.ol...@amd.com> > Cc: Brian Paul <bri...@vmware.com> > Cc: "10.0" <mesa-sta...@lists.freedesktop.org> > --- > src/mesa/main/texcompress.c | 37 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 37 insertions(+) > > diff --git a/src/mesa/main/texcompress.c b/src/mesa/main/texcompress.c > index e71d0c4..47ad306 100644 > --- a/src/mesa/main/texcompress.c > +++ b/src/mesa/main/texcompress.c > @@ -263,6 +263,43 @@ _mesa_get_compressed_formats(struct gl_context *ctx, > GLint *formats) > else { > n += 3; > } > + > + /* The ES and desktop GL specs diverge here. > + * > + * In desktop OpenGL, the driver can perform online compression of > + * uncompressed texture data. GL_NUM_COMPRESSED_TEXTURE_FORMATS and > + * GL_COMPRESSED_TEXTURE_FORMATS give the application a list of > + * formats that it could ask the driver to compress with some > + * expectation of quality. The GL_ARB_texture_compression spec > + * calls this "suitable for general-purpose usage." As noted > + * above, this means GL_COMPRESSED_RGBA_S3TC_DXT1_EXT is not > + * included in the list. > + * > + * In OpenGL ES, the driver never performs compression. > + * GL_NUM_COMPRESSED_TEXTURE_FORMATS and > + * GL_COMPRESSED_TEXTURE_FORMATS give the application a list of > + * formats that the driver can receive from the application. It > + * is the *complete* list of formats. The > + * GL_EXT_texture_compression_s3tc spec says: > + * > + * "New State for OpenGL ES 2.0.25 and 3.0.2 Specifications > + * > + * The queries for NUM_COMPRESSED_TEXTURE_FORMATS and > + * COMPRESSED_TEXTURE_FORMATS include > + * COMPRESSED_RGB_S3TC_DXT1_EXT, > + * COMPRESSED_RGBA_S3TC_DXT1_EXT, > + * COMPRESSED_RGBA_S3TC_DXT3_EXT, and > + * COMPRESSED_RGBA_S3TC_DXT5_EXT." > + * > + * Note that the addition is only to the OpenGL ES specification! > + */ > + if (_mesa_is_gles(ctx)) { > + if (formats) { > + formats[n++] = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; > + } else { > + n += 1; > + } > + } > } > > /* The GL_OES_compressed_ETC1_RGB8_texture spec says: > -- > 1.8.1.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev