Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu>
---
 tests/all.py                                       |   4 +
 tests/spec/arb_texture_view/CMakeLists.gles3.txt   |   4 +
 tests/spec/arb_texture_view/formats.c              | 100 ++++++++++++++-------
 tests/spec/arb_texture_view/queries.c              |   5 ++
 tests/spec/arb_texture_view/targets.c              |  13 ++-
 .../arb_texture_view/texture-immutable-levels.c    |   7 ++
 6 files changed, 102 insertions(+), 31 deletions(-)

diff --git a/tests/all.py b/tests/all.py
index f57be72..4815101 100644
--- a/tests/all.py
+++ b/tests/all.py
@@ -2601,6 +2601,10 @@ with profile.group_manager(
       'sampling-2d-array-as-cubemap-array')
     g(['arb_texture_view-sampling-2d-array-as-2d-layer_gles3'],
       'sampling-2d-array-as-2d-layer')
+    g(['arb_texture_view-texture-immutable-levels_gles3'], 'immutable_levels')
+    g(['arb_texture_view-formats_gles3'], 'formats')
+    g(['arb_texture_view-queries_gles3'], 'queries')
+    g(['arb_texture_view-targets_gles3'], 'targets')
 
 with profile.group_manager(
         PiglitGLTest,
diff --git a/tests/spec/arb_texture_view/CMakeLists.gles3.txt 
b/tests/spec/arb_texture_view/CMakeLists.gles3.txt
index 2096f20..ad3bae3 100644
--- a/tests/spec/arb_texture_view/CMakeLists.gles3.txt
+++ b/tests/spec/arb_texture_view/CMakeLists.gles3.txt
@@ -7,3 +7,7 @@ piglit_add_executable(arb_texture_view-rendering-target_gles3 
rendering_target.c
 piglit_add_executable(arb_texture_view-sampling-2d-array-as-2d-layer_gles3 
sampling-2d-array-as-2d-layer.c)
 piglit_add_executable(arb_texture_view-sampling-2d-array-as-cubemap_gles3 
sampling-2d-array-as-cubemap.c)
 
piglit_add_executable(arb_texture_view-sampling-2d-array-as-cubemap-array_gles3 
sampling-2d-array-as-cubemap-array.c)
+piglit_add_executable(arb_texture_view-formats_gles3 formats.c common.c)
+piglit_add_executable(arb_texture_view-queries_gles3 queries.c)
+piglit_add_executable(arb_texture_view-targets_gles3 targets.c common.c)
+piglit_add_executable(arb_texture_view-texture-immutable-levels_gles3 
texture-immutable-levels.c)
diff --git a/tests/spec/arb_texture_view/formats.c 
b/tests/spec/arb_texture_view/formats.c
index c905fe2..1db2445 100644
--- a/tests/spec/arb_texture_view/formats.c
+++ b/tests/spec/arb_texture_view/formats.c
@@ -42,6 +42,7 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
 
        config.supports_gl_compat_version = 15;
        config.supports_gl_core_version = 31;
+       config.supports_gl_es_version = 31;
 
        config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
 
@@ -115,11 +116,7 @@ test_format_errors(GLenum format_class)
                GL_RG32UI,
                GL_RGBA16I,
                GL_RG32I,
-               GL_RGBA16,
-               GL_RGBA16_SNORM,
                /* 48 bit */
-               GL_RGB16,
-               GL_RGB16_SNORM,
                GL_RGB16F,
                GL_RGB16UI,
                GL_RGB16I,
@@ -136,9 +133,7 @@ test_format_errors(GLenum format_class)
                GL_R32I,
                GL_RGB10_A2,
                GL_RGBA8,
-               GL_RG16,
                GL_RGBA8_SNORM,
-               GL_RG16_SNORM,
                GL_SRGB8_ALPHA8,
                GL_RGB9_E5,
                /* 24 bits */
@@ -154,9 +149,7 @@ test_format_errors(GLenum format_class)
                GL_RG8I,
                GL_R16I,
                GL_RG8,
-               GL_R16,
                GL_RG8_SNORM,
-               GL_R16_SNORM,
                /* 8 bits */
                GL_R8UI,
                GL_R8I,
@@ -182,8 +175,22 @@ test_format_errors(GLenum format_class)
                GL_COMPRESSED_SLUMINANCE,
                GL_COMPRESSED_SLUMINANCE_ALPHA,
                /* format that is legal for TexStorage but not in table */
-               GL_RGB12
+               GL_RGBA4,
+               /* 16-bit norm formats */
+               GL_RGBA16,
+               GL_RGBA16_SNORM,
+               GL_RGB16,
+               GL_RGB16_SNORM,
+               GL_RG16,
+               GL_RG16_SNORM,
+               GL_R16,
+               GL_R16_SNORM,
        };
+       int totalFormats = ARRAY_SIZE(illegalFormats);
+
+       if (piglit_is_gles() &&
+           !piglit_is_extension_supported("GL_EXT_texture_norm16"))
+               totalFormats -= 8;
 
        glGenTextures(1, &tex);   /* orig tex */
        glBindTexture(target, tex);
@@ -192,67 +199,96 @@ test_format_errors(GLenum format_class)
        case GL_VIEW_CLASS_128_BITS:
                glTexStorage2D(target, levels, GL_RGBA32F, width, height);
                numFormats = update_valid_arrays(legalFormats, illegalFormats,
-                                   ARRAY_SIZE(illegalFormats),
+                                   totalFormats,
                                    GL_RGBA32F, GL_RGBA32UI, GL_RGBA32I, 0);
                break;
        case GL_VIEW_CLASS_96_BITS:
                glTexStorage2D(target, levels, GL_RGB32F, width, height);
                numFormats = update_valid_arrays(legalFormats, illegalFormats,
-                                   ARRAY_SIZE(illegalFormats),
+                                   totalFormats,
                                    GL_RGB32F, GL_RGB32UI, GL_RGB32I, 0);
                break;
        case GL_VIEW_CLASS_64_BITS:
                glTexStorage2D(target, levels, GL_RGBA16F, width, height);
                numFormats = update_valid_arrays(legalFormats, illegalFormats,
-                                   ARRAY_SIZE(illegalFormats),
+                                   totalFormats,
                                    GL_RGBA16F, GL_RG32F, GL_RGBA16UI,
-                                   GL_RG32UI, GL_RGBA16I, GL_RG32I, GL_RGBA16,
-                                   GL_RGBA16_SNORM, 0);
+                                   GL_RG32UI, GL_RGBA16I, GL_RG32I, 0);
+               if (!piglit_is_gles() ||
+                   piglit_is_extension_supported("GL_EXT_texture_norm16")) {
+                       numFormats +=
+                               update_valid_arrays(&legalFormats[numFormats],
+                                                   illegalFormats,
+                                                   totalFormats,
+                                                   GL_RGBA16, GL_RGBA16_SNORM, 
0);
+               }
                break;
        case GL_VIEW_CLASS_48_BITS:
