[Mesa-dev] [PATCH] mesa: enable ASTC/ETC1 compressed textures
Juan A. Suarez Romero
jasuarez at igalia.com
Wed Jan 24 16:02:19 UTC 2018
On Mon, 2018-01-22 at 08:41 +0200, Tapani Pälli wrote:
>
> On 01/19/2018 12:44 PM, Juan A. Suarez Romero wrote:
> > Anyone could take a look at this patch?
> >
>
> Can you pinpoint where the mentioned tests are located, which suite?
Yes. It's in the OpenGL CTS testsuite, by Khronos.
J.A.
>
> > Thanks in advance!
> >
> >
> > J.A.
> >
> > On Thu, 2018-01-11 at 16:35 +0100, Juan A. Suarez Romero wrote:
> > > Enable these kind of texture when proper extensions are available.
> > >
> > > Fixes KHR-GLES2.texture_3d.* with these textures.
> > > ---
> > > src/mesa/main/teximage.c | 26 +++++++++++++++++++-------
> > > 1 file changed, 19 insertions(+), 7 deletions(-)
> > >
> > > diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
> > > index e5f8bb0718f..a9940de88b1 100644
> > > --- a/src/mesa/main/teximage.c
> > > +++ b/src/mesa/main/teximage.c
> > > @@ -1487,6 +1487,9 @@ _mesa_target_can_be_compressed(const struct gl_context *ctx, GLenum target,
> > > break;
> > > case GL_TEXTURE_3D:
> > > switch (layout) {
> > > + case MESA_FORMAT_LAYOUT_ETC1:
> > > + target_can_be_compresed = ctx->Extensions.OES_compressed_ETC1_RGB8_texture;
> > > + break;
> > > case MESA_FORMAT_LAYOUT_ETC2:
> > > /* See ETC2/EAC comment in case GL_TEXTURE_CUBE_MAP_ARRAY. */
> > > if (_mesa_is_gles3(ctx))
> > > @@ -4648,10 +4651,12 @@ out:
> > > */
> > > static GLboolean
> > > compressed_subtexture_target_check(struct gl_context *ctx, GLenum target,
> > > - GLint dims, GLenum format, bool dsa,
> > > + GLint dims, GLenum intFormat, bool dsa,
> > > const char *caller)
> > > {
> > > GLboolean targetOK;
> > > + mesa_format format;
> > > + enum mesa_format_layout layout;
> > >
> > > if (dsa && target == GL_TEXTURE_RECTANGLE) {
> > > _mesa_error(ctx, GL_INVALID_OPERATION, "%s(invalid target %s)", caller,
> > > @@ -4712,21 +4717,28 @@ compressed_subtexture_target_check(struct gl_context *ctx, GLenum target,
> > > * which is (at this time) only bptc. Otherwise we'd say s3tc (and
> > > * more) are valid here, which they are not, but of course not
> > > * mentioned by core spec.
> > > + *
> > > + * We add also other formats supported due extensions.
> > > */
> > > - switch (format) {
> > > + format = _mesa_glenum_to_compressed_format(intFormat);
> > > + layout = _mesa_get_format_layout(format);
> > > + switch (layout) {
> > > /* These are the only 3D compression formats supported at this time */
> > > - case GL_COMPRESSED_RGBA_BPTC_UNORM:
> > > - case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:
> > > - case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT:
> > > - case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT:
> > > + case MESA_FORMAT_LAYOUT_BPTC:
> > > /* valid format */
> > > break;
> > > + case MESA_FORMAT_LAYOUT_ASTC:
> > > + targetOK = ctx->Extensions.KHR_texture_compression_astc_ldr;
> > > + break;
> > > + case MESA_FORMAT_LAYOUT_ETC1:
> > > + targetOK = ctx->Extensions.OES_compressed_ETC1_RGB8_texture;
> > > + break;
> > > default:
> > > /* invalid format */
> > > _mesa_error(ctx, GL_INVALID_OPERATION,
> > > "%s(invalid target %s for format %s)", caller,
> > > _mesa_enum_to_string(target),
> > > - _mesa_enum_to_string(format));
> > > + _mesa_enum_to_string(intFormat));
> > > return GL_TRUE;
> > > }
> > > break;
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >
>
>
More information about the mesa-dev
mailing list