15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    QCOM_driver_control
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_QCOM_driver_control
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContributors
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Maurice Ribble
125bd8deadSopenharmony_ci    Mikko Nurmi
135bd8deadSopenharmony_ci
145bd8deadSopenharmony_ciContact
155bd8deadSopenharmony_ci
165bd8deadSopenharmony_ci    Maurice Ribble (mribble 'at' qualcomm.com)
175bd8deadSopenharmony_ci
185bd8deadSopenharmony_ciStatus
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ci    Incomplete.
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ciVersion
235bd8deadSopenharmony_ci
245bd8deadSopenharmony_ci    Last Modified Date: May 5, 2009
255bd8deadSopenharmony_ci    Revision: #0.3
265bd8deadSopenharmony_ci
275bd8deadSopenharmony_ciNumber
285bd8deadSopenharmony_ci
295bd8deadSopenharmony_ci    OpenGL ES Extension #55
305bd8deadSopenharmony_ci
315bd8deadSopenharmony_ciDependencies
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ci    OpenGL ES 1.0 or higher is required.
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ci    This extension is written based on the wording of the OpenGL ES 2.0
365bd8deadSopenharmony_ci    specification.
375bd8deadSopenharmony_ci
385bd8deadSopenharmony_ciOverview
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ci    This extension exposes special control features in a driver to a
415bd8deadSopenharmony_ci    developer. A use of these controls would be to override state or
425bd8deadSopenharmony_ci    implement special modes of operation. One common example might be an
435bd8deadSopenharmony_ci    IFH or infinitely fast hardware mode. In this mode none of draw
445bd8deadSopenharmony_ci    commands would be sent to the GPU so no image would be displayed,
455bd8deadSopenharmony_ci    but all the driver software overhead would still happen thus
465bd8deadSopenharmony_ci    enabling developers to analyze driver overhead separate from GPU
475bd8deadSopenharmony_ci    performance. Some uses of this extension could invalidate future
485bd8deadSopenharmony_ci    rendering and thus should only be used by developers for debugging
495bd8deadSopenharmony_ci    and performance profiling purposes.
505bd8deadSopenharmony_ci
515bd8deadSopenharmony_ci    The extension is general enough to allow the implementation to
525bd8deadSopenharmony_ci    choose which controls to expose and to provide a textual description
535bd8deadSopenharmony_ci    of those controls to developers.
545bd8deadSopenharmony_ci
555bd8deadSopenharmony_ciIssues
565bd8deadSopenharmony_ci
575bd8deadSopenharmony_ci    None.
585bd8deadSopenharmony_ci
595bd8deadSopenharmony_ciNew Procedures and Functions
605bd8deadSopenharmony_ci
615bd8deadSopenharmony_ci    void GetDriverControlsQCOM(int *num, sizei size, uint *driverControls)
625bd8deadSopenharmony_ci
635bd8deadSopenharmony_ci    void GetDriverControlStringQCOM(uint driverControl,
645bd8deadSopenharmony_ci                                   sizei bufSize,
655bd8deadSopenharmony_ci                                   sizei *length,
665bd8deadSopenharmony_ci                                   char *driverControlString)
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ci    void EnableDriverControlQCOM(uint driverControl)
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ci    void DisableDriverControlQCOM(uint driverControl)
715bd8deadSopenharmony_ci
725bd8deadSopenharmony_ciNew Tokens
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ci    None.
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL ES 2.0 Specification (OpenGL Operation)
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ci    Add a new section "Driver Control":
795bd8deadSopenharmony_ci
805bd8deadSopenharmony_ci    The command
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ci        void GetDriverControlsQCOM(int *num, sizei size, uint *driverControls)
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ci    returns the number of available driver controls in <num>, if <num>
855bd8deadSopenharmony_ci    is not NULL. If <size> is not 0 and <driverControls> is not NULL,
865bd8deadSopenharmony_ci    then the list of available driver controls is returned. The number
875bd8deadSopenharmony_ci    of entries that will be in <driverControls> is determined by <size>.
885bd8deadSopenharmony_ci    If <size> is 0, no information is copied. Each driver control is
895bd8deadSopenharmony_ci    identified by a unique unsigned int identifier.
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ci    The command
925bd8deadSopenharmony_ci
935bd8deadSopenharmony_ci        void GetDriverControlStringQCOM(uint driverControl,
945bd8deadSopenharmony_ci                                       sizei bufSize,
955bd8deadSopenharmony_ci                                       sizei *length,
965bd8deadSopenharmony_ci                                       char *driverControlString)
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ci    returns the string that describes the driver control identified by
995bd8deadSopenharmony_ci    <driverControl> in <driverControlString>. The first part of this
1005bd8deadSopenharmony_ci    string is a unique identifying name for the driver control. A space
1015bd8deadSopenharmony_ci    signifies the end of this name. It is encouraged that implementers
1025bd8deadSopenharmony_ci    not change the name so that developers can key off this name for
1035bd8deadSopenharmony_ci    their implementation. The actual number of characters written to
1045bd8deadSopenharmony_ci    <driverControlString>, excluding the null terminator, is returned in
1055bd8deadSopenharmony_ci    <length>. If <length> is NULL, then no length is returned. The
1065bd8deadSopenharmony_ci    maximum number of characters that may be written into
1075bd8deadSopenharmony_ci    <driverControlString>, including the null terminator, is specified
1085bd8deadSopenharmony_ci    by <bufSize>. If <bufSize> is 0 and <driverControlString> is NULL,
1095bd8deadSopenharmony_ci    the number of characters that would be required to hold the
1105bd8deadSopenharmony_ci    driverControl string, excluding the null terminator, is returned in
1115bd8deadSopenharmony_ci    <length>. If <driverControl> does not reference a valid
1125bd8deadSopenharmony_ci    driverControl ID, an INVALID_VALUE error is generated.
1135bd8deadSopenharmony_ci
1145bd8deadSopenharmony_ci    The command
1155bd8deadSopenharmony_ci
1165bd8deadSopenharmony_ci        void EnableDriverControlQCOM(uint driverControl)
1175bd8deadSopenharmony_ci
1185bd8deadSopenharmony_ci    enables a driver control.
1195bd8deadSopenharmony_ci
1205bd8deadSopenharmony_ci        void DisableDriverControlQCOM(uint driverControl)
1215bd8deadSopenharmony_ci
1225bd8deadSopenharmony_ci    disables a driver control.
1235bd8deadSopenharmony_ci
1245bd8deadSopenharmony_ci
1255bd8deadSopenharmony_ciGLX Protocol
1265bd8deadSopenharmony_ci
1275bd8deadSopenharmony_ci    None.
1285bd8deadSopenharmony_ci
1295bd8deadSopenharmony_ciErrors
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ci    INVALID_VALUE error will be generated if the <driverControl>
1325bd8deadSopenharmony_ci    parameter to GetDriverControlStringQCOM, EnableDriverControlQCOM or
1335bd8deadSopenharmony_ci    DisableDriverControlQCOM does not reference a valid driver control
1345bd8deadSopenharmony_ci    ID.
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ciNew State
1375bd8deadSopenharmony_ci
1385bd8deadSopenharmony_ci    None.
1395bd8deadSopenharmony_ci
1405bd8deadSopenharmony_ci
1415bd8deadSopenharmony_ciRevision History
1425bd8deadSopenharmony_ci    11/10/2008 - Maurice Ribble
1435bd8deadSopenharmony_ci       + Initial version written.
1445bd8deadSopenharmony_ci    03/19/2009 - Maurice Ribble
1455bd8deadSopenharmony_ci       + Change from AMD to Qualcomm extension for publication
1465bd8deadSopenharmony_ci    05/05/2009 - Jon Leech
1475bd8deadSopenharmony_ci       + Reflow paragraphs and assign extension number.
148