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; -- 2.14.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev