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?

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

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to