-               glTexStorage2D(target, levels, GL_RGB16, width, height);
+               glTexStorage2D(target, levels, GL_RGB16F, width, height);
                numFormats = update_valid_arrays(legalFormats, illegalFormats,
-                                   ARRAY_SIZE(illegalFormats),
-                                   GL_RGB16, GL_RGB16_SNORM, GL_RGB16F,
-                                   GL_RGB16UI, GL_RGB16I, 0);
+                                   totalFormats,
+                                   GL_RGB16F, GL_RGB16UI, GL_RGB16I, 0);
+               if (!piglit_is_gles() ||
+                   piglit_is_extension_supported("GL_EXT_texture_norm16")) {
+                       numFormats +=
+                               update_valid_arrays(&legalFormats[numFormats],
+                                                   illegalFormats,
+                                                   totalFormats,
+                                                   GL_RGB16, GL_RGB16_SNORM, 
0);
+               }
                break;
        case GL_VIEW_CLASS_32_BITS:
                glTexStorage2D(target, levels, GL_RG16F, width, height);
                numFormats = update_valid_arrays(legalFormats, illegalFormats,
-                                   ARRAY_SIZE(illegalFormats),
+                                   totalFormats,
                                    GL_RG16F, GL_R11F_G11F_B10F, GL_R32F,
                                    GL_RGB10_A2UI, GL_RGBA8UI, GL_RG16UI,
                                    GL_R32UI, GL_RGBA8I, GL_RG16I,
-                                   GL_R32I, GL_RGB10_A2, GL_RGBA8, GL_RG16,
-                                   GL_RGBA8_SNORM, GL_RG16_SNORM,
+                                   GL_R32I, GL_RGB10_A2, GL_RGBA8,
+                                   GL_RGBA8_SNORM,
                                    GL_SRGB8_ALPHA8, GL_RGB9_E5, 0);
