This field allows a test to declare support for any GLES version.  It
replaces fields 'supports_gl_es1' and 'supports_gl_es2'.

The valid range for the field is currently [1.0, 3.0), though it will soon
get bumped to [1.0,4.0).

One advantage of this field is that it introduces symmetry among the
'supports_gl' fields. Before this patch, two fields were integers
(supports_gl_core_version, supports_gl_compat_version) and two were
booleans (supports_gl_es1, supports_gl_es2). Now they're all integers and
behave similarly.

This patch also updates, with the subistition below, the tests that used
the old config fields.
    supports_gl_es2 = true --> supports_gl_es_version = 20
    supports_gl_es1 = true --> supports_gl_es_version = 10

Signed-off-by: Chad Versace <[email protected]>
---
 tests/gles2/gles2_shader_runner.c                  |  2 +-
 tests/glslparsertest/glslparsertest.c              | 10 ++--
 .../spec/ext_unpack_subimage/ext_unpack_subimage.c |  2 +-
 .../oes_compressed_etc1_rgb8_texture-basic.c       |  2 +-
 .../oes_compressed_etc1_rgb8_texture-miptree.c     |  2 +-
 .../oes_compressed_paletted_texture-api.c          |  2 +-
 tests/spec/oes_draw_texture/oes_draw_texture.c     |  2 +-
 tests/util/piglit-framework-gl.h                   | 28 ++++++++----
 .../util/piglit-framework-gl/piglit_gl_framework.c | 11 ++---
 .../piglit-framework-gl/piglit_wfl_framework.c     | 53 +++++++++++-----------
 10 files changed, 59 insertions(+), 55 deletions(-)

diff --git a/tests/gles2/gles2_shader_runner.c 
b/tests/gles2/gles2_shader_runner.c
index 94907e7..cdfe089 100644
--- a/tests/gles2/gles2_shader_runner.c
+++ b/tests/gles2/gles2_shader_runner.c
@@ -36,7 +36,7 @@
 
 PIGLIT_GL_TEST_CONFIG_BEGIN
 
-       config.supports_gl_es2 = true;
+       config.supports_gl_es_version = 20;
 
        config.window_width = 250;
        config.window_height = 250;
diff --git a/tests/glslparsertest/glslparsertest.c 
b/tests/glslparsertest/glslparsertest.c
index 98be84f..6a2ee9a 100644
--- a/tests/glslparsertest/glslparsertest.c
+++ b/tests/glslparsertest/glslparsertest.c
@@ -48,30 +48,30 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
                case 130:
                        config.supports_gl_compat_version = 10;
                        config.supports_gl_core_version = 0;
-                       config.supports_gl_es2 = false;
+                       config.supports_gl_es_version = 0;
                        break;
                case 140:
                case 150:
                case 330:
                        config.supports_gl_compat_version = 31;
                        config.supports_gl_core_version = 31;
-                       config.supports_gl_es2 = false;
+                       config.supports_gl_es_version = 0;
                        break;
                case 400:
                case 410:
                case 420:
                        config.supports_gl_compat_version = 40;
                        config.supports_gl_core_version = 40;
-                       config.supports_gl_es2 = false;
+                       config.supports_gl_es_version = 0;
                        break;
                default:
                        config.supports_gl_compat_version = 10;
-                       config.supports_gl_es2 = true;
+                       config.supports_gl_es_version = 20;
                        break;
                }
        } else {
                config.supports_gl_compat_version = 10;
-               config.supports_gl_es2 = true;
+               config.supports_gl_es_version = 20;
        }
 
        config.window_width = 200;
diff --git a/tests/spec/ext_unpack_subimage/ext_unpack_subimage.c 
b/tests/spec/ext_unpack_subimage/ext_unpack_subimage.c
index c442ccd..6ac8788 100644
--- a/tests/spec/ext_unpack_subimage/ext_unpack_subimage.c
+++ b/tests/spec/ext_unpack_subimage/ext_unpack_subimage.c
@@ -34,7 +34,7 @@
 
 PIGLIT_GL_TEST_CONFIG_BEGIN
 
-       config.supports_gl_es2 = true;
+       config.supports_gl_es_version = 20;
 
        config.window_width = 100;
        config.window_height = 100;
diff --git 
a/tests/spec/oes_compressed_etc1_rgb8_texture/oes_compressed_etc1_rgb8_texture-basic.c
 
b/tests/spec/oes_compressed_etc1_rgb8_texture/oes_compressed_etc1_rgb8_texture-basic.c
index d52d6fb..70e1a8c 100644
--- 
a/tests/spec/oes_compressed_etc1_rgb8_texture/oes_compressed_etc1_rgb8_texture-basic.c
+++ 
b/tests/spec/oes_compressed_etc1_rgb8_texture/oes_compressed_etc1_rgb8_texture-basic.c
@@ -29,7 +29,7 @@
 
 PIGLIT_GL_TEST_CONFIG_BEGIN
 
