From: Alejandro Piñeiro <[email protected]>

That check is based on the following paragraph at internalformat_query
spec (Error section):

    If the <internalformat> parameter to GetInternalformativ is not
    color-, depth- or stencil-renderable, then an INVALID_ENUM error is
    generated.

But that is not listed as an error condition on internalformat_query2
spec. query2 relies on INTERNALFORMAT_SUPPORTED for this:

    <internalformat> can be any value. The INTERNALFORMAT_SUPPORTED <pname>
    can be used to determine if the internal format is supported, and the
    other <pnames> are defined in terms of whether or not the format is
    supported.

More info on the Issue2 of query2 spec.

This change was tested on the following proprietary drivers:
  * 4.5.0 NVIDIA 352.55 on GeForce GTX 950
  * 4.5.13399 on AMD Radeon (TM) R9 380 Series

That already supports query2.
---

This would be also needed to avoid the test failing when query2
gets support on mesa/i965, that is an ongoing work:

https://bugs.freedesktop.org/show_bug.cgi?id=92687

 tests/spec/arb_internalformat_query/api-errors.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/tests/spec/arb_internalformat_query/api-errors.c 
b/tests/spec/arb_internalformat_query/api-errors.c
index ee21c17..9eb76f3 100644
--- a/tests/spec/arb_internalformat_query/api-errors.c
+++ b/tests/spec/arb_internalformat_query/api-errors.c
@@ -291,12 +291,18 @@ piglit_init(int argc, char **argv)
         *     "If the <internalformat> parameter to GetInternalformativ is
         *     not color-, depth- or stencil-renderable, then an INVALID_ENUM
         *     error is generated."
+        *
+        * However, GL_ARB_internalformat_query2 spec doesn't include that
+        * error condition, and in general, relies on for querying
+        * INTERNALFORMAT_SUPPORTED
         */
-       pass = try(valid_targets, ARRAY_SIZE(valid_targets),
-                  invalid_formats, ARRAY_SIZE(invalid_formats),
-                  valid_pnames, ARRAY_SIZE(valid_pnames),
-                  GL_INVALID_ENUM)
-               && pass;
+       if (!piglit_is_extension_supported("GL_ARB_internalformat_query2")) {
+         pass = try(valid_targets, ARRAY_SIZE(valid_targets),
+                    invalid_formats, ARRAY_SIZE(invalid_formats),
+                    valid_pnames, ARRAY_SIZE(valid_pnames),
+                    GL_INVALID_ENUM)
+           && pass;
+       }
 
        /* The GL_ARB_internalformat_query spec says:
         *
-- 
2.1.4

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

Reply via email to