<?xml version="1.0"?>
<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">

<OpenGLAPI>

<category name="GL_AMD_performance_monitor" number="360">

    <function name="GetPerfMonitorGroupsAMD" offset="assign">
        <param name="numGroups" type="GLint *"/>
        <param name="groupsSize" type="GLsizei"/>
        <param name="groups" type="GLuint *"/>
    </function>

    <function name="GetPerfMonitorCountersAMD" offset="assign">
        <param name="group" type="GLuint"/>
        <param name="numCounters" type="GLint *"/>
        <param name="maxActiveCounters" type="GLint *"/>
        <param name="countersSize" type="GLsizei"/>
        <param name="counters" type="GLuint *"/>
    </function>

    <function name="GetPerfMonitorGroupStringAMD" offset="assign">
        <param name="group" type="GLuint"/>
        <param name="bufSize" type="GLsizei"/>
        <param name="length" type="GLsizei *"/>
        <param name="groupString" type="GLchar *"/>
    </function>

    <function name="GetPerfMonitorCounterStringAMD" offset="assign">
        <param name="group" type="GLuint"/>
        <param name="counter" type="GLuint"/>
        <param name="bufSize" type="GLsizei"/>
        <param name="length" type="GLsizei *"/>
        <param name="counterString" type="GLchar *"/>
    </function>

    <function name="GetPerfMonitorCounterInfoAMD" offset="assign">
        <param name="group" type="GLuint"/>
        <param name="counter" type="GLuint"/>
        <param name="pname" type="GLenum"/>
        <param name="data" type="GLvoid *"/>
    </function>

    <function name="GenPerfMonitorsAMD" offset="assign">
        <param name="n" type="GLsizei"/>
        <param name="monitors" type="GLuint *"/>
    </function>

    <function name="DeletePerfMonitorsAMD" offset="assign">
        <param name="n" type="GLsizei"/>
        <param name="monitors" type="GLuint *"/>
    </function>

    <function name="SelectPerfMonitorCountersAMD" offset="assign">
        <param name="monitor" type="GLuint"/>
        <param name="enable" type="GLboolean"/>
        <param name="group" type="GLuint"/>
        <param name="numCounters" type="GLint"/>
        <param name="counterList" type="GLuint *"/>
    </function>

    <function name="BeginPerfMonitorAMD" offset="assign">
        <param name="monitor" type="GLuint"/>
    </function>

    <function name="EndPerfMonitorAMD" offset="assign">
        <param name="monitor" type="GLuint"/>
    </function>

    <function name="GetPerfMonitorCounterDataAMD" offset="assign">
        <param name="monitor" type="GLuint"/>
        <param name="pname" type="GLenum"/>
        <param name="dataSize" type="GLsizei"/>
        <param name="data" type="GLuint *"/>
        <param name="bytesWritten" type="GLint *"/>
    </function>

    <enum name="COUNTER_TYPE_AMD" value="0x8BC0"/>
    <enum name="COUNTER_RANGE_AMD" value="0x8BC1"/>
    <enum name="UNSIGNED_INT64_AMD" value="0x8BC2"/>
    <enum name="PECENTAGE_AMD" value="0x8BC3"/>
    <enum name="PERFMON_RESULT_AVAILABLE_AMD" value="0x8BC4"/>
    <enum name="PERFMON_RESULT_SIZE_AMD" value="0x8BC5"/>
    <enum name="PERFMON_RESULT_AMD" value="0x8BC6"/>
</category>

</OpenGLAPI>
