When a test requested a compatibility context, Piglit did not pass the
context version to Waffle. Instead, Piglit requested an unversioned
compatibility context and then verified with piglit_get_gl_version()
that the actual version was >= requested version.

This hack prevented Piglit from creating forward-compatible contexts,
because, according to thw EGL_KHR_create_context spec, "requesting
a forward-compatible context for OpenGL versions less than
3.0 will generate an error."

Remove the hack. Pass the requested context version to Waffle.

Signed-off-by: Chad Versace <[email protected]>
---
 .../piglit-framework-gl/piglit_wfl_framework.c     | 23 ++++++----------------
 1 file changed, 6 insertions(+), 17 deletions(-)

diff --git a/tests/util/piglit-framework-gl/piglit_wfl_framework.c 
b/tests/util/piglit-framework-gl/piglit_wfl_framework.c
index b5c2b0c..0d09032 100644
--- a/tests/util/piglit-framework-gl/piglit_wfl_framework.c
+++ b/tests/util/piglit-framework-gl/piglit_wfl_framework.c
@@ -260,22 +260,15 @@ make_config_attrib_list(const struct 
piglit_gl_test_config *test_config,
                case CONTEXT_GL_COMPAT:
                        assert(test_config->supports_gl_compat_version);
 
-                       /* Don't supply a GL version to Waffle.  When no
-                        * version is specified, GLX and EGL should return the
-                        * latest supported version. Later, we compare the
-                        * actual version, as reported by glGetString, against
-                        * the version required by the test.
-                        *
-                        * If a version != 1.0 is given to
-                        * waffle_choose_config, then a code path in waffle is
-                        * taken that requires GLX_ARB_create_context or
-                        * EGL_KHR_create_context. This trick enables tests
-                        * for which supports_gl_compat_version > 1.0 to run
-                        * on drivers that lack those extensions.
-                        */
                        i = 0;
                        head_attrib_list[i++] = WAFFLE_CONTEXT_API;
                        head_attrib_list[i++] = WAFFLE_CONTEXT_OPENGL;
+
+                       head_attrib_list[i++] = WAFFLE_CONTEXT_MAJOR_VERSION;
+                       head_attrib_list[i++] = 
test_config->supports_gl_compat_version / 10;
+
+                       head_attrib_list[i++] = WAFFLE_CONTEXT_MINOR_VERSION;
+                       head_attrib_list[i++] = 
test_config->supports_gl_compat_version % 10;
                        break;
 
                case CONTEXT_GL_ES: {
@@ -344,10 +337,6 @@ check_gl_version(const struct piglit_gl_test_config 
*test_config,
                 */
                return true;
        case CONTEXT_GL_COMPAT: {
-               /* Piglit did not supply a version to
-                * waffle_config_choose(). We must check the context's
-                * actual version.
-                */
                int actual_version = piglit_get_gl_version();
                if (actual_version >= test_config->supports_gl_compat_version)
                   return true;
-- 
1.8.4

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

Reply via email to