-       config.supports_gl_es1 = true;
+       config.supports_gl_es_version = 10;
 
        config.window_width = 100;
        config.window_height = 100;
diff --git 
a/tests/spec/oes_compressed_etc1_rgb8_texture/oes_compressed_etc1_rgb8_texture-miptree.c
 
b/tests/spec/oes_compressed_etc1_rgb8_texture/oes_compressed_etc1_rgb8_texture-miptree.c
index d038de4..717793c 100644
--- 
a/tests/spec/oes_compressed_etc1_rgb8_texture/oes_compressed_etc1_rgb8_texture-miptree.c
+++ 
b/tests/spec/oes_compressed_etc1_rgb8_texture/oes_compressed_etc1_rgb8_texture-miptree.c
@@ -55,7 +55,7 @@ static const int window_height = 2 * level0_height;
 
 PIGLIT_GL_TEST_CONFIG_BEGIN
 
-       config.supports_gl_es2 = true;
+       config.supports_gl_es_version = 20;
 
        config.window_width = window_width;
        config.window_height = window_height;
diff --git 
a/tests/spec/oes_compressed_paletted_texture/oes_compressed_paletted_texture-api.c
 
b/tests/spec/oes_compressed_paletted_texture/oes_compressed_paletted_texture-api.c
index cc044c6..4e6c75d 100644
--- 
a/tests/spec/oes_compressed_paletted_texture/oes_compressed_paletted_texture-api.c
+++ 
b/tests/spec/oes_compressed_paletted_texture/oes_compressed_paletted_texture-api.c
@@ -25,7 +25,7 @@
 
 PIGLIT_GL_TEST_CONFIG_BEGIN
 
-       config.supports_gl_es1 = true;
+       config.supports_gl_es_version = 10;
 
        config.window_width = 100;
        config.window_height = 100;
diff --git a/tests/spec/oes_draw_texture/oes_draw_texture.c 
b/tests/spec/oes_draw_texture/oes_draw_texture.c
index 5af7bb9..3542656 100644
--- a/tests/spec/oes_draw_texture/oes_draw_texture.c
+++ b/tests/spec/oes_draw_texture/oes_draw_texture.c
@@ -36,7 +36,7 @@
 
 PIGLIT_GL_TEST_CONFIG_BEGIN
 
-       config.supports_gl_es1 = true;
+       config.supports_gl_es_version = 10;
 
        config.window_width = 100;
        config.window_height = 100;
