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