Conformance Test

    CTS_KHR_no_error

Contributors

    Adam Czupryna, Mobica

Contacts

    Adam Czupryna, Mobica (adam.czupryna 'at' mobica.com)

Status

    In review

Version

    September 30, 2016 (version 1)

Dependencies

    OpenGL ES 2.0 or OpenGL 2.0 is required.

    KHR_no_error extension is required.

    This specification is written against:
      - KHR_no_error extension specification.

Overview

    This test verifies if it is possible to create context with
    CONTEXT_FLAG_NO_ERROR_BIT_KHR flag set in CONTEXT_FLAGS.

    It is not possible to check if API functions generates
    GL_NO_ERROR code even if they are called in a wrong way
    because behavior in that case is undefined and it could cause
    abnormal application termination.

New Tests

    Context Flag Test

	Check if KHR_no_error extension is supported.
        Check if CONTEXT_FLAG_NO_ERROR_BIT_KHR is defined.
        Create context with CONTEXT_FLAG_NO_ERROR_BIT_KHR flag set in CONTEXT_FLAGS.

Revision History

    Revision 1, 30 September, 2016 (Adam Czupryna)
     - Intial version;
