blob: 8ccd4f309cc2961c213787768fb1dd0744f96743 [file] [log] [blame]
Conformance Test
CTS_ARB_shader_ballot
Contributors
Filip Demczewski, Mobica
Contacts
Filip Demczewski, Mobica (filip.demczewski 'at' mobica.com)
Status
In review
Version
January 4, 2017 (version 1)
Dependencies
ARB_shader_ballot extension is required.
ARB_gpu_shader_int64 extension is required.
This specification is written against:
- ARB_shader_ballot specification,
- Revision 5 of the version 4.50 of the OpenGL Shading Language Specification
Overview
This tests verifies if functionality provided by ARB_shader_ballot
works as expected:
* Verify new GLSL built-in variables:
- gl_SubGroupInvocationARB
- gl_SubGroup*MaskARB
* Verify gl_SubGroupSizeARB uniform
* Verify new GLSL built-in functions:
- ballotARB
- readInvocationARB
- readFirstInvocationARB
New Tests
Availability test
* Iterate through all supported shaders.
Compile shader containing calls to all new built-in features
just to check if those are available.
Render primitive.
Expect no error.
Bitmasks verification test
* Iterate through all supported shaders.
Check each bitmask value according to the equation provided
in the specification (each bitmask contains bit values related
to the gl_SubGroupInvocationARB variable)
Function ballotARB test
* Iterate through all supported shaders.
a) Call ballotARB(false) - verify that returned value equals 0.
b) Call ballotARB(true) - verify that returned value is a bitfield
where the corresponding bits are set for all active invocations
in the sub-group.
c) Call ballotARB(X), where X is not dynamically uniform expression
that return true in some invocations and false in others. Perform
many calls for some practical distributions of true/false values
across invocations. Verify returned value.
Read functions test
* Iterate through all supported shaders.
a) Calculate color value for primitive dependent on invocation index.
Call readFirstInvocationARB with calculated color as a default value
passed as parameter. Final color should be same for all invocations -
first invocation completed dictates result for other invocations.
b) Save first invocation index to the SSBO. Calculate color value for
primitive dependent on invocation index. Call readInvocationARB with
calculated color as a default value passed as first parameter and
the saved invocation index as second. Final color should be same
for all invocations - first invocation completed dictates result
for other invocations.
Revision History
Revision 1, 4 January, 2017 (Filip Demczewski)
- Initial version;
Revision 2, 3 February, 2017 (Filip Demczewski)
- Tweaks to ballotARB and read functions tests;