blob: 91b81e552c07b56354417c08c28760d5b5b27beb [file] [log] [blame]
Conformance Test
CTS_ARB_shader_group_vote
Contributors
Filip Demczewski, Mobica
Contacts
Filip Demczewski, Mobica (filip.demczewski 'at' mobica.com)
Status
In review
Version
March 8, 2017 (version 1)
Dependencies
OpenGL 4.3 is required.
ARB_shader_group_vote extension is required.
ARB_compute_shader extension is required.
This specification is written against:
- ARB_shader_group_vote specification,
- OpenGL 4.3 (Compatibility Profile) specification.
Overview
Test is validating new built-in functions that can allow
shader invocations within one group to generate single result
for different input data in each invocation. This collective
choice can be achieved by using three new functions:
- bool anyInvocationARB(bool value);
- bool allInvocationsARB(bool value);
- bool allInvocationsEqualARB(bool value);
New Tests
Availability test
* Check if extension is supported
* Check if GL_ARB_shader_group_vote GLSL preprocessor define is
available
* Check if new built-in functions are available to call
All test cases below are composed from the following steps:
- Compose shader with use one of new built-in functions
- Render primitive where final color of each pixel is
related to the function's returned value: (1, 1, 1, 1) if
function returned true and (0, 0, 0, 1) otherwise
- Validate all pixels within the invocation's group against
desired colors
- Repeat test with functions called in conditionally
executed code and expect same results
(when condition is not met pixel should be filled with
expected color to simplify validation)
Function allInvocationsARB test
* Test new built-in function allInvocationsARB. Condition passed
as a parameter should diverge between invocations. All pixels
should have (0, 0, 0, 1) color.
* Test new built-in function allInvocationsARB. Condition passed
as a parameter should be true for all invocations. All pixels
should have (1, 1, 1, 1) color.
Function anyInvocationARB test
* Test new built-in function anyInvocationARB. Condition passed
as a parameter should be true for one invocation within the
group. All pixels should have (1, 1, 1, 1) color.
* Test new build-in function anyInvocationARB. Condition passed
as a parameter should be false for every invocation within the
group. All pixels should have (0, 0, 0, 1) color.
Function allInvocationsEqualARB test
* Test new built-in function allInvocationsEqualARB. Condition
passed as a parameter should diverge between invocations.
All pixels should have (0, 0, 0, 1) color.
* Test new built-in function allInvocationsEqualARB. Condition
passed as a parameter should be true for all invocations.
All pixels should have (1, 1, 1, 1) color.
* Test new built-in function allInvocationsEqualARB. Condition
passed as a parameter should be false for all invocations.
All pixels should have (1, 1, 1, 1) color.
Revision History
Revision 1, 8 March, 2017 (Filip Demczewski)
- Intial version;