• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Conformance Test
2
3    CTS_ARB_shader_group_vote
4
5Contributors
6
7    Filip Demczewski, Mobica
8
9Contacts
10
11    Filip Demczewski, Mobica (filip.demczewski 'at' mobica.com)
12
13Status
14
15    In review
16
17Version
18
19    March 8, 2017 (version 1)
20
21Dependencies
22
23    OpenGL 4.3 is required.
24
25    ARB_shader_group_vote extension is required.
26    ARB_compute_shader extension is required.
27
28    This specification is written against:
29      - ARB_shader_group_vote specification,
30      - OpenGL 4.3 (Compatibility Profile) specification.
31
32Overview
33
34    Test is validating new built-in functions that can allow
35    shader invocations within one group to generate single result
36    for different input data in each invocation. This collective
37    choice can be achieved by using three new functions:
38     - bool anyInvocationARB(bool value);
39     - bool allInvocationsARB(bool value);
40     - bool allInvocationsEqualARB(bool value);
41
42New Tests
43
44    Availability test
45
46      * Check if extension is supported
47
48      * Check if GL_ARB_shader_group_vote GLSL preprocessor define is
49        available
50
51      * Check if new built-in functions are available to call
52
53    All test cases below are composed from the following steps:
54      - Compose shader with use one of new built-in functions
55      - Render primitive where final color of each pixel is
56        related to the function's returned value: (1, 1, 1, 1) if
57        function returned true and (0, 0, 0, 1) otherwise
58      - Validate all pixels within the invocation's group against
59        desired colors
60      - Repeat test with functions called in conditionally
61        executed code and expect same results
62        (when condition is not met pixel should be filled with
63        expected color to simplify validation)
64
65    Function allInvocationsARB test
66
67      * Test new built-in function allInvocationsARB. Condition passed
68        as a parameter should diverge between invocations. All pixels
69        should have (0, 0, 0, 1) color.
70
71      * Test new built-in function allInvocationsARB. Condition passed
72        as a parameter should be true for all invocations. All pixels
73        should have (1, 1, 1, 1) color.
74
75    Function anyInvocationARB test
76
77      * Test new built-in function anyInvocationARB. Condition passed
78        as a parameter should be true for one invocation within the
79        group. All pixels should have (1, 1, 1, 1) color.
80
81      * Test new build-in function anyInvocationARB. Condition passed
82        as a parameter should be false for every invocation within the
83        group. All pixels should have (0, 0, 0, 1) color.
84
85    Function allInvocationsEqualARB test
86
87      * Test new built-in function allInvocationsEqualARB. Condition
88        passed as a parameter should diverge between invocations.
89        All pixels should have (0, 0, 0, 1) color.
90
91      * Test new built-in function allInvocationsEqualARB. Condition
92        passed as a parameter should be true for all invocations.
93        All pixels should have (1, 1, 1, 1) color.
94
95      * Test new built-in function allInvocationsEqualARB. Condition
96        passed as a parameter should be false for all invocations.
97        All pixels should have (1, 1, 1, 1) color.
98
99
100Revision History
101
102    Revision 1, 8 March, 2017 (Filip Demczewski)
103      - Intial version;