1Name 2 3 QCOM_driver_control 4 5Name Strings 6 7 GL_QCOM_driver_control 8 9Contributors 10 11 Maurice Ribble 12 Mikko Nurmi 13 14Contact 15 16 Maurice Ribble (mribble 'at' qualcomm.com) 17 18Status 19 20 Incomplete. 21 22Version 23 24 Last Modified Date: May 5, 2009 25 Revision: #0.3 26 27Number 28 29 OpenGL ES Extension #55 30 31Dependencies 32 33 OpenGL ES 1.0 or higher is required. 34 35 This extension is written based on the wording of the OpenGL ES 2.0 36 specification. 37 38Overview 39 40 This extension exposes special control features in a driver to a 41 developer. A use of these controls would be to override state or 42 implement special modes of operation. One common example might be an 43 IFH or infinitely fast hardware mode. In this mode none of draw 44 commands would be sent to the GPU so no image would be displayed, 45 but all the driver software overhead would still happen thus 46 enabling developers to analyze driver overhead separate from GPU 47 performance. Some uses of this extension could invalidate future 48 rendering and thus should only be used by developers for debugging 49 and performance profiling purposes. 50 51 The extension is general enough to allow the implementation to 52 choose which controls to expose and to provide a textual description 53 of those controls to developers. 54 55Issues 56 57 None. 58 59New Procedures and Functions 60 61 void GetDriverControlsQCOM(int *num, sizei size, uint *driverControls) 62 63 void GetDriverControlStringQCOM(uint driverControl, 64 sizei bufSize, 65 sizei *length, 66 char *driverControlString) 67 68 void EnableDriverControlQCOM(uint driverControl) 69 70 void DisableDriverControlQCOM(uint driverControl) 71 72New Tokens 73 74 None. 75 76Additions to Chapter 2 of the OpenGL ES 2.0 Specification (OpenGL Operation) 77 78 Add a new section "Driver Control": 79 80 The command 81 82 void GetDriverControlsQCOM(int *num, sizei size, uint *driverControls) 83 84 returns the number of available driver controls in <num>, if <num> 85 is not NULL. If <size> is not 0 and <driverControls> is not NULL, 86 then the list of available driver controls is returned. The number 87 of entries that will be in <driverControls> is determined by <size>. 88 If <size> is 0, no information is copied. Each driver control is 89 identified by a unique unsigned int identifier. 90 91 The command 92 93 void GetDriverControlStringQCOM(uint driverControl, 94 sizei bufSize, 95 sizei *length, 96 char *driverControlString) 97 98 returns the string that describes the driver control identified by 99 <driverControl> in <driverControlString>. The first part of this 100 string is a unique identifying name for the driver control. A space 101 signifies the end of this name. It is encouraged that implementers 102 not change the name so that developers can key off this name for 103 their implementation. The actual number of characters written to 104 <driverControlString>, excluding the null terminator, is returned in 105 <length>. If <length> is NULL, then no length is returned. The 106 maximum number of characters that may be written into 107 <driverControlString>, including the null terminator, is specified 108 by <bufSize>. If <bufSize> is 0 and <driverControlString> is NULL, 109 the number of characters that would be required to hold the 110 driverControl string, excluding the null terminator, is returned in 111 <length>. If <driverControl> does not reference a valid 112 driverControl ID, an INVALID_VALUE error is generated. 113 114 The command 115 116 void EnableDriverControlQCOM(uint driverControl) 117 118 enables a driver control. 119 120 void DisableDriverControlQCOM(uint driverControl) 121 122 disables a driver control. 123 124 125GLX Protocol 126 127 None. 128 129Errors 130 131 INVALID_VALUE error will be generated if the <driverControl> 132 parameter to GetDriverControlStringQCOM, EnableDriverControlQCOM or 133 DisableDriverControlQCOM does not reference a valid driver control 134 ID. 135 136New State 137 138 None. 139 140 141Revision History 142 11/10/2008 - Maurice Ribble 143 + Initial version written. 144 03/19/2009 - Maurice Ribble 145 + Change from AMD to Qualcomm extension for publication 146 05/05/2009 - Jon Leech 147 + Reflow paragraphs and assign extension number. 148