Name

    CHROMIUM_trace_marker

Name Strings

    GL_CHROMIUM_trace_marker

Version

    Last Modifed Date: December 17, 2014

Dependencies

    OpenGL ES 2.0 is required.

Overview

    This extension lets you mark chromium style GPU traces. Each trace can
    specify both a category name and a trace name which will be associated
    with the trace.

    Each trace's beginning is marked by TraceBeginCHROMIUM and the end can
    optionally be marked by TraceEndCHROMIUM. If the trace's end is not marked,
    the trace will automatically end when the graphics context is destroyed.

    Multiple traces can happen simultaneously, however traces act as a stack
    and must be fully contained within one another. Therefore, you cannot
    have overlapping traces.

    Once a trace has been recorded, it is up to the application to decide
    how the traces should be displayed.

New Tokens

    None

New Procedures and Functions

    void TraceBeginCHROMIUM(const char* category_name, const char* trace_name)

    Marks the beginning of when a GPU trace should begin. Once the trace begins
    it lasts until the graphics context is destroyed or when TraceEndCHROMIUM
    is called.


    void TraceEndCHROMIUM()

    Marks the last trace to end, this will signal the application to stop
    tracing the previous trace.

Errors

    None.

New State

    None.

Revision History

    12/17/2014    Documented the extension