+               if (!piglit_is_gles() ||
+                   piglit_is_extension_supported("GL_EXT_texture_norm16")) {
+                       numFormats +=
+                               update_valid_arrays(&legalFormats[numFormats],
+                                                   illegalFormats,
+                                                   totalFormats,
+                                                   GL_RG16, GL_RG16_SNORM, 0);
+               }
                break;
        case GL_VIEW_CLASS_24_BITS:
                glTexStorage2D(target, levels, GL_RGB8, width, height);
                numFormats = update_valid_arrays(legalFormats, illegalFormats,
-                                   ARRAY_SIZE(illegalFormats),
+                                   totalFormats,
                                    GL_RGB8, GL_RGB8_SNORM, GL_SRGB8,
                                    GL_RGB8UI, GL_RGB8I, 0);
                break;
        case GL_VIEW_CLASS_16_BITS:
                glTexStorage2D(target, levels, GL_R16F, width, height);
                numFormats = update_valid_arrays(legalFormats, illegalFormats,
-                                   ARRAY_SIZE(illegalFormats),
+                                   totalFormats,
                                    GL_R16F, GL_RG8UI, GL_R16UI, GL_RG8I,
-                                   GL_R16I, GL_RG8, GL_R16, GL_RG8_SNORM,
-                                   GL_R16_SNORM, 0);
+                                   GL_R16I, GL_RG8, GL_RG8_SNORM, 0);
+               if (!piglit_is_gles() ||
+                   piglit_is_extension_supported("GL_EXT_texture_norm16")) {
+                       numFormats +=
+                               update_valid_arrays(&legalFormats[numFormats],
+                                                   illegalFormats,
+                                                   totalFormats,
+                                                   GL_R16, GL_R16_SNORM, 0);
+               }
                break;
        case GL_VIEW_CLASS_8_BITS:
                glTexStorage2D(target, levels, GL_R8I, width, height);
                numFormats = update_valid_arrays(legalFormats, illegalFormats,
-                                   ARRAY_SIZE(illegalFormats),
+                                   totalFormats,
                                    GL_R8UI, GL_R8I, GL_R8, GL_R8_SNORM, 0);
                break;
        case VIEW_CLASS_NOT_IN_TABLE:
-               glTexStorage2D(target, levels, GL_RGB12, width, height);
+               glTexStorage2D(target, levels, GL_RGBA4, width, height);
                numFormats = update_valid_arrays(legalFormats, illegalFormats,
-                                   ARRAY_SIZE(illegalFormats),
-                                   GL_RGB12, 0);
+                                   totalFormats,
+                                   GL_RGBA4, 0);
                break;
        default:
            assert(!"Invalid format_class\n");
@@ -272,7 +308,7 @@ test_format_errors(GLenum format_class)
 
        /* ensure TextureView  of illegal formats returns an error */
        pass = check_format_array(GL_INVALID_OPERATION,
-                                 ARRAY_SIZE(illegalFormats), illegalFormats,
+                                 totalFormats, illegalFormats,
                                  target, tex, levels, layers) && pass;
 err_out:
        glDeleteTextures(1, &tex);
