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 , if is not NULL. If is not 0 and is not NULL, then the list of available driver controls is returned. The number of entries that will be in is determined by . If 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 in . 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 , excluding the null terminator, is returned in . If is NULL, then no length is returned. The maximum number of characters that may be written into , including the null terminator, is specified by . If is 0 and is NULL, the number of characters that would be required to hold the driverControl string, excluding the null terminator, is returned in . If 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 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.