Conformance Test

    CTS_ARB_shader_atomic_counter_ops

Contributors

    Filip Demczewski, Mobica

Contacts

    Filip Demczewski, Mobica (filip.demczewski 'at' mobica.com)

Status

    In review

Version

    February 17, 2017 (version 1)

Dependencies

    OpenGL 4.2 is required.

    ARB_shader_atomic_counter extension is required.
    ARB_shader_atomic_counter_ops extension is required.

    This specification is written against:
      - ARB_shader_atomic_counter_ops specification,
      - OpenGL 4.5 (core) specification.

Overview

    Test is validating new build-in functions that can operate on atomic counters
    by comparing results to calculations done out of the shader code.
    Tested operations:
     - Addition and subtraction
     - Minimum and maximum
     - Bitwise operations
     - Exchange operation, compare and exchange operation

New Tests

    All test cases are composed from following steps:
     - create a buffer for atomic counters (GL_ATOMIC_COUNTER_BUFFER) and fill it
       with initial values
     - perform atomic operations on buffer values in the shader
     - validate shader output values against values calculated in the test code

    Addition and subtraction test
     * Test atomicCounterAddARB function
     * Test atomicCounterSubtractARB function
     * Additionally test values returned from functions listed above as we can be
       sure that they should differ from the counter buffer values

    Minimum and maximum test
     * Test atomicCounterMinARB function
     * Test atomicCounterMaxARB function

    Bitwise operations test
     * Test atomicCounterAndARB function
     * Test atomicCounterOrARB function
     * Test atomicCounterXorARB function

    Exchange operations test
     * Test atomicCounterExchangeARB function
     * Test atomicCounterCompSwapARB function

Revision History

    Revision 1, 17 February, 2017 (Filip Demczewski)
      - Intial version;