From 7b4f80073728b83aaca230425f5ae1b0c2979ea4 Mon Sep 17 00:00:00 2001 From: Filip Demczewski Date: Wed, 4 Jan 2017 14:30:28 +0100 Subject: [PATCH] Added CTS_ARB_shader_ballot specification proposal affects: GL45-CTS.shader_ballot_tests.* components: OpenGL VK-GL-CTS issue: 143 Change-Id: Ida320ac444665f09edd86d6a69aae9af7515a237 --- .../openglcts/docs/specs/CTS_ARB_shader_ballot.txt | 96 ++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 external/openglcts/docs/specs/CTS_ARB_shader_ballot.txt diff --git a/external/openglcts/docs/specs/CTS_ARB_shader_ballot.txt b/external/openglcts/docs/specs/CTS_ARB_shader_ballot.txt new file mode 100644 index 0000000..8ccd4f3 --- /dev/null +++ b/external/openglcts/docs/specs/CTS_ARB_shader_ballot.txt @@ -0,0 +1,96 @@ +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; \ No newline at end of file -- 2.7.4