blob: 368fc8f2c10b25d798dd81c9e1883f6839e4f0d0 [file] [log] [blame]
Name
QCOM_driver_control
Name Strings
GL_QCOM_driver_control
Contributors
Maurice Ribble
Mikko Nurmi
Contact
Maurice Ribble (mribble 'at' qualcomm.com)
Status
Incomplete.
Version
Last Modified Date: May 5, 2009
Revision: #0.3
Number
OpenGL ES Extension #55
Dependencies
OpenGL ES 1.0 or higher is required.
This extension is written based on the wording of the OpenGL ES 2.0
specification.
Overview
This extension exposes special control features in a driver to a
developer. A use of these controls would be to override state or
implement special modes of operation. One common example might be an
IFH or infinitely fast hardware mode. In this mode none of draw
commands would be sent to the GPU so no image would be displayed,
but all the driver software overhead would still happen thus
enabling developers to analyze driver overhead separate from GPU
performance. Some uses of this extension could invalidate future
rendering and thus should only be used by developers for debugging
and performance profiling purposes.
The extension is general enough to allow the implementation to
choose which controls to expose and to provide a textual description
of those controls to developers.
Issues
None.
New Procedures and Functions
void GetDriverControlsQCOM(int *num, sizei size, uint *driverControls)
void GetDriverControlStringQCOM(uint driverControl,
sizei bufSize,
sizei *length,
char *driverControlString)
void EnableDriverControlQCOM(uint driverControl)
void DisableDriverControlQCOM(uint driverControl)
New Tokens
None.
Additions to Chapter 2 of the OpenGL ES 2.0 Specification (OpenGL Operation)
Add a new section "Driver Control":
The command
void GetDriverControlsQCOM(int *num, sizei size, uint *driverControls)
returns the number of available driver controls in <num>, if <num>
is not NULL. If <size> is not 0 and <driverControls> is not NULL,
then the list of available driver controls is returned. The number
of entries that will be in <driverControls> is determined by <size>.
If <size> is 0, no information is copied. Each driver control is
identified by a unique unsigned int identifier.
The command
void GetDriverControlStringQCOM(uint driverControl,
sizei bufSize,
sizei *length,
char *driverControlString)
returns the string that describes the driver control identified by
<driverControl> in <driverControlString>. The first part of this
string is a unique identifying name for the driver control. A space
signifies the end of this name. It is encouraged that implementers
not change the name so that developers can key off this name for
their implementation. The actual number of characters written to
<driverControlString>, excluding the null terminator, is returned in
<length>. If <length> is NULL, then no length is returned. The
maximum number of characters that may be written into
<driverControlString>, including the null terminator, is specified
by <bufSize>. If <bufSize> is 0 and <driverControlString> is NULL,
the number of characters that would be required to hold the
driverControl string, excluding the null terminator, is returned in
<length>. If <driverControl> does not reference a valid
driverControl ID, an INVALID_VALUE error is generated.
The command
void EnableDriverControlQCOM(uint driverControl)
enables a driver control.
void DisableDriverControlQCOM(uint driverControl)
disables a driver control.
GLX Protocol
None.
Errors
INVALID_VALUE error will be generated if the <driverControl>
parameter to GetDriverControlStringQCOM, EnableDriverControlQCOM or
DisableDriverControlQCOM does not reference a valid driver control
ID.
New State
None.
Revision History
11/10/2008 - Maurice Ribble
+ Initial version written.
03/19/2009 - Maurice Ribble
+ Change from AMD to Qualcomm extension for publication
05/05/2009 - Jon Leech
+ Reflow paragraphs and assign extension number.