"Juan A. Suarez Romero" <jasua...@igalia.com> writes: > Enable these kind of texture when proper extensions are available.
In the subject, s/textures/3D textures/ since it's surprising to hear that they're not supported yet :) > 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. I think the explanation could use some expansion, like: "The OES_texture_3D spec doesn't specify any list of supported formats for CompressedTex*Image3D, and OES_texture_compressed_ETC1_RGB8_texture mentions only 2D for a function supporting it. However, given a KHR conformance test expects that the two work together in the obvious way, follow the tests not the specs." > */ > - 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; > -- > 2.14.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev