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;