[Piglit] [PATCH 07/12] glx_arb_create_context: Verify that the invalid attributes are rejected

Chad Versace chad.versace at linux.intel.com
Tue Dec 20 13:44:24 PST 2011


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 12/20/2011 01:01 PM, Ian Romanick wrote:
> On 12/20/2011 12:06 PM, Chad Versace wrote:
>> On 12/14/2011 10:47 AM, Ian Romanick wrote:
>>> From: Ian Romanick<ian.d.romanick at intel.com>
>>>
>>> NVIDIA's closed-source driver fails this test because it generates the
>>> wrong X error (BadMatch instead of BadValue).  It correctly does not
>>> create the context.
>>>
>>> AMD's closed-source driver fails this test becuase it creates contexts
>>> with invalid attributes.
>>>
>>> Signed-off-by: Ian Romanick<ian.d.romanick at intel.com>
>>> ---
>>>   tests/all.tests                                    |    1 +
>>>   .../spec/glx_arb_create_context/CMakeLists.gl.txt  |    1 +
>>>   .../glx_arb_create_context/invalid-attribute.c     |   87 ++++++++++++++++++++
>>>   3 files changed, 89 insertions(+), 0 deletions(-)
>>>   create mode 100644 tests/spec/glx_arb_create_context/invalid-attribute.c
>>>
>>
>> I think that the probing for GLX_CONTEXT_PROFILE_MASK_ARB needs to be more thorough and
>> check that bits {(1<<n)|n=3..31} are invalid.
>>
>> Perhaps change the signature of try_attribute() to try_attribute(int attr, int value) and
>> loop over those invalid bits?
> 
> The check here is that it's invalid to ask for *any* profile when the GL version is less than 3.2.  I wanted to check that GLX_CONTEXT_PROFILE_MASK_ARB is rejected because of the attribute and not because of its value.  Should I add a comment to that effect?

I was led to think that the attribute value did matter because try_attribute(GLX_CONTEXT_PROFILE_MASK_ARB)
special-cases the attribute value to non-zero. A comment would have helped.

But, since the actual intention is to "check that GLX_CONTEXT_PROFILE_MASK_ARB is rejected because of the 
attribute and not because of its value" for GL < 3.2, then I think the test is invalid. If I'm
interpreting the spec correctly, the presence of GLX_CONTEXT_PROFILE_MASK_ARB is ignored if the
requested GL version is < 3.2 and context creation proceeds regardless of the attribute's value.
- From the spec:
    If the requested OpenGL version is less than 3.2,
    GLX_CONTEXT_PROFILE_MASK_ARB is ignored and the functionality of the
    context is determined solely by the requested version.

> Once we add support for GLX_ARB_create_context_profile, I think we should have a test like the existing flags test.  At that time, I'm inclined to have it as a separate test.

After reviewing the spec quote above, I think that the check for GLX_CONTEXT_PROFILE_MASK_ARB should be completely removed
this test.

- ----
Chad Versace
chad.versace at linux.intel.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJO8QG3AAoJEAIvNt057x8iNqEQAJp0TsK7KCUWWn5Bxk3HW8Mg
qA/hIu1rxdWhqPKCmndYpAyefOdngDA/+FydGeXGD5qyLG2Gs1Z7SA2UyPQIV8Cq
KbZ9vHOB3H80X0QKI5DyGj43ZyVvmQK5JchUxgu2H/L+x2oFaWRoJLPK55GlqpHu
HIJOXQ26Y+MxPgmavymgE9yXxukM2xtQSWOwAKRKVNG+N73bZbn7Eg4pZ5DyatjK
ifdcenuaZ8VPSb8m2vdGppxII1EXjjCjpLo93j2B3IyS1wraLXdupMA+MZzKHjKu
qQsX2QgSjcjDB9Fzjt6OYNUJqvb61cOHaPVAelmUeLo45AQR28cuDf9ZMryvLExU
gAv+Ry/t6RL/FtURJeUHeK9u+AGIb+Wgw8lbRxkOBOdwjYiP4Cdoxp2y2vNfxi09
BCv72oJJc2EWl/rx5L2E5KmwJqG9OCa3FBgcbAZlc8FywyDlxjRYuh+f8pgie9QK
TtKPGMTbfVoCoZQ6ztBOs/SQQx9vSqTjz7Nq54yKqSV4Teft5taxtO4FudW2Zq+G
Yr/fwkirtFfMDUJQv6bvKNgv/4MMeBRqH+nHq/g1Q/ScPyIqvGw7aa23j19At1i1
oKIE+k16PlcEGbzX0OIIMUdO05lqYfvoeHo/fkeEctqb7TFZyUc3vq5naC0ywFYY
Zg3qRFhWc1IaMCRPdbO8
=way/
-----END PGP SIGNATURE-----


More information about the Piglit mailing list