@@ -301,12 +337,16 @@ piglit_init(int argc, char **argv)
 {
        bool pass = true;
 
+#ifdef PIGLIT_USE_OPENGL
        piglit_require_extension("GL_ARB_texture_storage");
        piglit_require_extension("GL_ARB_texture_view");
        piglit_require_extension("GL_EXT_texture_integer");
        piglit_require_extension("GL_ARB_texture_float");
        if (piglit_get_gl_version() < 31)
            piglit_require_extension("GL_ARB_texture_cube_map");
+#else
+       piglit_require_extension("GL_OES_texture_view");
+#endif
 
        X(test_format_errors(GL_VIEW_CLASS_128_BITS), "Format 128 bits 
validity");
        X(test_format_errors(GL_VIEW_CLASS_96_BITS), "Format 96 bits validity");
diff --git a/tests/spec/arb_texture_view/queries.c 
b/tests/spec/arb_texture_view/queries.c
index 8d4eb94..ab563be 100644
--- a/tests/spec/arb_texture_view/queries.c
+++ b/tests/spec/arb_texture_view/queries.c
@@ -34,6 +34,7 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
 
        config.supports_gl_compat_version = 15;
        config.supports_gl_core_version = 31;
+       config.supports_gl_es_version = 31;
 
        config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
 
@@ -295,8 +296,12 @@ void
 piglit_init(int argc, char **argv)
 {
        bool pass = true;
+#ifdef PIGLIT_USE_OPENGL
        piglit_require_extension("GL_ARB_texture_storage");
        piglit_require_extension("GL_ARB_texture_view");
+#else
+       piglit_require_extension("GL_OES_texture_view");
+#endif
 
        pass = query_levels_test();
        pass = query_layers_state() && pass;
diff --git a/tests/spec/arb_texture_view/targets.c 
b/tests/spec/arb_texture_view/targets.c
index ec28e0e..2dc4c3e 100644
--- a/tests/spec/arb_texture_view/targets.c
+++ b/tests/spec/arb_texture_view/targets.c
@@ -41,6 +41,7 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
 
        config.supports_gl_compat_version = 12;
        config.supports_gl_core_version = 31;
+       config.supports_gl_es_version = 31;
 
        config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
 
@@ -233,6 +234,7 @@ piglit_init(int argc, char **argv)
 {
        bool pass = true;
 
+#ifdef PIGLIT_USE_OPENGL
        piglit_require_extension("GL_ARB_texture_storage");
        piglit_require_extension("GL_ARB_texture_view");
        piglit_require_extension("GL_ARB_texture_cube_map_array");
@@ -241,21 +243,30 @@ piglit_init(int argc, char **argv)
 
        if (piglit_get_gl_version() < 31)
            piglit_require_extension("GL_ARB_texture_cube_map");
+#else
+       piglit_require_extension("GL_OES_texture_view");
+       piglit_require_extension("GL_OES_texture_cube_map_array");
+#endif
 
+#ifdef PIGLIT_USE_OPENGL
        X(test_target_errors(GL_TEXTURE_1D), "1D tex target validity");
+#endif
        X(test_target_errors(GL_TEXTURE_2D), "2D tex target validity");
        X(test_target_errors(GL_TEXTURE_3D), "3D tex target validity");
        X(test_target_errors(GL_TEXTURE_CUBE_MAP),
                "Cubemap tex target validity");
+#ifdef PIGLIT_USE_OPENGL
        X(test_target_errors(GL_TEXTURE_RECTANGLE),
                "Rectangle tex target validity");
        X(test_target_errors(GL_TEXTURE_1D_ARRAY),
                "1D Array tex target validity");
+#endif
        X(test_target_errors(GL_TEXTURE_2D_ARRAY),
                "2D Array tex target validity");
        X(test_target_errors(GL_TEXTURE_CUBE_MAP_ARRAY),
                "Cubemap Array tex target validity");
-       if 
(piglit_is_extension_supported("GL_ARB_texture_storage_multisample")) {
+       if (piglit_is_extension_supported("GL_ARB_texture_storage_multisample") 
||
+           
piglit_is_extension_supported("GL_OES_texture_storage_multisample_2d_array")) {
                X(test_target_errors(GL_TEXTURE_2D_MULTISAMPLE),
                  "Multisample 2D tex target validity");
                X(test_target_errors(GL_TEXTURE_2D_MULTISAMPLE_ARRAY),
diff --git a/tests/spec/arb_texture_view/texture-immutable-levels.c 
b/tests/spec/arb_texture_view/texture-immutable-levels.c
index a90a2cd..7ce7924 100644
--- a/tests/spec/arb_texture_view/texture-immutable-levels.c
+++ b/tests/spec/arb_texture_view/texture-immutable-levels.c
@@ -41,6 +41,7 @@
 PIGLIT_GL_TEST_CONFIG_BEGIN
 
        config.supports_gl_compat_version = 12;
+       config.supports_gl_es_version = 31;
 
 PIGLIT_GL_TEST_CONFIG_END
 
@@ -67,6 +68,7 @@ piglit_display(void)
 
        glGenTextures(ARRAY_SIZE(tex), tex);
 
+#ifdef PIGLIT_USE_OPENGL
        glBindTexture(GL_TEXTURE_1D, tex[0]);
        glTexStorage1D(GL_TEXTURE_1D, 3, GL_RGBA8, 32);
        glGetTexParameteriv(GL_TEXTURE_1D, GL_TEXTURE_IMMUTABLE_LEVELS, &level);
@@ -80,6 +82,7 @@ piglit_display(void)
                       "TEXTURE_VIEW_NUM_LEVELS to return identical results.");
                piglit_report_result(PIGLIT_FAIL);
        }
+#endif
 
        glBindTexture(GL_TEXTURE_2D, tex[1]);
        glTexStorage2D(GL_TEXTURE_2D, 3, GL_RGBA8, 32, 32);
@@ -136,5 +139,9 @@ piglit_display(void)
 void
 piglit_init(int argc, char *argv[])
 {
+#ifdef PIGLIT_USE_OPENGL
        piglit_require_extension("GL_ARB_texture_view");
+#else
+       piglit_require_extension("GL_OES_texture_view");
+#endif
 }
-- 
2.7.3

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to