[Mesa-dev] [PATCH] mesa: expose EXT_texture_compression_s3tc on GLES
Erik Faye-Lund
erik.faye-lund at collabora.com
Tue Oct 30 11:40:55 UTC 2018
On Fri, 2018-10-26 at 13:14 +0200, Erik Faye-Lund wrote:
> On Thu, 2018-10-25 at 10:45 -0400, Ilia Mirkin wrote:
> > Please confirm that this passes the piglit tests you sent to the
> > list
> > when run with ES2 forced, i.e. not ES3.
> > (MESA_GLES_VERSION_OVERRIDE=2.0 iirc.) I'm concerned that the extra
> > logic was only added to _mesa_es3_error_check_bla and not the es2
> > paths.
>
> Yeah, the test still passes.
>
> The _mesa_es3_error_check_format_and_type function seems to be a bit
> unfortunately named; it seems to be used for *all* es versions. I
> don't
> know why it's named like it is.
>
So, can I perhaps have your r-b? Or is there something else that needs
to be in place for this to move forward?
> But thanks for pointing this out to me; testing this revealed a
> porting-bug, where I tried to use glGetTexLevelParameteriv on gles2,
> which isn't supported. I'll send out and updated version of the
> piglit
> patches for that also.
>
> > On Thu, Oct 25, 2018 at 6:59 AM Erik Faye-Lund
> > <erik.faye-lund at collabora.com> wrote:
> > >
> > > From: Marek Olšák <marek.olsak at amd.com>
> > >
> > > The spec was modified to support GLES.
> > >
> > > Tested-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
> > > ---
> > > This replaces this patch:
> > > https://patchwork.freedesktop.org/patch/257423/
> > >
> > > docs/relnotes/18.3.0.html | 1 +
> > > src/mesa/main/extensions_table.h | 2 +-
> > > src/mesa/main/glformats.c | 11 +++++++++++
> > > 3 files changed, 13 insertions(+), 1 deletion(-)
> > >
> > > 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.
> > > <li>GL_AMD_multi_draw_indirect on all GL 4.x drivers.</li>
> > > <li>GL_AMD_query_buffer_object on i965, nvc0, r600,
> > > radeonsi.</li>
> > > <li>GL_EXT_disjoint_timer_query on radeonsi and most other
> > > Gallium
> > > drivers (ES extension)</li>
> > > +<li>GL_EXT_texture_compression_s3tc on all drivers (ES
> > > extension)<li>
> > > <li>GL_EXT_vertex_attrib_64bit on i965, nvc0, radeonsi.</li>
> > > <li>GL_EXT_window_rectangles on radeonsi.</li>
> > > <li>GL_KHR_texture_compression_astc_sliced_3d on radeonsi.</li>
> > > 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_
> > > OP
> > > ERATION;
> > > +
> > > switch (format) {
> > > case GL_BGRA_EXT:
> > > if (type != GL_UNSIGNED_BYTE || internalFormat != GL_BGRA)
> > > --
> > > 2.17.2
> > >
> > > _______________________________________________
> > > mesa-dev mailing list
> > > mesa-dev at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
> _______________________________________________
> 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