diff --git a/tests/util/piglit-framework-gl.h b/tests/util/piglit-framework-gl.h
index 4dd60de..6ab791a 100644
--- a/tests/util/piglit-framework-gl.h
+++ b/tests/util/piglit-framework-gl.h
@@ -73,6 +73,24 @@ enum piglit_gl_visual {
  */
 struct piglit_gl_test_config {
        /**
+        * If this field is non-zero, then the test is able to run under any
+        * OpenGL ES context whose version is backwards-compatible with the
+        * given version.
+        *
+        * For example, if this field's value is '10', then Piglit will
+        * attempt to run the test under an OpenGL ES 1.0 context. Likewise
+        * for '20' and OpenGL ES 2.0.
+        *
+        * If Piglit fails to acquire the waffle_config or to create the
+        * waffle_context, then it skips its attempt to run the test under
+        * an OpenGL ES context.
+        *
+        * If this field is 0, then the test is not able to run under an
+        * OpenGL ES context of any version.
+        */
+       int supports_gl_es_version;
+
+       /**
         * If this field is non-zero, then the test is able to run under a GL
         * core context having at least the given version.
         *
@@ -141,16 +159,6 @@ struct piglit_gl_test_config {
         */
        int supports_gl_compat_version;
 
-       /**
-        * The test is able to run under an OpenGL ES1 context.
-        */
-       bool supports_gl_es1;
-
-       /**
-        * The test is able to run under an OpenGL ES2 context.
-        */
-       bool supports_gl_es2;
-
        int window_width;
        int window_height;
 
diff --git a/tests/util/piglit-framework-gl/piglit_gl_framework.c 
b/tests/util/piglit-framework-gl/piglit_gl_framework.c
index aa6884b..aa24dd7 100644
--- a/tests/util/piglit-framework-gl/piglit_gl_framework.c
+++ b/tests/util/piglit-framework-gl/piglit_gl_framework.c
@@ -61,8 +61,7 @@ validate_supported_apis(const struct piglit_gl_test_config 
*test_config)
 {
        if (!test_config->supports_gl_core_version &&
            !test_config->supports_gl_compat_version &&
-           !test_config->supports_gl_es1 &&
-           !test_config->supports_gl_es2) {
+           !test_config->supports_gl_es_version) {
                printf("The test config supports no GL API's.\n");
                piglit_report_result(PIGLIT_FAIL);
        }
@@ -80,12 +79,8 @@ validate_supported_apis(const struct piglit_gl_test_config 
*test_config)
            && !test_config->supports_gl_compat_version) {
                piglit_report_result(PIGLIT_SKIP);
        }
-#elif defined(PIGLIT_USE_OPENGL_ES1)
-       if (!test_config->supports_gl_es1) {
-               piglit_report_result(PIGLIT_SKIP);
-       }
-#elif defined(PIGLIT_USE_OPENGL_ES2)
-       if (!test_config->supports_gl_es2) {
+#elif defined(PIGLIT_USE_OPENGL_ES1) || defined(PIGLIT_USE_OPENGL_ES2)
+       if (!test_config->supports_gl_es_version) {
                piglit_report_result(PIGLIT_SKIP);
        }
 #else
diff --git a/tests/util/piglit-framework-gl/piglit_wfl_framework.c 
b/tests/util/piglit-framework-gl/piglit_wfl_framework.c
index eb117b5..9f07f7e 100644
--- a/tests/util/piglit-framework-gl/piglit_wfl_framework.c
+++ b/tests/util/piglit-framework-gl/piglit_wfl_framework.c
@@ -31,8 +31,7 @@
 enum context_flavor {
        CONTEXT_GL_CORE,
        CONTEXT_GL_COMPAT,
-       CONTEXT_GL_ES1,
-       CONTEXT_GL_ES2,
+       CONTEXT_GL_ES,
 };
 
 struct piglit_wfl_framework*
@@ -197,23 +196,34 @@ choose_config(struct piglit_wfl_framework *wfl_fw,
                        head_attrib_list[i++] = 0;
                        break;
 
-               case CONTEXT_GL_ES1:
-                       assert(test_config->supports_gl_es1);
-
-                       i = 0;
-                       head_attrib_list[i++] = WAFFLE_CONTEXT_API;
-                       head_attrib_list[i++] = WAFFLE_CONTEXT_OPENGL_ES1;
-                       head_attrib_list[i++] = 0;
-                       break;
-
-               case CONTEXT_GL_ES2:
-                       assert(test_config->supports_gl_es2);
+               case CONTEXT_GL_ES: {
+                       int32_t waffle_context_api;
+                       assert(test_config->supports_gl_es_version);
+
+                       if (test_config->supports_gl_es_version >= 30) {
+                               printf("piglit: info: piglit does not yet "
+                                      "support OpenGL ES %d.%d\n",
+                                      test_config->supports_gl_es_version / 10,
+                                      test_config->supports_gl_es_version % 
10);
+                               piglit_report_result(PIGLIT_SKIP);
+                       } else if (test_config->supports_gl_es_version >= 20) {
+                               waffle_context_api = WAFFLE_CONTEXT_OPENGL_ES2;
+                       } else if (test_config->supports_gl_es_version >= 10) {
+                               waffle_context_api = WAFFLE_CONTEXT_OPENGL_ES1;
+                       } else {
+                               printf("piglit: error: config attribute "
+                                      "'supports_gl_es_version' has "
+                                      "bad value %d\n",
+                                      test_config->supports_gl_es_version);
+                               piglit_report_result(PIGLIT_FAIL);
+                       }
 
                        i = 0;
                        head_attrib_list[i++] = WAFFLE_CONTEXT_API;
-                       head_attrib_list[i++] = WAFFLE_CONTEXT_OPENGL_ES2;
+                       head_attrib_list[i++] = waffle_context_api;
                        head_attrib_list[i++] = 0;
                        break;
+                       }
 
                default:
                        assert(0);
@@ -360,25 +370,16 @@ make_context_current(struct piglit_wfl_framework *wfl_fw,
                }
        }
 
-#elif defined(PIGLIT_USE_OPENGL_ES1)
+#elif defined(PIGLIT_USE_OPENGL_ES1) || defined(PIGLIT_USE_OPENGL_ES2)
        ok = make_context_current_singlepass(wfl_fw, test_config,
-                                            CONTEXT_GL_ES1,
+                                            CONTEXT_GL_ES,
                                             partial_config_attrib_list);
 
        if (ok)
                return;
        else
-               printf("piglit: info: Failed to create GL ES1 context\n");
-
-#elif defined(PIGLIT_USE_OPENGL_ES2)
-       ok = make_context_current_singlepass(wfl_fw, test_config,
-                                            CONTEXT_GL_ES2,
-                                            partial_config_attrib_list);
+               printf("piglit: info: Failed to create GL ES context\n");
 
-       if (ok)
-               return;
-       else
-               printf("piglit: info: Failed to create GL ES2 context\n");
 #else
 #      error
 #endif
-- 
1.7.11.7

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to