1/* WARNING: This is auto-generated file. Do not modify, since changes will 2 * be lost! Modify the generating script instead. 3 * 4 * Generated from Khronos EGL API description (egl.xml) revision 6550e9b12e0b4f11182bda30ae2a8dd56d0b02c8. 5 */ 6 7static const char* s_EGL14[] = 8{ 9 "eglBindAPI", 10 "eglBindTexImage", 11 "eglChooseConfig", 12 "eglCopyBuffers", 13 "eglCreateContext", 14 "eglCreatePbufferFromClientBuffer", 15 "eglCreatePbufferSurface", 16 "eglCreatePixmapSurface", 17 "eglCreateWindowSurface", 18 "eglDestroyContext", 19 "eglDestroySurface", 20 "eglGetConfigAttrib", 21 "eglGetConfigs", 22 "eglGetCurrentContext", 23 "eglGetCurrentDisplay", 24 "eglGetCurrentSurface", 25 "eglGetDisplay", 26 "eglGetError", 27 "eglGetProcAddress", 28 "eglInitialize", 29 "eglMakeCurrent", 30 "eglQueryAPI", 31 "eglQueryContext", 32 "eglQueryString", 33 "eglQuerySurface", 34 "eglReleaseTexImage", 35 "eglReleaseThread", 36 "eglSurfaceAttrib", 37 "eglSwapBuffers", 38 "eglSwapInterval", 39 "eglTerminate", 40 "eglWaitClient", 41 "eglWaitGL", 42 "eglWaitNative", 43}; 44 45static const char* s_EGL15[] = 46{ 47 "eglClientWaitSync", 48 "eglCreateImage", 49 "eglCreatePlatformPixmapSurface", 50 "eglCreatePlatformWindowSurface", 51 "eglCreateSync", 52 "eglDestroyImage", 53 "eglDestroySync", 54 "eglGetPlatformDisplay", 55 "eglGetSyncAttrib", 56 "eglWaitSync", 57}; 58 59static const char* s_GLES10[] = 60{ 61 "glActiveTexture", 62 "glAlphaFunc", 63 "glAlphaFuncx", 64 "glBindBuffer", 65 "glBindTexture", 66 "glBlendFunc", 67 "glBufferData", 68 "glBufferSubData", 69 "glClear", 70 "glClearColor", 71 "glClearColorx", 72 "glClearDepthf", 73 "glClearDepthx", 74 "glClearStencil", 75 "glClientActiveTexture", 76 "glClipPlanef", 77 "glClipPlanex", 78 "glColor4f", 79 "glColor4ub", 80 "glColor4x", 81 "glColorMask", 82 "glColorPointer", 83 "glCompressedTexImage2D", 84 "glCompressedTexSubImage2D", 85 "glCopyTexImage2D", 86 "glCopyTexSubImage2D", 87 "glCullFace", 88 "glDeleteBuffers", 89 "glDeleteTextures", 90 "glDepthFunc", 91 "glDepthMask", 92 "glDepthRangef", 93 "glDepthRangex", 94 "glDisable", 95 "glDisableClientState", 96 "glDrawArrays", 97 "glDrawElements", 98 "glEnable", 99 "glEnableClientState", 100 "glFinish", 101 "glFlush", 102 "glFogf", 103 "glFogfv", 104 "glFogx", 105 "glFogxv", 106 "glFrontFace", 107 "glFrustumf", 108 "glFrustumx", 109 "glGenBuffers", 110 "glGenTextures", 111 "glGetBooleanv", 112 "glGetBufferParameteriv", 113 "glGetClipPlanef", 114 "glGetClipPlanex", 115 "glGetError", 116 "glGetFixedv", 117 "glGetFloatv", 118 "glGetIntegerv", 119 "glGetLightfv", 120 "glGetLightxv", 121 "glGetMaterialfv", 122 "glGetMaterialxv", 123 "glGetPointerv", 124 "glGetString", 125 "glGetTexEnvfv", 126 "glGetTexEnviv", 127 "glGetTexEnvxv", 128 "glGetTexParameterfv", 129 "glGetTexParameteriv", 130 "glGetTexParameterxv", 131 "glHint", 132 "glIsBuffer", 133 "glIsEnabled", 134 "glIsTexture", 135 "glLightModelf", 136 "glLightModelfv", 137 "glLightModelx", 138 "glLightModelxv", 139 "glLightf", 140 "glLightfv", 141 "glLightx", 142 "glLightxv", 143 "glLineWidth", 144 "glLineWidthx", 145 "glLoadIdentity", 146 "glLoadMatrixf", 147 "glLoadMatrixx", 148 "glLogicOp", 149 "glMaterialf", 150 "glMaterialfv", 151 "glMaterialx", 152 "glMaterialxv", 153 "glMatrixMode", 154 "glMultMatrixf", 155 "glMultMatrixx", 156 "glMultiTexCoord4f", 157 "glMultiTexCoord4x", 158 "glNormal3f", 159 "glNormal3x", 160 "glNormalPointer", 161 "glOrthof", 162 "glOrthox", 163 "glPixelStorei", 164 "glPointParameterf", 165 "glPointParameterfv", 166 "glPointParameterx", 167 "glPointParameterxv", 168 "glPointSize", 169 "glPointSizex", 170 "glPolygonOffset", 171 "glPolygonOffsetx", 172 "glPopMatrix", 173 "glPushMatrix", 174 "glReadPixels", 175 "glRotatef", 176 "glRotatex", 177 "glSampleCoverage", 178 "glSampleCoveragex", 179 "glScalef", 180 "glScalex", 181 "glScissor", 182 "glShadeModel", 183 "glStencilFunc", 184 "glStencilMask", 185 "glStencilOp", 186 "glTexCoordPointer", 187 "glTexEnvf", 188 "glTexEnvfv", 189 "glTexEnvi", 190 "glTexEnviv", 191 "glTexEnvx", 192 "glTexEnvxv", 193 "glTexImage2D", 194 "glTexParameterf", 195 "glTexParameterfv", 196 "glTexParameteri", 197 "glTexParameteriv", 198 "glTexParameterx", 199 "glTexParameterxv", 200 "glTexSubImage2D", 201 "glTranslatef", 202 "glTranslatex", 203 "glVertexPointer", 204 "glViewport", 205}; 206 207static const char* s_GLES20[] = 208{ 209 "glActiveTexture", 210 "glAttachShader", 211 "glBindAttribLocation", 212 "glBindBuffer", 213 "glBindFramebuffer", 214 "glBindRenderbuffer", 215 "glBindTexture", 216 "glBlendColor", 217 "glBlendEquation", 218 "glBlendEquationSeparate", 219 "glBlendFunc", 220 "glBlendFuncSeparate", 221 "glBufferData", 222 "glBufferSubData", 223 "glCheckFramebufferStatus", 224 "glClear", 225 "glClearColor", 226 "glClearDepthf", 227 "glClearStencil", 228 "glColorMask", 229 "glCompileShader", 230 "glCompressedTexImage2D", 231 "glCompressedTexSubImage2D", 232 "glCopyTexImage2D", 233 "glCopyTexSubImage2D", 234 "glCreateProgram", 235 "glCreateShader", 236 "glCullFace", 237 "glDeleteBuffers", 238 "glDeleteFramebuffers", 239 "glDeleteProgram", 240 "glDeleteRenderbuffers", 241 "glDeleteShader", 242 "glDeleteTextures", 243 "glDepthFunc", 244 "glDepthMask", 245 "glDepthRangef", 246 "glDetachShader", 247 "glDisable", 248 "glDisableVertexAttribArray", 249 "glDrawArrays", 250 "glDrawElements", 251 "glEnable", 252 "glEnableVertexAttribArray", 253 "glFinish", 254 "glFlush", 255 "glFramebufferRenderbuffer", 256 "glFramebufferTexture2D", 257 "glFrontFace", 258 "glGenBuffers", 259 "glGenFramebuffers", 260 "glGenRenderbuffers", 261 "glGenTextures", 262 "glGenerateMipmap", 263 "glGetActiveAttrib", 264 "glGetActiveUniform", 265 "glGetAttachedShaders", 266 "glGetAttribLocation", 267 "glGetBooleanv", 268 "glGetBufferParameteriv", 269 "glGetError", 270 "glGetFloatv", 271 "glGetFramebufferAttachmentParameteriv", 272 "glGetIntegerv", 273 "glGetProgramInfoLog", 274 "glGetProgramiv", 275 "glGetRenderbufferParameteriv", 276 "glGetShaderInfoLog", 277 "glGetShaderPrecisionFormat", 278 "glGetShaderSource", 279 "glGetShaderiv", 280 "glGetString", 281 "glGetTexParameterfv", 282 "glGetTexParameteriv", 283 "glGetUniformLocation", 284 "glGetUniformfv", 285 "glGetUniformiv", 286 "glGetVertexAttribPointerv", 287 "glGetVertexAttribfv", 288 "glGetVertexAttribiv", 289 "glHint", 290 "glIsBuffer", 291 "glIsEnabled", 292 "glIsFramebuffer", 293 "glIsProgram", 294 "glIsRenderbuffer", 295 "glIsShader", 296 "glIsTexture", 297 "glLineWidth", 298 "glLinkProgram", 299 "glPixelStorei", 300 "glPolygonOffset", 301 "glReadPixels", 302 "glReleaseShaderCompiler", 303 "glRenderbufferStorage", 304 "glSampleCoverage", 305 "glScissor", 306 "glShaderBinary", 307 "glShaderSource", 308 "glStencilFunc", 309 "glStencilFuncSeparate", 310 "glStencilMask", 311 "glStencilMaskSeparate", 312 "glStencilOp", 313 "glStencilOpSeparate", 314 "glTexImage2D", 315 "glTexParameterf", 316 "glTexParameterfv", 317 "glTexParameteri", 318 "glTexParameteriv", 319 "glTexSubImage2D", 320 "glUniform1f", 321 "glUniform1fv", 322 "glUniform1i", 323 "glUniform1iv", 324 "glUniform2f", 325 "glUniform2fv", 326 "glUniform2i", 327 "glUniform2iv", 328 "glUniform3f", 329 "glUniform3fv", 330 "glUniform3i", 331 "glUniform3iv", 332 "glUniform4f", 333 "glUniform4fv", 334 "glUniform4i", 335 "glUniform4iv", 336 "glUniformMatrix2fv", 337 "glUniformMatrix3fv", 338 "glUniformMatrix4fv", 339 "glUseProgram", 340 "glValidateProgram", 341 "glVertexAttrib1f", 342 "glVertexAttrib1fv", 343 "glVertexAttrib2f", 344 "glVertexAttrib2fv", 345 "glVertexAttrib3f", 346 "glVertexAttrib3fv", 347 "glVertexAttrib4f", 348 "glVertexAttrib4fv", 349 "glVertexAttribPointer", 350 "glViewport", 351}; 352 353static const char* s_GLES30[] = 354{ 355 "glBeginQuery", 356 "glBeginTransformFeedback", 357 "glBindBufferBase", 358 "glBindBufferRange", 359 "glBindSampler", 360 "glBindTransformFeedback", 361 "glBindVertexArray", 362 "glBlitFramebuffer", 363 "glClearBufferfi", 364 "glClearBufferfv", 365 "glClearBufferiv", 366 "glClearBufferuiv", 367 "glClientWaitSync", 368 "glCompressedTexImage3D", 369 "glCompressedTexSubImage3D", 370 "glCopyBufferSubData", 371 "glCopyTexSubImage3D", 372 "glDeleteQueries", 373 "glDeleteSamplers", 374 "glDeleteSync", 375 "glDeleteTransformFeedbacks", 376 "glDeleteVertexArrays", 377 "glDrawArraysInstanced", 378 "glDrawBuffers", 379 "glDrawElementsInstanced", 380 "glDrawRangeElements", 381 "glEndQuery", 382 "glEndTransformFeedback", 383 "glFenceSync", 384 "glFlushMappedBufferRange", 385 "glFramebufferTextureLayer", 386 "glGenQueries", 387 "glGenSamplers", 388 "glGenTransformFeedbacks", 389 "glGenVertexArrays", 390 "glGetActiveUniformBlockName", 391 "glGetActiveUniformBlockiv", 392 "glGetActiveUniformsiv", 393 "glGetBufferParameteri64v", 394 "glGetBufferPointerv", 395 "glGetFragDataLocation", 396 "glGetInteger64i_v", 397 "glGetInteger64v", 398 "glGetIntegeri_v", 399 "glGetInternalformativ", 400 "glGetProgramBinary", 401 "glGetQueryObjectuiv", 402 "glGetQueryiv", 403 "glGetSamplerParameterfv", 404 "glGetSamplerParameteriv", 405 "glGetStringi", 406 "glGetSynciv", 407 "glGetTransformFeedbackVarying", 408 "glGetUniformBlockIndex", 409 "glGetUniformIndices", 410 "glGetUniformuiv", 411 "glGetVertexAttribIiv", 412 "glGetVertexAttribIuiv", 413 "glInvalidateFramebuffer", 414 "glInvalidateSubFramebuffer", 415 "glIsQuery", 416 "glIsSampler", 417 "glIsSync", 418 "glIsTransformFeedback", 419 "glIsVertexArray", 420 "glMapBufferRange", 421 "glPauseTransformFeedback", 422 "glProgramBinary", 423 "glProgramParameteri", 424 "glReadBuffer", 425 "glRenderbufferStorageMultisample", 426 "glResumeTransformFeedback", 427 "glSamplerParameterf", 428 "glSamplerParameterfv", 429 "glSamplerParameteri", 430 "glSamplerParameteriv", 431 "glTexImage3D", 432 "glTexStorage2D", 433 "glTexStorage3D", 434 "glTexSubImage3D", 435 "glTransformFeedbackVaryings", 436 "glUniform1ui", 437 "glUniform1uiv", 438 "glUniform2ui", 439 "glUniform2uiv", 440 "glUniform3ui", 441 "glUniform3uiv", 442 "glUniform4ui", 443 "glUniform4uiv", 444 "glUniformBlockBinding", 445 "glUniformMatrix2x3fv", 446 "glUniformMatrix2x4fv", 447 "glUniformMatrix3x2fv", 448 "glUniformMatrix3x4fv", 449 "glUniformMatrix4x2fv", 450 "glUniformMatrix4x3fv", 451 "glUnmapBuffer", 452 "glVertexAttribDivisor", 453 "glVertexAttribI4i", 454 "glVertexAttribI4iv", 455 "glVertexAttribI4ui", 456 "glVertexAttribI4uiv", 457 "glVertexAttribIPointer", 458 "glWaitSync", 459}; 460 461static const char* s_EGL_ANDROID_blob_cache[] = 462{ 463 "eglSetBlobCacheFuncsANDROID", 464}; 465 466static const char* s_EGL_ANDROID_create_native_client_buffer[] = 467{ 468 "eglCreateNativeClientBufferANDROID", 469}; 470 471static const char* s_EGL_ANDROID_get_native_client_buffer[] = 472{ 473 "eglGetNativeClientBufferANDROID", 474}; 475 476static const char* s_EGL_ANDROID_native_fence_sync[] = 477{ 478 "eglDupNativeFenceFDANDROID", 479}; 480 481static const char* s_EGL_ANDROID_presentation_time[] = 482{ 483 "eglPresentationTimeANDROID", 484}; 485 486static const char* s_EGL_ANDROID_get_frame_timestamps[] = 487{ 488 "eglGetCompositorTimingSupportedANDROID", 489 "eglGetCompositorTimingANDROID", 490 "eglGetNextFrameIdANDROID", 491 "eglGetFrameTimestampSupportedANDROID", 492 "eglGetFrameTimestampsANDROID", 493}; 494 495static const char* s_EGL_ANGLE_query_surface_pointer[] = 496{ 497 "eglQuerySurfacePointerANGLE", 498}; 499 500static const char* s_EGL_ANGLE_sync_control_rate[] = 501{ 502 "eglGetMscRateANGLE", 503}; 504 505static const char* s_EGL_EXT_client_sync[] = 506{ 507 "eglClientSignalSyncEXT", 508}; 509 510static const char* s_EGL_EXT_device_base[] = 511{ 512 "eglQueryDeviceAttribEXT", 513 "eglQueryDeviceStringEXT", 514 "eglQueryDevicesEXT", 515 "eglQueryDisplayAttribEXT", 516}; 517 518static const char* s_EGL_EXT_device_enumeration[] = 519{ 520 "eglQueryDevicesEXT", 521}; 522 523static const char* s_EGL_EXT_device_query[] = 524{ 525 "eglQueryDeviceAttribEXT", 526 "eglQueryDeviceStringEXT", 527 "eglQueryDisplayAttribEXT", 528}; 529 530static const char* s_EGL_EXT_image_dma_buf_import_modifiers[] = 531{ 532 "eglQueryDmaBufFormatsEXT", 533 "eglQueryDmaBufModifiersEXT", 534}; 535 536static const char* s_EGL_EXT_output_base[] = 537{ 538 "eglGetOutputLayersEXT", 539 "eglGetOutputPortsEXT", 540 "eglOutputLayerAttribEXT", 541 "eglOutputPortAttribEXT", 542 "eglQueryOutputLayerAttribEXT", 543 "eglQueryOutputLayerStringEXT", 544 "eglQueryOutputPortAttribEXT", 545 "eglQueryOutputPortStringEXT", 546}; 547 548static const char* s_EGL_EXT_platform_base[] = 549{ 550 "eglCreatePlatformPixmapSurfaceEXT", 551 "eglCreatePlatformWindowSurfaceEXT", 552 "eglGetPlatformDisplayEXT", 553}; 554 555static const char* s_EGL_EXT_stream_consumer_egloutput[] = 556{ 557 "eglStreamConsumerOutputEXT", 558}; 559 560static const char* s_EGL_EXT_swap_buffers_with_damage[] = 561{ 562 "eglSwapBuffersWithDamageEXT", 563}; 564 565static const char* s_EGL_EXT_sync_reuse[] = 566{ 567 "eglUnsignalSyncEXT", 568}; 569 570static const char* s_EGL_HI_clientpixmap[] = 571{ 572 "eglCreatePixmapSurfaceHI", 573}; 574 575static const char* s_EGL_KHR_cl_event2[] = 576{ 577 "eglCreateSync64KHR", 578}; 579 580static const char* s_EGL_KHR_debug[] = 581{ 582 "eglDebugMessageControlKHR", 583 "eglLabelObjectKHR", 584 "eglQueryDebugKHR", 585}; 586 587static const char* s_EGL_KHR_display_reference[] = 588{ 589 "eglQueryDisplayAttribKHR", 590}; 591 592static const char* s_EGL_KHR_fence_sync[] = 593{ 594 "eglClientWaitSyncKHR", 595 "eglCreateSyncKHR", 596 "eglDestroySyncKHR", 597 "eglGetSyncAttribKHR", 598}; 599 600static const char* s_EGL_KHR_image[] = 601{ 602 "eglCreateImageKHR", 603 "eglDestroyImageKHR", 604}; 605 606static const char* s_EGL_KHR_image_base[] = 607{ 608 "eglCreateImageKHR", 609 "eglDestroyImageKHR", 610}; 611 612static const char* s_EGL_KHR_lock_surface[] = 613{ 614 "eglLockSurfaceKHR", 615 "eglUnlockSurfaceKHR", 616}; 617 618static const char* s_EGL_KHR_lock_surface3[] = 619{ 620 "eglLockSurfaceKHR", 621 "eglQuerySurface64KHR", 622 "eglUnlockSurfaceKHR", 623}; 624 625static const char* s_EGL_KHR_partial_update[] = 626{ 627 "eglSetDamageRegionKHR", 628}; 629 630static const char* s_EGL_KHR_reusable_sync[] = 631{ 632 "eglClientWaitSyncKHR", 633 "eglCreateSyncKHR", 634 "eglDestroySyncKHR", 635 "eglGetSyncAttribKHR", 636 "eglSignalSyncKHR", 637}; 638 639static const char* s_EGL_KHR_stream[] = 640{ 641 "eglCreateStreamKHR", 642 "eglDestroyStreamKHR", 643 "eglQueryStreamKHR", 644 "eglQueryStreamu64KHR", 645 "eglStreamAttribKHR", 646}; 647 648static const char* s_EGL_KHR_stream_attrib[] = 649{ 650 "eglCreateStreamAttribKHR", 651 "eglQueryStreamAttribKHR", 652 "eglSetStreamAttribKHR", 653 "eglStreamConsumerAcquireAttribKHR", 654 "eglStreamConsumerReleaseAttribKHR", 655}; 656 657static const char* s_EGL_KHR_stream_consumer_gltexture[] = 658{ 659 "eglStreamConsumerAcquireKHR", 660 "eglStreamConsumerGLTextureExternalKHR", 661 "eglStreamConsumerReleaseKHR", 662}; 663 664static const char* s_EGL_KHR_stream_cross_process_fd[] = 665{ 666 "eglCreateStreamFromFileDescriptorKHR", 667 "eglGetStreamFileDescriptorKHR", 668}; 669 670static const char* s_EGL_KHR_stream_fifo[] = 671{ 672 "eglQueryStreamTimeKHR", 673}; 674 675static const char* s_EGL_KHR_stream_producer_eglsurface[] = 676{ 677 "eglCreateStreamProducerSurfaceKHR", 678}; 679 680static const char* s_EGL_KHR_swap_buffers_with_damage[] = 681{ 682 "eglSwapBuffersWithDamageKHR", 683}; 684 685static const char* s_EGL_KHR_wait_sync[] = 686{ 687 "eglWaitSyncKHR", 688}; 689 690static const char* s_EGL_MESA_drm_image[] = 691{ 692 "eglCreateDRMImageMESA", 693 "eglExportDRMImageMESA", 694}; 695 696static const char* s_EGL_MESA_image_dma_buf_export[] = 697{ 698 "eglExportDMABUFImageMESA", 699 "eglExportDMABUFImageQueryMESA", 700}; 701 702static const char* s_EGL_MESA_query_driver[] = 703{ 704 "eglGetDisplayDriverConfig", 705 "eglGetDisplayDriverName", 706}; 707 708static const char* s_EGL_NOK_swap_region[] = 709{ 710 "eglSwapBuffersRegionNOK", 711}; 712 713static const char* s_EGL_NOK_swap_region2[] = 714{ 715 "eglSwapBuffersRegion2NOK", 716}; 717 718static const char* s_EGL_NV_native_query[] = 719{ 720 "eglQueryNativeDisplayNV", 721 "eglQueryNativePixmapNV", 722 "eglQueryNativeWindowNV", 723}; 724 725static const char* s_EGL_NV_post_sub_buffer[] = 726{ 727 "eglPostSubBufferNV", 728}; 729 730static const char* s_EGL_NV_stream_consumer_gltexture_yuv[] = 731{ 732 "eglStreamConsumerGLTextureExternalAttribsNV", 733}; 734 735static const char* s_EGL_NV_stream_consumer_eglimage[] = 736{ 737 "eglStreamImageConsumerConnectNV", 738 "eglQueryStreamConsumerEventNV", 739 "eglStreamAcquireImageNV", 740 "eglStreamReleaseImageNV", 741}; 742 743static const char* s_EGL_NV_stream_flush[] = 744{ 745 "eglStreamFlushNV", 746}; 747 748static const char* s_EGL_NV_stream_metadata[] = 749{ 750 "eglQueryDisplayAttribNV", 751 "eglQueryStreamMetadataNV", 752 "eglSetStreamMetadataNV", 753}; 754 755static const char* s_EGL_NV_stream_reset[] = 756{ 757 "eglResetStreamNV", 758}; 759 760static const char* s_EGL_NV_stream_sync[] = 761{ 762 "eglCreateStreamSyncNV", 763}; 764 765static const char* s_EGL_NV_sync[] = 766{ 767 "eglClientWaitSyncNV", 768 "eglCreateFenceSyncNV", 769 "eglDestroySyncNV", 770 "eglFenceNV", 771 "eglGetSyncAttribNV", 772 "eglSignalSyncNV", 773}; 774 775static const char* s_EGL_NV_system_time[] = 776{ 777 "eglGetSystemTimeFrequencyNV", 778 "eglGetSystemTimeNV", 779}; 780 781static const char* s_EGL_EXT_compositor[] = 782{ 783 "eglCompositorSetContextListEXT", 784 "eglCompositorSetContextAttributesEXT", 785 "eglCompositorSetWindowListEXT", 786 "eglCompositorSetWindowAttributesEXT", 787 "eglCompositorBindTexWindowEXT", 788 "eglCompositorSetSizeEXT", 789 "eglCompositorSwapPolicyEXT", 790}; 791 792static const char* s_EGL_EXT_surface_compression[] = 793{ 794 "eglQuerySupportedCompressionRatesEXT", 795}; 796 797static const char* s_EGL_WL_bind_wayland_display[] = 798{ 799 "eglBindWaylandDisplayWL", 800 "eglUnbindWaylandDisplayWL", 801 "eglQueryWaylandBufferWL", 802}; 803 804static const char* s_EGL_WL_create_wayland_buffer_from_image[] = 805{ 806 "eglCreateWaylandBufferFromImageWL", 807}; 808 809static const char* s_EGL_EXT_device_persistent_id[] = 810{ 811 "eglQueryDeviceBinaryEXT", 812}; 813 814static const char* s_GL_APPLE_copy_texture_levels[] = 815{ 816 "glCopyTextureLevelsAPPLE", 817}; 818 819static const char* s_GL_APPLE_framebuffer_multisample[] = 820{ 821 "glRenderbufferStorageMultisampleAPPLE", 822 "glResolveMultisampleFramebufferAPPLE", 823}; 824 825static const char* s_GL_APPLE_sync[] = 826{ 827 "glClientWaitSyncAPPLE", 828 "glDeleteSyncAPPLE", 829 "glFenceSyncAPPLE", 830 "glGetInteger64vAPPLE", 831 "glGetSyncivAPPLE", 832 "glIsSyncAPPLE", 833 "glWaitSyncAPPLE", 834}; 835 836static const char* s_GL_EXT_debug_marker[] = 837{ 838 "glInsertEventMarkerEXT", 839 "glPopGroupMarkerEXT", 840 "glPushGroupMarkerEXT", 841}; 842 843static const char* s_GL_EXT_discard_framebuffer[] = 844{ 845 "glDiscardFramebufferEXT", 846}; 847 848static const char* s_GL_EXT_map_buffer_range[] = 849{ 850 "glFlushMappedBufferRangeEXT", 851 "glMapBufferRangeEXT", 852}; 853 854static const char* s_GL_EXT_multi_draw_arrays[] = 855{ 856 "glMultiDrawArraysEXT", 857 "glMultiDrawElementsEXT", 858}; 859 860static const char* s_GL_EXT_multisampled_render_to_texture[] = 861{ 862 "glFramebufferTexture2DMultisampleEXT", 863 "glRenderbufferStorageMultisampleEXT", 864}; 865 866static const char* s_GL_EXT_robustness[] = 867{ 868 "glGetGraphicsResetStatusEXT", 869 "glGetnUniformfvEXT", 870 "glGetnUniformivEXT", 871 "glReadnPixelsEXT", 872}; 873 874static const char* s_GL_EXT_texture_storage[] = 875{ 876 "glTexStorage1DEXT", 877 "glTexStorage2DEXT", 878 "glTexStorage3DEXT", 879 "glTextureStorage1DEXT", 880 "glTextureStorage2DEXT", 881 "glTextureStorage3DEXT", 882}; 883 884static const char* s_GL_IMG_multisampled_render_to_texture[] = 885{ 886 "glFramebufferTexture2DMultisampleIMG", 887 "glRenderbufferStorageMultisampleIMG", 888}; 889 890static const char* s_GL_IMG_user_clip_plane[] = 891{ 892 "glClipPlanefIMG", 893 "glClipPlanexIMG", 894}; 895 896static const char* s_GL_NV_fence[] = 897{ 898 "glDeleteFencesNV", 899 "glFinishFenceNV", 900 "glGenFencesNV", 901 "glGetFenceivNV", 902 "glIsFenceNV", 903 "glSetFenceNV", 904 "glTestFenceNV", 905}; 906 907static const char* s_GL_OES_EGL_image[] = 908{ 909 "glEGLImageTargetRenderbufferStorageOES", 910 "glEGLImageTargetTexture2DOES", 911}; 912 913static const char* s_GL_OES_blend_equation_separate[] = 914{ 915 "glBlendEquationSeparateOES", 916}; 917 918static const char* s_GL_OES_blend_func_separate[] = 919{ 920 "glBlendFuncSeparateOES", 921}; 922 923static const char* s_GL_OES_blend_subtract[] = 924{ 925 "glBlendEquationOES", 926}; 927 928static const char* s_GL_OES_draw_texture[] = 929{ 930 "glDrawTexfOES", 931 "glDrawTexfvOES", 932 "glDrawTexiOES", 933 "glDrawTexivOES", 934 "glDrawTexsOES", 935 "glDrawTexsvOES", 936 "glDrawTexxOES", 937 "glDrawTexxvOES", 938}; 939 940static const char* s_GL_OES_fixed_point[] = 941{ 942 "glAlphaFuncxOES", 943 "glClearColorxOES", 944 "glClearDepthxOES", 945 "glClipPlanexOES", 946 "glColor4xOES", 947 "glDepthRangexOES", 948 "glFogxOES", 949 "glFogxvOES", 950 "glFrustumxOES", 951 "glGetClipPlanexOES", 952 "glGetFixedvOES", 953 "glGetLightxvOES", 954 "glGetMaterialxvOES", 955 "glGetTexEnvxvOES", 956 "glGetTexParameterxvOES", 957 "glLightModelxOES", 958 "glLightModelxvOES", 959 "glLightxOES", 960 "glLightxvOES", 961 "glLineWidthxOES", 962 "glLoadMatrixxOES", 963 "glMaterialxOES", 964 "glMaterialxvOES", 965 "glMultMatrixxOES", 966 "glMultiTexCoord4xOES", 967 "glNormal3xOES", 968 "glOrthoxOES", 969 "glPointParameterxOES", 970 "glPointParameterxvOES", 971 "glPointSizexOES", 972 "glPolygonOffsetxOES", 973 "glRotatexOES", 974 "glSampleCoveragexOES", 975 "glScalexOES", 976 "glTexEnvxOES", 977 "glTexEnvxvOES", 978 "glTexParameterxOES", 979 "glTexParameterxvOES", 980 "glTranslatexOES", 981}; 982 983static const char* s_GL_OES_framebuffer_object[] = 984{ 985 "glBindFramebufferOES", 986 "glBindRenderbufferOES", 987 "glCheckFramebufferStatusOES", 988 "glDeleteFramebuffersOES", 989 "glDeleteRenderbuffersOES", 990 "glFramebufferRenderbufferOES", 991 "glFramebufferTexture2DOES", 992 "glGenFramebuffersOES", 993 "glGenRenderbuffersOES", 994 "glGenerateMipmapOES", 995 "glGetFramebufferAttachmentParameterivOES", 996 "glGetRenderbufferParameterivOES", 997 "glIsFramebufferOES", 998 "glIsRenderbufferOES", 999 "glRenderbufferStorageOES", 1000}; 1001 1002static const char* s_GL_OES_mapbuffer[] = 1003{ 1004 "glGetBufferPointervOES", 1005 "glMapBufferOES", 1006 "glUnmapBufferOES", 1007}; 1008 1009static const char* s_GL_OES_matrix_palette[] = 1010{ 1011 "glCurrentPaletteMatrixOES", 1012 "glLoadPaletteFromModelViewMatrixOES", 1013 "glMatrixIndexPointerOES", 1014 "glWeightPointerOES", 1015}; 1016 1017static const char* s_GL_OES_point_size_array[] = 1018{ 1019 "glPointSizePointerOES", 1020}; 1021 1022static const char* s_GL_OES_query_matrix[] = 1023{ 1024 "glQueryMatrixxOES", 1025}; 1026 1027static const char* s_GL_OES_single_precision[] = 1028{ 1029 "glClearDepthfOES", 1030 "glClipPlanefOES", 1031 "glDepthRangefOES", 1032 "glFrustumfOES", 1033 "glGetClipPlanefOES", 1034 "glOrthofOES", 1035}; 1036 1037static const char* s_GL_OES_texture_cube_map[] = 1038{ 1039 "glGetTexGenfvOES", 1040 "glGetTexGenivOES", 1041 "glGetTexGenxvOES", 1042 "glTexGenfOES", 1043 "glTexGenfvOES", 1044 "glTexGeniOES", 1045 "glTexGenivOES", 1046 "glTexGenxOES", 1047 "glTexGenxvOES", 1048}; 1049 1050static const char* s_GL_OES_vertex_array_object[] = 1051{ 1052 "glBindVertexArrayOES", 1053 "glDeleteVertexArraysOES", 1054 "glGenVertexArraysOES", 1055 "glIsVertexArrayOES", 1056}; 1057 1058static const char* s_GL_QCOM_driver_control[] = 1059{ 1060 "glDisableDriverControlQCOM", 1061 "glEnableDriverControlQCOM", 1062 "glGetDriverControlStringQCOM", 1063 "glGetDriverControlsQCOM", 1064}; 1065 1066static const char* s_GL_QCOM_extended_get[] = 1067{ 1068 "glExtGetBufferPointervQCOM", 1069 "glExtGetBuffersQCOM", 1070 "glExtGetFramebuffersQCOM", 1071 "glExtGetRenderbuffersQCOM", 1072 "glExtGetTexLevelParameterivQCOM", 1073 "glExtGetTexSubImageQCOM", 1074 "glExtGetTexturesQCOM", 1075 "glExtTexObjectStateOverrideiQCOM", 1076}; 1077 1078static const char* s_GL_QCOM_extended_get2[] = 1079{ 1080 "glExtGetProgramBinarySourceQCOM", 1081 "glExtGetProgramsQCOM", 1082 "glExtGetShadersQCOM", 1083 "glExtIsProgramBinaryQCOM", 1084}; 1085 1086static const char* s_GL_QCOM_tiled_rendering[] = 1087{ 1088 "glEndTilingQCOM", 1089 "glStartTilingQCOM", 1090}; 1091 1092static const char* s_GL_AMD_framebuffer_multisample_advanced[] = 1093{ 1094 "glNamedRenderbufferStorageMultisampleAdvancedAMD", 1095 "glRenderbufferStorageMultisampleAdvancedAMD", 1096}; 1097 1098static const char* s_GL_AMD_performance_monitor[] = 1099{ 1100 "glBeginPerfMonitorAMD", 1101 "glDeletePerfMonitorsAMD", 1102 "glEndPerfMonitorAMD", 1103 "glGenPerfMonitorsAMD", 1104 "glGetPerfMonitorCounterDataAMD", 1105 "glGetPerfMonitorCounterInfoAMD", 1106 "glGetPerfMonitorCounterStringAMD", 1107 "glGetPerfMonitorCountersAMD", 1108 "glGetPerfMonitorGroupStringAMD", 1109 "glGetPerfMonitorGroupsAMD", 1110 "glSelectPerfMonitorCountersAMD", 1111}; 1112 1113static const char* s_GL_ANGLE_framebuffer_blit[] = 1114{ 1115 "glBlitFramebufferANGLE", 1116}; 1117 1118static const char* s_GL_ANGLE_framebuffer_multisample[] = 1119{ 1120 "glRenderbufferStorageMultisampleANGLE", 1121}; 1122 1123static const char* s_GL_ANGLE_instanced_arrays[] = 1124{ 1125 "glDrawArraysInstancedANGLE", 1126 "glDrawElementsInstancedANGLE", 1127 "glVertexAttribDivisorANGLE", 1128}; 1129 1130static const char* s_GL_ANGLE_translated_shader_source[] = 1131{ 1132 "glGetTranslatedShaderSourceANGLE", 1133}; 1134 1135static const char* s_GL_EXT_EGL_image_storage[] = 1136{ 1137 "glEGLImageTargetTexStorageEXT", 1138 "glEGLImageTargetTextureStorageEXT", 1139}; 1140 1141static const char* s_GL_EXT_base_instance[] = 1142{ 1143 "glDrawArraysInstancedBaseInstanceEXT", 1144 "glDrawElementsInstancedBaseInstanceEXT", 1145 "glDrawElementsInstancedBaseVertexBaseInstanceEXT", 1146}; 1147 1148static const char* s_GL_EXT_blend_func_extended[] = 1149{ 1150 "glBindFragDataLocationEXT", 1151 "glBindFragDataLocationIndexedEXT", 1152 "glGetFragDataIndexEXT", 1153 "glGetProgramResourceLocationIndexEXT", 1154}; 1155 1156static const char* s_GL_EXT_buffer_storage[] = 1157{ 1158 "glBufferStorageEXT", 1159}; 1160 1161static const char* s_GL_EXT_clear_texture[] = 1162{ 1163 "glClearTexImageEXT", 1164 "glClearTexSubImageEXT", 1165}; 1166 1167static const char* s_GL_EXT_clip_control[] = 1168{ 1169 "glClipControlEXT", 1170}; 1171 1172static const char* s_GL_EXT_copy_image[] = 1173{ 1174 "glCopyImageSubDataEXT", 1175}; 1176 1177static const char* s_GL_EXT_debug_label[] = 1178{ 1179 "glGetObjectLabelEXT", 1180 "glLabelObjectEXT", 1181}; 1182 1183static const char* s_GL_EXT_disjoint_timer_query[] = 1184{ 1185 "glBeginQueryEXT", 1186 "glDeleteQueriesEXT", 1187 "glEndQueryEXT", 1188 "glGenQueriesEXT", 1189 "glGetInteger64vEXT", 1190 "glGetQueryObjecti64vEXT", 1191 "glGetQueryObjectivEXT", 1192 "glGetQueryObjectui64vEXT", 1193 "glGetQueryObjectuivEXT", 1194 "glGetQueryivEXT", 1195 "glIsQueryEXT", 1196 "glQueryCounterEXT", 1197}; 1198 1199static const char* s_GL_EXT_draw_buffers[] = 1200{ 1201 "glDrawBuffersEXT", 1202}; 1203 1204static const char* s_GL_EXT_draw_buffers_indexed[] = 1205{ 1206 "glBlendEquationSeparateiEXT", 1207 "glBlendEquationiEXT", 1208 "glBlendFuncSeparateiEXT", 1209 "glBlendFunciEXT", 1210 "glColorMaskiEXT", 1211 "glDisableiEXT", 1212 "glEnableiEXT", 1213 "glIsEnablediEXT", 1214}; 1215 1216static const char* s_GL_EXT_draw_elements_base_vertex[] = 1217{ 1218 "glDrawElementsBaseVertexEXT", 1219 "glDrawElementsInstancedBaseVertexEXT", 1220 "glDrawRangeElementsBaseVertexEXT", 1221 "glMultiDrawElementsBaseVertexEXT", 1222}; 1223 1224static const char* s_GL_EXT_draw_instanced[] = 1225{ 1226 "glDrawArraysInstancedEXT", 1227 "glDrawElementsInstancedEXT", 1228}; 1229 1230static const char* s_GL_EXT_draw_transform_feedback[] = 1231{ 1232 "glDrawTransformFeedbackEXT", 1233 "glDrawTransformFeedbackInstancedEXT", 1234}; 1235 1236static const char* s_GL_EXT_external_buffer[] = 1237{ 1238 "glBufferStorageExternalEXT", 1239 "glNamedBufferStorageExternalEXT", 1240}; 1241 1242static const char* s_GL_EXT_fragment_shading_rate[] = 1243{ 1244 "glFramebufferShadingRateEXT", 1245 "glGetFragmentShadingRatesEXT", 1246 "glShadingRateEXT", 1247 "glShadingRateCombinerOpsEXT", 1248}; 1249 1250static const char* s_GL_EXT_geometry_shader[] = 1251{ 1252 "glFramebufferTextureEXT", 1253}; 1254 1255static const char* s_GL_EXT_instanced_arrays[] = 1256{ 1257 "glDrawArraysInstancedEXT", 1258 "glDrawElementsInstancedEXT", 1259 "glVertexAttribDivisorEXT", 1260}; 1261 1262static const char* s_GL_EXT_memory_object[] = 1263{ 1264 "glBufferStorageMemEXT", 1265 "glCreateMemoryObjectsEXT", 1266 "glDeleteMemoryObjectsEXT", 1267 "glGetMemoryObjectParameterivEXT", 1268 "glGetUnsignedBytevEXT", 1269 "glGetUnsignedBytei_vEXT", 1270 "glIsMemoryObjectEXT", 1271 "glMemoryObjectParameterivEXT", 1272 "glNamedBufferStorageMemEXT", 1273 "glTexStorageMem2DEXT", 1274 "glTexStorageMem2DMultisampleEXT", 1275 "glTexStorageMem3DEXT", 1276 "glTexStorageMem3DMultisampleEXT", 1277 "glTextureStorageMem2DEXT", 1278 "glTextureStorageMem2DMultisampleEXT", 1279 "glTextureStorageMem3DEXT", 1280 "glTextureStorageMem3DMultisampleEXT", 1281}; 1282 1283static const char* s_GL_EXT_memory_object_fd[] = 1284{ 1285 "glImportMemoryFdEXT", 1286}; 1287 1288static const char* s_GL_EXT_memory_object_win32[] = 1289{ 1290 "glImportMemoryWin32HandleEXT", 1291 "glImportMemoryWin32NameEXT", 1292}; 1293 1294static const char* s_GL_EXT_multi_draw_indirect[] = 1295{ 1296 "glMultiDrawArraysIndirectEXT", 1297 "glMultiDrawElementsIndirectEXT", 1298}; 1299 1300static const char* s_GL_EXT_multiview_draw_buffers[] = 1301{ 1302 "glDrawBuffersIndexedEXT", 1303 "glGetIntegeri_vEXT", 1304 "glReadBufferIndexedEXT", 1305}; 1306 1307static const char* s_GL_EXT_occlusion_query_boolean[] = 1308{ 1309 "glBeginQueryEXT", 1310 "glDeleteQueriesEXT", 1311 "glEndQueryEXT", 1312 "glGenQueriesEXT", 1313 "glGetQueryObjectuivEXT", 1314 "glGetQueryivEXT", 1315 "glIsQueryEXT", 1316}; 1317 1318static const char* s_GL_EXT_polygon_offset_clamp[] = 1319{ 1320 "glPolygonOffsetClampEXT", 1321}; 1322 1323static const char* s_GL_EXT_primitive_bounding_box[] = 1324{ 1325 "glPrimitiveBoundingBoxEXT", 1326}; 1327 1328static const char* s_GL_EXT_raster_multisample[] = 1329{ 1330 "glRasterSamplesEXT", 1331}; 1332 1333static const char* s_GL_EXT_semaphore[] = 1334{ 1335 "glDeleteSemaphoresEXT", 1336 "glGenSemaphoresEXT", 1337 "glGetSemaphoreParameterui64vEXT", 1338 "glGetUnsignedBytevEXT", 1339 "glGetUnsignedBytei_vEXT", 1340 "glIsSemaphoreEXT", 1341 "glSemaphoreParameterui64vEXT", 1342 "glSignalSemaphoreEXT", 1343 "glWaitSemaphoreEXT", 1344}; 1345 1346static const char* s_GL_EXT_semaphore_fd[] = 1347{ 1348 "glImportSemaphoreFdEXT", 1349}; 1350 1351static const char* s_GL_EXT_semaphore_win32[] = 1352{ 1353 "glImportSemaphoreWin32HandleEXT", 1354 "glImportSemaphoreWin32NameEXT", 1355}; 1356 1357static const char* s_GL_EXT_separate_shader_objects[] = 1358{ 1359 "glActiveShaderProgramEXT", 1360 "glBindProgramPipelineEXT", 1361 "glCreateShaderProgramvEXT", 1362 "glDeleteProgramPipelinesEXT", 1363 "glGenProgramPipelinesEXT", 1364 "glGetProgramPipelineInfoLogEXT", 1365 "glGetProgramPipelineivEXT", 1366 "glIsProgramPipelineEXT", 1367 "glProgramParameteriEXT", 1368 "glProgramUniform1fEXT", 1369 "glProgramUniform1fvEXT", 1370 "glProgramUniform1iEXT", 1371 "glProgramUniform1ivEXT", 1372 "glProgramUniform1uiEXT", 1373 "glProgramUniform1uivEXT", 1374 "glProgramUniform2fEXT", 1375 "glProgramUniform2fvEXT", 1376 "glProgramUniform2iEXT", 1377 "glProgramUniform2ivEXT", 1378 "glProgramUniform2uiEXT", 1379 "glProgramUniform2uivEXT", 1380 "glProgramUniform3fEXT", 1381 "glProgramUniform3fvEXT", 1382 "glProgramUniform3iEXT", 1383 "glProgramUniform3ivEXT", 1384 "glProgramUniform3uiEXT", 1385 "glProgramUniform3uivEXT", 1386 "glProgramUniform4fEXT", 1387 "glProgramUniform4fvEXT", 1388 "glProgramUniform4iEXT", 1389 "glProgramUniform4ivEXT", 1390 "glProgramUniform4uiEXT", 1391 "glProgramUniform4uivEXT", 1392 "glProgramUniformMatrix2fvEXT", 1393 "glProgramUniformMatrix2x3fvEXT", 1394 "glProgramUniformMatrix2x4fvEXT", 1395 "glProgramUniformMatrix3fvEXT", 1396 "glProgramUniformMatrix3x2fvEXT", 1397 "glProgramUniformMatrix3x4fvEXT", 1398 "glProgramUniformMatrix4fvEXT", 1399 "glProgramUniformMatrix4x2fvEXT", 1400 "glProgramUniformMatrix4x3fvEXT", 1401 "glUseProgramStagesEXT", 1402 "glValidateProgramPipelineEXT", 1403}; 1404 1405static const char* s_GL_EXT_shader_framebuffer_fetch_non_coherent[] = 1406{ 1407 "glFramebufferFetchBarrierEXT", 1408}; 1409 1410static const char* s_GL_EXT_shader_pixel_local_storage2[] = 1411{ 1412 "glClearPixelLocalStorageuiEXT", 1413 "glFramebufferPixelLocalStorageSizeEXT", 1414 "glGetFramebufferPixelLocalStorageSizeEXT", 1415}; 1416 1417static const char* s_GL_EXT_sparse_texture[] = 1418{ 1419 "glTexPageCommitmentEXT", 1420}; 1421 1422static const char* s_GL_EXT_tessellation_shader[] = 1423{ 1424 "glPatchParameteriEXT", 1425}; 1426 1427static const char* s_GL_EXT_texture_border_clamp[] = 1428{ 1429 "glGetSamplerParameterIivEXT", 1430 "glGetSamplerParameterIuivEXT", 1431 "glGetTexParameterIivEXT", 1432 "glGetTexParameterIuivEXT", 1433 "glSamplerParameterIivEXT", 1434 "glSamplerParameterIuivEXT", 1435 "glTexParameterIivEXT", 1436 "glTexParameterIuivEXT", 1437}; 1438 1439static const char* s_GL_EXT_texture_buffer[] = 1440{ 1441 "glTexBufferEXT", 1442 "glTexBufferRangeEXT", 1443}; 1444 1445static const char* s_GL_EXT_texture_storage_compression[] = 1446{ 1447 "glTexStorageAttribs2DEXT", 1448 "glTexStorageAttribs3DEXT", 1449}; 1450 1451static const char* s_GL_EXT_texture_view[] = 1452{ 1453 "glTextureViewEXT", 1454}; 1455 1456static const char* s_GL_NV_timeline_semaphore[] = 1457{ 1458 "glCreateSemaphoresNV", 1459 "glGetSemaphoreParameterivNV", 1460 "glSemaphoreParameterivNV", 1461}; 1462 1463static const char* s_GL_EXT_win32_keyed_mutex[] = 1464{ 1465 "glAcquireKeyedMutexWin32EXT", 1466 "glReleaseKeyedMutexWin32EXT", 1467}; 1468 1469static const char* s_GL_EXT_window_rectangles[] = 1470{ 1471 "glWindowRectanglesEXT", 1472}; 1473 1474static const char* s_GL_IMG_bindless_texture[] = 1475{ 1476 "glGetTextureHandleIMG", 1477 "glGetTextureSamplerHandleIMG", 1478 "glProgramUniformHandleui64IMG", 1479 "glProgramUniformHandleui64vIMG", 1480 "glUniformHandleui64IMG", 1481 "glUniformHandleui64vIMG", 1482}; 1483 1484static const char* s_GL_IMG_framebuffer_downsample[] = 1485{ 1486 "glFramebufferTexture2DDownsampleIMG", 1487 "glFramebufferTextureLayerDownsampleIMG", 1488}; 1489 1490static const char* s_GL_INTEL_framebuffer_CMAA[] = 1491{ 1492 "glApplyFramebufferAttachmentCMAAINTEL", 1493}; 1494 1495static const char* s_GL_INTEL_performance_query[] = 1496{ 1497 "glBeginPerfQueryINTEL", 1498 "glCreatePerfQueryINTEL", 1499 "glDeletePerfQueryINTEL", 1500 "glEndPerfQueryINTEL", 1501 "glGetFirstPerfQueryIdINTEL", 1502 "glGetNextPerfQueryIdINTEL", 1503 "glGetPerfCounterInfoINTEL", 1504 "glGetPerfQueryDataINTEL", 1505 "glGetPerfQueryIdByNameINTEL", 1506 "glGetPerfQueryInfoINTEL", 1507}; 1508 1509static const char* s_GL_KHR_blend_equation_advanced[] = 1510{ 1511 "glBlendBarrierKHR", 1512}; 1513 1514static const char* s_GL_KHR_debug[] = 1515{ 1516 "glDebugMessageCallbackKHR", 1517 "glDebugMessageControlKHR", 1518 "glDebugMessageInsertKHR", 1519 "glGetDebugMessageLogKHR", 1520 "glGetObjectLabelKHR", 1521 "glGetObjectPtrLabelKHR", 1522 "glGetPointervKHR", 1523 "glObjectLabelKHR", 1524 "glObjectPtrLabelKHR", 1525 "glPopDebugGroupKHR", 1526 "glPushDebugGroupKHR", 1527}; 1528 1529static const char* s_GL_KHR_robustness[] = 1530{ 1531 "glGetGraphicsResetStatusKHR", 1532 "glGetnUniformfvKHR", 1533 "glGetnUniformivKHR", 1534 "glGetnUniformuivKHR", 1535 "glReadnPixelsKHR", 1536}; 1537 1538static const char* s_GL_KHR_parallel_shader_compile[] = 1539{ 1540 "glMaxShaderCompilerThreadsKHR", 1541}; 1542 1543static const char* s_GL_MESA_framebuffer_flip_y[] = 1544{ 1545 "glFramebufferParameteriMESA", 1546 "glGetFramebufferParameterivMESA", 1547}; 1548 1549static const char* s_GL_NV_bindless_texture[] = 1550{ 1551 "glGetImageHandleNV", 1552 "glGetTextureHandleNV", 1553 "glGetTextureSamplerHandleNV", 1554 "glIsImageHandleResidentNV", 1555 "glIsTextureHandleResidentNV", 1556 "glMakeImageHandleNonResidentNV", 1557 "glMakeImageHandleResidentNV", 1558 "glMakeTextureHandleNonResidentNV", 1559 "glMakeTextureHandleResidentNV", 1560 "glProgramUniformHandleui64NV", 1561 "glProgramUniformHandleui64vNV", 1562 "glUniformHandleui64NV", 1563 "glUniformHandleui64vNV", 1564}; 1565 1566static const char* s_GL_NV_blend_equation_advanced[] = 1567{ 1568 "glBlendBarrierNV", 1569 "glBlendParameteriNV", 1570}; 1571 1572static const char* s_GL_NV_clip_space_w_scaling[] = 1573{ 1574 "glViewportPositionWScaleNV", 1575}; 1576 1577static const char* s_GL_NV_conditional_render[] = 1578{ 1579 "glBeginConditionalRenderNV", 1580 "glEndConditionalRenderNV", 1581}; 1582 1583static const char* s_GL_NV_conservative_raster[] = 1584{ 1585 "glSubpixelPrecisionBiasNV", 1586}; 1587 1588static const char* s_GL_NV_conservative_raster_pre_snap_triangles[] = 1589{ 1590 "glConservativeRasterParameteriNV", 1591}; 1592 1593static const char* s_GL_NV_copy_buffer[] = 1594{ 1595 "glCopyBufferSubDataNV", 1596}; 1597 1598static const char* s_GL_NV_coverage_sample[] = 1599{ 1600 "glCoverageMaskNV", 1601 "glCoverageOperationNV", 1602}; 1603 1604static const char* s_GL_NV_draw_buffers[] = 1605{ 1606 "glDrawBuffersNV", 1607}; 1608 1609static const char* s_GL_NV_draw_instanced[] = 1610{ 1611 "glDrawArraysInstancedNV", 1612 "glDrawElementsInstancedNV", 1613}; 1614 1615static const char* s_GL_NV_draw_vulkan_image[] = 1616{ 1617 "glDrawVkImageNV", 1618 "glGetVkProcAddrNV", 1619 "glWaitVkSemaphoreNV", 1620 "glSignalVkSemaphoreNV", 1621 "glSignalVkFenceNV", 1622}; 1623 1624static const char* s_GL_NV_fragment_coverage_to_color[] = 1625{ 1626 "glFragmentCoverageColorNV", 1627}; 1628 1629static const char* s_GL_NV_framebuffer_blit[] = 1630{ 1631 "glBlitFramebufferNV", 1632}; 1633 1634static const char* s_GL_NV_framebuffer_mixed_samples[] = 1635{ 1636 "glCoverageModulationNV", 1637 "glCoverageModulationTableNV", 1638 "glGetCoverageModulationTableNV", 1639 "glRasterSamplesEXT", 1640}; 1641 1642static const char* s_GL_NV_framebuffer_multisample[] = 1643{ 1644 "glRenderbufferStorageMultisampleNV", 1645}; 1646 1647static const char* s_GL_NV_gpu_shader5[] = 1648{ 1649 "glGetUniformi64vNV", 1650 "glProgramUniform1i64NV", 1651 "glProgramUniform1i64vNV", 1652 "glProgramUniform1ui64NV", 1653 "glProgramUniform1ui64vNV", 1654 "glProgramUniform2i64NV", 1655 "glProgramUniform2i64vNV", 1656 "glProgramUniform2ui64NV", 1657 "glProgramUniform2ui64vNV", 1658 "glProgramUniform3i64NV", 1659 "glProgramUniform3i64vNV", 1660 "glProgramUniform3ui64NV", 1661 "glProgramUniform3ui64vNV", 1662 "glProgramUniform4i64NV", 1663 "glProgramUniform4i64vNV", 1664 "glProgramUniform4ui64NV", 1665 "glProgramUniform4ui64vNV", 1666 "glUniform1i64NV", 1667 "glUniform1i64vNV", 1668 "glUniform1ui64NV", 1669 "glUniform1ui64vNV", 1670 "glUniform2i64NV", 1671 "glUniform2i64vNV", 1672 "glUniform2ui64NV", 1673 "glUniform2ui64vNV", 1674 "glUniform3i64NV", 1675 "glUniform3i64vNV", 1676 "glUniform3ui64NV", 1677 "glUniform3ui64vNV", 1678 "glUniform4i64NV", 1679 "glUniform4i64vNV", 1680 "glUniform4ui64NV", 1681 "glUniform4ui64vNV", 1682}; 1683 1684static const char* s_GL_NV_instanced_arrays[] = 1685{ 1686 "glVertexAttribDivisorNV", 1687}; 1688 1689static const char* s_GL_NV_internalformat_sample_query[] = 1690{ 1691 "glGetInternalformatSampleivNV", 1692}; 1693 1694static const char* s_GL_NV_memory_attachment[] = 1695{ 1696 "glBufferAttachMemoryNV", 1697 "glGetMemoryObjectDetachedResourcesuivNV", 1698 "glNamedBufferAttachMemoryNV", 1699 "glResetMemoryObjectParameterNV", 1700 "glTexAttachMemoryNV", 1701 "glTextureAttachMemoryNV", 1702}; 1703 1704static const char* s_GL_NV_memory_object_sparse[] = 1705{ 1706 "glBufferPageCommitmentMemNV", 1707 "glNamedBufferPageCommitmentMemNV", 1708 "glTexPageCommitmentMemNV", 1709 "glTexturePageCommitmentMemNV", 1710}; 1711 1712static const char* s_GL_NV_mesh_shader[] = 1713{ 1714 "glDrawMeshTasksNV", 1715 "glDrawMeshTasksIndirectNV", 1716 "glMultiDrawMeshTasksIndirectNV", 1717 "glMultiDrawMeshTasksIndirectCountNV", 1718}; 1719 1720static const char* s_GL_NV_non_square_matrices[] = 1721{ 1722 "glUniformMatrix2x3fvNV", 1723 "glUniformMatrix2x4fvNV", 1724 "glUniformMatrix3x2fvNV", 1725 "glUniformMatrix3x4fvNV", 1726 "glUniformMatrix4x2fvNV", 1727 "glUniformMatrix4x3fvNV", 1728}; 1729 1730static const char* s_GL_NV_path_rendering[] = 1731{ 1732 "glCopyPathNV", 1733 "glCoverFillPathInstancedNV", 1734 "glCoverFillPathNV", 1735 "glCoverStrokePathInstancedNV", 1736 "glCoverStrokePathNV", 1737 "glDeletePathsNV", 1738 "glGenPathsNV", 1739 "glGetPathCommandsNV", 1740 "glGetPathCoordsNV", 1741 "glGetPathDashArrayNV", 1742 "glGetPathLengthNV", 1743 "glGetPathMetricRangeNV", 1744 "glGetPathMetricsNV", 1745 "glGetPathParameterfvNV", 1746 "glGetPathParameterivNV", 1747 "glGetPathSpacingNV", 1748 "glGetProgramResourcefvNV", 1749 "glInterpolatePathsNV", 1750 "glIsPathNV", 1751 "glIsPointInFillPathNV", 1752 "glIsPointInStrokePathNV", 1753 "glMatrixFrustumEXT", 1754 "glMatrixLoad3x2fNV", 1755 "glMatrixLoad3x3fNV", 1756 "glMatrixLoadIdentityEXT", 1757 "glMatrixLoadTranspose3x3fNV", 1758 "glMatrixLoadTransposedEXT", 1759 "glMatrixLoadTransposefEXT", 1760 "glMatrixLoaddEXT", 1761 "glMatrixLoadfEXT", 1762 "glMatrixMult3x2fNV", 1763 "glMatrixMult3x3fNV", 1764 "glMatrixMultTranspose3x3fNV", 1765 "glMatrixMultTransposedEXT", 1766 "glMatrixMultTransposefEXT", 1767 "glMatrixMultdEXT", 1768 "glMatrixMultfEXT", 1769 "glMatrixOrthoEXT", 1770 "glMatrixPopEXT", 1771 "glMatrixPushEXT", 1772 "glMatrixRotatedEXT", 1773 "glMatrixRotatefEXT", 1774 "glMatrixScaledEXT", 1775 "glMatrixScalefEXT", 1776 "glMatrixTranslatedEXT", 1777 "glMatrixTranslatefEXT", 1778 "glPathCommandsNV", 1779 "glPathCoordsNV", 1780 "glPathCoverDepthFuncNV", 1781 "glPathDashArrayNV", 1782 "glPathGlyphIndexArrayNV", 1783 "glPathGlyphIndexRangeNV", 1784 "glPathGlyphRangeNV", 1785 "glPathGlyphsNV", 1786 "glPathMemoryGlyphIndexArrayNV", 1787 "glPathParameterfNV", 1788 "glPathParameterfvNV", 1789 "glPathParameteriNV", 1790 "glPathParameterivNV", 1791 "glPathStencilDepthOffsetNV", 1792 "glPathStencilFuncNV", 1793 "glPathStringNV", 1794 "glPathSubCommandsNV", 1795 "glPathSubCoordsNV", 1796 "glPointAlongPathNV", 1797 "glProgramPathFragmentInputGenNV", 1798 "glStencilFillPathInstancedNV", 1799 "glStencilFillPathNV", 1800 "glStencilStrokePathInstancedNV", 1801 "glStencilStrokePathNV", 1802 "glStencilThenCoverFillPathInstancedNV", 1803 "glStencilThenCoverFillPathNV", 1804 "glStencilThenCoverStrokePathInstancedNV", 1805 "glStencilThenCoverStrokePathNV", 1806 "glTransformPathNV", 1807 "glWeightPathsNV", 1808}; 1809 1810static const char* s_GL_NV_polygon_mode[] = 1811{ 1812 "glPolygonModeNV", 1813}; 1814 1815static const char* s_GL_NV_read_buffer[] = 1816{ 1817 "glReadBufferNV", 1818}; 1819 1820static const char* s_GL_NV_sample_locations[] = 1821{ 1822 "glFramebufferSampleLocationsfvNV", 1823 "glNamedFramebufferSampleLocationsfvNV", 1824 "glResolveDepthValuesNV", 1825}; 1826 1827static const char* s_GL_NV_scissor_exclusive[] = 1828{ 1829 "glScissorExclusiveArrayvNV", 1830 "glScissorExclusiveNV", 1831}; 1832 1833static const char* s_GL_NV_shading_rate_image[] = 1834{ 1835 "glBindShadingRateImageNV", 1836 "glGetShadingRateImagePaletteNV", 1837 "glGetShadingRateSampleLocationivNV", 1838 "glShadingRateImageBarrierNV", 1839 "glShadingRateImagePaletteNV", 1840 "glShadingRateSampleOrderNV", 1841 "glShadingRateSampleOrderCustomNV", 1842}; 1843 1844static const char* s_GL_NV_viewport_array[] = 1845{ 1846 "glDepthRangeArrayfvNV", 1847 "glDepthRangeIndexedfNV", 1848 "glDisableiNV", 1849 "glEnableiNV", 1850 "glGetFloati_vNV", 1851 "glIsEnablediNV", 1852 "glScissorArrayvNV", 1853 "glScissorIndexedNV", 1854 "glScissorIndexedvNV", 1855 "glViewportArrayvNV", 1856 "glViewportIndexedfNV", 1857 "glViewportIndexedfvNV", 1858}; 1859 1860static const char* s_GL_NV_viewport_swizzle[] = 1861{ 1862 "glViewportSwizzleNV", 1863}; 1864 1865static const char* s_GL_OES_copy_image[] = 1866{ 1867 "glCopyImageSubDataOES", 1868}; 1869 1870static const char* s_GL_OES_draw_buffers_indexed[] = 1871{ 1872 "glBlendEquationSeparateiOES", 1873 "glBlendEquationiOES", 1874 "glBlendFuncSeparateiOES", 1875 "glBlendFunciOES", 1876 "glColorMaskiOES", 1877 "glDisableiOES", 1878 "glEnableiOES", 1879 "glIsEnablediOES", 1880}; 1881 1882static const char* s_GL_OES_draw_elements_base_vertex[] = 1883{ 1884 "glDrawElementsBaseVertexOES", 1885 "glDrawElementsInstancedBaseVertexOES", 1886 "glDrawRangeElementsBaseVertexOES", 1887 "glMultiDrawElementsBaseVertexEXT", 1888}; 1889 1890static const char* s_GL_OES_geometry_shader[] = 1891{ 1892 "glFramebufferTextureOES", 1893}; 1894 1895static const char* s_GL_OES_get_program_binary[] = 1896{ 1897 "glGetProgramBinaryOES", 1898 "glProgramBinaryOES", 1899}; 1900 1901static const char* s_GL_OES_primitive_bounding_box[] = 1902{ 1903 "glPrimitiveBoundingBoxOES", 1904}; 1905 1906static const char* s_GL_OES_sample_shading[] = 1907{ 1908 "glMinSampleShadingOES", 1909}; 1910 1911static const char* s_GL_OES_tessellation_shader[] = 1912{ 1913 "glPatchParameteriOES", 1914}; 1915 1916static const char* s_GL_OES_texture_3D[] = 1917{ 1918 "glCompressedTexImage3DOES", 1919 "glCompressedTexSubImage3DOES", 1920 "glCopyTexSubImage3DOES", 1921 "glFramebufferTexture3DOES", 1922 "glTexImage3DOES", 1923 "glTexSubImage3DOES", 1924}; 1925 1926static const char* s_GL_OES_texture_border_clamp[] = 1927{ 1928 "glGetSamplerParameterIivOES", 1929 "glGetSamplerParameterIuivOES", 1930 "glGetTexParameterIivOES", 1931 "glGetTexParameterIuivOES", 1932 "glSamplerParameterIivOES", 1933 "glSamplerParameterIuivOES", 1934 "glTexParameterIivOES", 1935 "glTexParameterIuivOES", 1936}; 1937 1938static const char* s_GL_OES_texture_buffer[] = 1939{ 1940 "glTexBufferOES", 1941 "glTexBufferRangeOES", 1942}; 1943 1944static const char* s_GL_OES_texture_storage_multisample_2d_array[] = 1945{ 1946 "glTexStorage3DMultisampleOES", 1947}; 1948 1949static const char* s_GL_OES_texture_view[] = 1950{ 1951 "glTextureViewOES", 1952}; 1953 1954static const char* s_GL_OES_viewport_array[] = 1955{ 1956 "glDepthRangeArrayfvOES", 1957 "glDepthRangeIndexedfOES", 1958 "glDisableiOES", 1959 "glEnableiOES", 1960 "glGetFloati_vOES", 1961 "glIsEnablediOES", 1962 "glScissorArrayvOES", 1963 "glScissorIndexedOES", 1964 "glScissorIndexedvOES", 1965 "glViewportArrayvOES", 1966 "glViewportIndexedfOES", 1967 "glViewportIndexedfvOES", 1968}; 1969 1970static const char* s_GL_OVR_multiview[] = 1971{ 1972 "glFramebufferTextureMultiviewOVR", 1973}; 1974 1975static const char* s_GL_OVR_multiview_multisampled_render_to_texture[] = 1976{ 1977 "glFramebufferTextureMultisampleMultiviewOVR", 1978}; 1979 1980static const char* s_GL_QCOM_alpha_test[] = 1981{ 1982 "glAlphaFuncQCOM", 1983}; 1984 1985static const char* s_GL_QCOM_framebuffer_foveated[] = 1986{ 1987 "glFramebufferFoveationConfigQCOM", 1988 "glFramebufferFoveationParametersQCOM", 1989}; 1990 1991static const char* s_GL_QCOM_motion_estimation[] = 1992{ 1993 "glTexEstimateMotionQCOM", 1994 "glTexEstimateMotionRegionsQCOM", 1995}; 1996 1997static const char* s_GL_QCOM_frame_extrapolation[] = 1998{ 1999 "glExtrapolateTex2DQCOM", 2000}; 2001 2002static const char* s_GL_QCOM_texture_foveated[] = 2003{ 2004 "glTextureFoveationParametersQCOM", 2005}; 2006 2007static const char* s_GL_QCOM_shader_framebuffer_fetch_noncoherent[] = 2008{ 2009 "glFramebufferFetchBarrierQCOM", 2010}; 2011 2012static const char* s_GL_QCOM_shading_rate[] = 2013{ 2014 "glShadingRateQCOM", 2015}; 2016 2017static const struct 2018{ 2019 const char* name; 2020 const int numFunctions; 2021 const char* const* functions; 2022} s_extensions[] = 2023{ 2024 { "EGL_ANDROID_blob_cache", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_blob_cache), s_EGL_ANDROID_blob_cache }, 2025 { "EGL_ANDROID_create_native_client_buffer", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_create_native_client_buffer), s_EGL_ANDROID_create_native_client_buffer }, 2026 { "EGL_ANDROID_get_native_client_buffer", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_get_native_client_buffer), s_EGL_ANDROID_get_native_client_buffer }, 2027 { "EGL_ANDROID_native_fence_sync", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_native_fence_sync), s_EGL_ANDROID_native_fence_sync }, 2028 { "EGL_ANDROID_presentation_time", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_presentation_time), s_EGL_ANDROID_presentation_time }, 2029 { "EGL_ANDROID_get_frame_timestamps", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_get_frame_timestamps), s_EGL_ANDROID_get_frame_timestamps }, 2030 { "EGL_ANGLE_query_surface_pointer", DE_LENGTH_OF_ARRAY(s_EGL_ANGLE_query_surface_pointer), s_EGL_ANGLE_query_surface_pointer }, 2031 { "EGL_ANGLE_sync_control_rate", DE_LENGTH_OF_ARRAY(s_EGL_ANGLE_sync_control_rate), s_EGL_ANGLE_sync_control_rate }, 2032 { "EGL_EXT_client_sync", DE_LENGTH_OF_ARRAY(s_EGL_EXT_client_sync), s_EGL_EXT_client_sync }, 2033 { "EGL_EXT_device_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_base), s_EGL_EXT_device_base }, 2034 { "EGL_EXT_device_enumeration", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_enumeration), s_EGL_EXT_device_enumeration }, 2035 { "EGL_EXT_device_query", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_query), s_EGL_EXT_device_query }, 2036 { "EGL_EXT_image_dma_buf_import_modifiers", DE_LENGTH_OF_ARRAY(s_EGL_EXT_image_dma_buf_import_modifiers), s_EGL_EXT_image_dma_buf_import_modifiers }, 2037 { "EGL_EXT_output_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_output_base), s_EGL_EXT_output_base }, 2038 { "EGL_EXT_platform_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_platform_base), s_EGL_EXT_platform_base }, 2039 { "EGL_EXT_stream_consumer_egloutput", DE_LENGTH_OF_ARRAY(s_EGL_EXT_stream_consumer_egloutput), s_EGL_EXT_stream_consumer_egloutput }, 2040 { "EGL_EXT_swap_buffers_with_damage", DE_LENGTH_OF_ARRAY(s_EGL_EXT_swap_buffers_with_damage), s_EGL_EXT_swap_buffers_with_damage }, 2041 { "EGL_EXT_sync_reuse", DE_LENGTH_OF_ARRAY(s_EGL_EXT_sync_reuse), s_EGL_EXT_sync_reuse }, 2042 { "EGL_HI_clientpixmap", DE_LENGTH_OF_ARRAY(s_EGL_HI_clientpixmap), s_EGL_HI_clientpixmap }, 2043 { "EGL_KHR_cl_event2", DE_LENGTH_OF_ARRAY(s_EGL_KHR_cl_event2), s_EGL_KHR_cl_event2 }, 2044 { "EGL_KHR_debug", DE_LENGTH_OF_ARRAY(s_EGL_KHR_debug), s_EGL_KHR_debug }, 2045 { "EGL_KHR_display_reference", DE_LENGTH_OF_ARRAY(s_EGL_KHR_display_reference), s_EGL_KHR_display_reference }, 2046 { "EGL_KHR_fence_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_fence_sync), s_EGL_KHR_fence_sync }, 2047 { "EGL_KHR_image", DE_LENGTH_OF_ARRAY(s_EGL_KHR_image), s_EGL_KHR_image }, 2048 { "EGL_KHR_image_base", DE_LENGTH_OF_ARRAY(s_EGL_KHR_image_base), s_EGL_KHR_image_base }, 2049 { "EGL_KHR_lock_surface", DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface), s_EGL_KHR_lock_surface }, 2050 { "EGL_KHR_lock_surface3", DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface3), s_EGL_KHR_lock_surface3 }, 2051 { "EGL_KHR_partial_update", DE_LENGTH_OF_ARRAY(s_EGL_KHR_partial_update), s_EGL_KHR_partial_update }, 2052 { "EGL_KHR_reusable_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_reusable_sync), s_EGL_KHR_reusable_sync }, 2053 { "EGL_KHR_stream", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream), s_EGL_KHR_stream }, 2054 { "EGL_KHR_stream_attrib", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_attrib), s_EGL_KHR_stream_attrib }, 2055 { "EGL_KHR_stream_consumer_gltexture", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_consumer_gltexture), s_EGL_KHR_stream_consumer_gltexture }, 2056 { "EGL_KHR_stream_cross_process_fd", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_cross_process_fd), s_EGL_KHR_stream_cross_process_fd }, 2057 { "EGL_KHR_stream_fifo", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_fifo), s_EGL_KHR_stream_fifo }, 2058 { "EGL_KHR_stream_producer_eglsurface", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_producer_eglsurface), s_EGL_KHR_stream_producer_eglsurface }, 2059 { "EGL_KHR_swap_buffers_with_damage", DE_LENGTH_OF_ARRAY(s_EGL_KHR_swap_buffers_with_damage), s_EGL_KHR_swap_buffers_with_damage }, 2060 { "EGL_KHR_wait_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_wait_sync), s_EGL_KHR_wait_sync }, 2061 { "EGL_MESA_drm_image", DE_LENGTH_OF_ARRAY(s_EGL_MESA_drm_image), s_EGL_MESA_drm_image }, 2062 { "EGL_MESA_image_dma_buf_export", DE_LENGTH_OF_ARRAY(s_EGL_MESA_image_dma_buf_export), s_EGL_MESA_image_dma_buf_export }, 2063 { "EGL_MESA_query_driver", DE_LENGTH_OF_ARRAY(s_EGL_MESA_query_driver), s_EGL_MESA_query_driver }, 2064 { "EGL_NOK_swap_region", DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region), s_EGL_NOK_swap_region }, 2065 { "EGL_NOK_swap_region2", DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region2), s_EGL_NOK_swap_region2 }, 2066 { "EGL_NV_native_query", DE_LENGTH_OF_ARRAY(s_EGL_NV_native_query), s_EGL_NV_native_query }, 2067 { "EGL_NV_post_sub_buffer", DE_LENGTH_OF_ARRAY(s_EGL_NV_post_sub_buffer), s_EGL_NV_post_sub_buffer }, 2068 { "EGL_NV_stream_consumer_gltexture_yuv", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_consumer_gltexture_yuv), s_EGL_NV_stream_consumer_gltexture_yuv }, 2069 { "EGL_NV_stream_consumer_eglimage", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_consumer_eglimage), s_EGL_NV_stream_consumer_eglimage }, 2070 { "EGL_NV_stream_flush", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_flush), s_EGL_NV_stream_flush }, 2071 { "EGL_NV_stream_metadata", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_metadata), s_EGL_NV_stream_metadata }, 2072 { "EGL_NV_stream_reset", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_reset), s_EGL_NV_stream_reset }, 2073 { "EGL_NV_stream_sync", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_sync), s_EGL_NV_stream_sync }, 2074 { "EGL_NV_sync", DE_LENGTH_OF_ARRAY(s_EGL_NV_sync), s_EGL_NV_sync }, 2075 { "EGL_NV_system_time", DE_LENGTH_OF_ARRAY(s_EGL_NV_system_time), s_EGL_NV_system_time }, 2076 { "EGL_EXT_compositor", DE_LENGTH_OF_ARRAY(s_EGL_EXT_compositor), s_EGL_EXT_compositor }, 2077 { "EGL_EXT_surface_compression", DE_LENGTH_OF_ARRAY(s_EGL_EXT_surface_compression), s_EGL_EXT_surface_compression }, 2078 { "EGL_WL_bind_wayland_display", DE_LENGTH_OF_ARRAY(s_EGL_WL_bind_wayland_display), s_EGL_WL_bind_wayland_display }, 2079 { "EGL_WL_create_wayland_buffer_from_image", DE_LENGTH_OF_ARRAY(s_EGL_WL_create_wayland_buffer_from_image), s_EGL_WL_create_wayland_buffer_from_image }, 2080 { "EGL_EXT_device_persistent_id", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_persistent_id), s_EGL_EXT_device_persistent_id }, 2081 { "GL_APPLE_copy_texture_levels", DE_LENGTH_OF_ARRAY(s_GL_APPLE_copy_texture_levels), s_GL_APPLE_copy_texture_levels }, 2082 { "GL_APPLE_framebuffer_multisample", DE_LENGTH_OF_ARRAY(s_GL_APPLE_framebuffer_multisample), s_GL_APPLE_framebuffer_multisample }, 2083 { "GL_APPLE_sync", DE_LENGTH_OF_ARRAY(s_GL_APPLE_sync), s_GL_APPLE_sync }, 2084 { "GL_EXT_debug_marker", DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_marker), s_GL_EXT_debug_marker }, 2085 { "GL_EXT_discard_framebuffer", DE_LENGTH_OF_ARRAY(s_GL_EXT_discard_framebuffer), s_GL_EXT_discard_framebuffer }, 2086 { "GL_EXT_map_buffer_range", DE_LENGTH_OF_ARRAY(s_GL_EXT_map_buffer_range), s_GL_EXT_map_buffer_range }, 2087 { "GL_EXT_multi_draw_arrays", DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_arrays), s_GL_EXT_multi_draw_arrays }, 2088 { "GL_EXT_multisampled_render_to_texture", DE_LENGTH_OF_ARRAY(s_GL_EXT_multisampled_render_to_texture), s_GL_EXT_multisampled_render_to_texture }, 2089 { "GL_EXT_robustness", DE_LENGTH_OF_ARRAY(s_GL_EXT_robustness), s_GL_EXT_robustness }, 2090 { "GL_EXT_texture_storage", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_storage), s_GL_EXT_texture_storage }, 2091 { "GL_IMG_multisampled_render_to_texture", DE_LENGTH_OF_ARRAY(s_GL_IMG_multisampled_render_to_texture), s_GL_IMG_multisampled_render_to_texture }, 2092 { "GL_IMG_user_clip_plane", DE_LENGTH_OF_ARRAY(s_GL_IMG_user_clip_plane), s_GL_IMG_user_clip_plane }, 2093 { "GL_NV_fence", DE_LENGTH_OF_ARRAY(s_GL_NV_fence), s_GL_NV_fence }, 2094 { "GL_OES_EGL_image", DE_LENGTH_OF_ARRAY(s_GL_OES_EGL_image), s_GL_OES_EGL_image }, 2095 { "GL_OES_blend_equation_separate", DE_LENGTH_OF_ARRAY(s_GL_OES_blend_equation_separate), s_GL_OES_blend_equation_separate }, 2096 { "GL_OES_blend_func_separate", DE_LENGTH_OF_ARRAY(s_GL_OES_blend_func_separate), s_GL_OES_blend_func_separate }, 2097 { "GL_OES_blend_subtract", DE_LENGTH_OF_ARRAY(s_GL_OES_blend_subtract), s_GL_OES_blend_subtract }, 2098 { "GL_OES_draw_texture", DE_LENGTH_OF_ARRAY(s_GL_OES_draw_texture), s_GL_OES_draw_texture }, 2099 { "GL_OES_fixed_point", DE_LENGTH_OF_ARRAY(s_GL_OES_fixed_point), s_GL_OES_fixed_point }, 2100 { "GL_OES_framebuffer_object", DE_LENGTH_OF_ARRAY(s_GL_OES_framebuffer_object), s_GL_OES_framebuffer_object }, 2101 { "GL_OES_mapbuffer", DE_LENGTH_OF_ARRAY(s_GL_OES_mapbuffer), s_GL_OES_mapbuffer }, 2102 { "GL_OES_matrix_palette", DE_LENGTH_OF_ARRAY(s_GL_OES_matrix_palette), s_GL_OES_matrix_palette }, 2103 { "GL_OES_point_size_array", DE_LENGTH_OF_ARRAY(s_GL_OES_point_size_array), s_GL_OES_point_size_array }, 2104 { "GL_OES_query_matrix", DE_LENGTH_OF_ARRAY(s_GL_OES_query_matrix), s_GL_OES_query_matrix }, 2105 { "GL_OES_single_precision", DE_LENGTH_OF_ARRAY(s_GL_OES_single_precision), s_GL_OES_single_precision }, 2106 { "GL_OES_texture_cube_map", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_cube_map), s_GL_OES_texture_cube_map }, 2107 { "GL_OES_vertex_array_object", DE_LENGTH_OF_ARRAY(s_GL_OES_vertex_array_object), s_GL_OES_vertex_array_object }, 2108 { "GL_QCOM_driver_control", DE_LENGTH_OF_ARRAY(s_GL_QCOM_driver_control), s_GL_QCOM_driver_control }, 2109 { "GL_QCOM_extended_get", DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get), s_GL_QCOM_extended_get }, 2110 { "GL_QCOM_extended_get2", DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get2), s_GL_QCOM_extended_get2 }, 2111 { "GL_QCOM_tiled_rendering", DE_LENGTH_OF_ARRAY(s_GL_QCOM_tiled_rendering), s_GL_QCOM_tiled_rendering }, 2112 { "GL_AMD_framebuffer_multisample_advanced", DE_LENGTH_OF_ARRAY(s_GL_AMD_framebuffer_multisample_advanced), s_GL_AMD_framebuffer_multisample_advanced }, 2113 { "GL_AMD_performance_monitor", DE_LENGTH_OF_ARRAY(s_GL_AMD_performance_monitor), s_GL_AMD_performance_monitor }, 2114 { "GL_ANGLE_framebuffer_blit", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_blit), s_GL_ANGLE_framebuffer_blit }, 2115 { "GL_ANGLE_framebuffer_multisample", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_multisample), s_GL_ANGLE_framebuffer_multisample }, 2116 { "GL_ANGLE_instanced_arrays", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_instanced_arrays), s_GL_ANGLE_instanced_arrays }, 2117 { "GL_ANGLE_translated_shader_source", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_translated_shader_source), s_GL_ANGLE_translated_shader_source }, 2118 { "GL_EXT_EGL_image_storage", DE_LENGTH_OF_ARRAY(s_GL_EXT_EGL_image_storage), s_GL_EXT_EGL_image_storage }, 2119 { "GL_EXT_base_instance", DE_LENGTH_OF_ARRAY(s_GL_EXT_base_instance), s_GL_EXT_base_instance }, 2120 { "GL_EXT_blend_func_extended", DE_LENGTH_OF_ARRAY(s_GL_EXT_blend_func_extended), s_GL_EXT_blend_func_extended }, 2121 { "GL_EXT_buffer_storage", DE_LENGTH_OF_ARRAY(s_GL_EXT_buffer_storage), s_GL_EXT_buffer_storage }, 2122 { "GL_EXT_clear_texture", DE_LENGTH_OF_ARRAY(s_GL_EXT_clear_texture), s_GL_EXT_clear_texture }, 2123 { "GL_EXT_clip_control", DE_LENGTH_OF_ARRAY(s_GL_EXT_clip_control), s_GL_EXT_clip_control }, 2124 { "GL_EXT_copy_image", DE_LENGTH_OF_ARRAY(s_GL_EXT_copy_image), s_GL_EXT_copy_image }, 2125 { "GL_EXT_debug_label", DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_label), s_GL_EXT_debug_label }, 2126 { "GL_EXT_disjoint_timer_query", DE_LENGTH_OF_ARRAY(s_GL_EXT_disjoint_timer_query), s_GL_EXT_disjoint_timer_query }, 2127 { "GL_EXT_draw_buffers", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers), s_GL_EXT_draw_buffers }, 2128 { "GL_EXT_draw_buffers_indexed", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers_indexed), s_GL_EXT_draw_buffers_indexed }, 2129 { "GL_EXT_draw_elements_base_vertex", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_elements_base_vertex), s_GL_EXT_draw_elements_base_vertex }, 2130 { "GL_EXT_draw_instanced", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_instanced), s_GL_EXT_draw_instanced }, 2131 { "GL_EXT_draw_transform_feedback", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_transform_feedback), s_GL_EXT_draw_transform_feedback }, 2132 { "GL_EXT_external_buffer", DE_LENGTH_OF_ARRAY(s_GL_EXT_external_buffer), s_GL_EXT_external_buffer }, 2133 { "GL_EXT_fragment_shading_rate", DE_LENGTH_OF_ARRAY(s_GL_EXT_fragment_shading_rate), s_GL_EXT_fragment_shading_rate }, 2134 { "GL_EXT_geometry_shader", DE_LENGTH_OF_ARRAY(s_GL_EXT_geometry_shader), s_GL_EXT_geometry_shader }, 2135 { "GL_EXT_instanced_arrays", DE_LENGTH_OF_ARRAY(s_GL_EXT_instanced_arrays), s_GL_EXT_instanced_arrays }, 2136 { "GL_EXT_memory_object", DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object), s_GL_EXT_memory_object }, 2137 { "GL_EXT_memory_object_fd", DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_fd), s_GL_EXT_memory_object_fd }, 2138 { "GL_EXT_memory_object_win32", DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_win32), s_GL_EXT_memory_object_win32 }, 2139 { "GL_EXT_multi_draw_indirect", DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_indirect), s_GL_EXT_multi_draw_indirect }, 2140 { "GL_EXT_multiview_draw_buffers", DE_LENGTH_OF_ARRAY(s_GL_EXT_multiview_draw_buffers), s_GL_EXT_multiview_draw_buffers }, 2141 { "GL_EXT_occlusion_query_boolean", DE_LENGTH_OF_ARRAY(s_GL_EXT_occlusion_query_boolean), s_GL_EXT_occlusion_query_boolean }, 2142 { "GL_EXT_polygon_offset_clamp", DE_LENGTH_OF_ARRAY(s_GL_EXT_polygon_offset_clamp), s_GL_EXT_polygon_offset_clamp }, 2143 { "GL_EXT_primitive_bounding_box", DE_LENGTH_OF_ARRAY(s_GL_EXT_primitive_bounding_box), s_GL_EXT_primitive_bounding_box }, 2144 { "GL_EXT_raster_multisample", DE_LENGTH_OF_ARRAY(s_GL_EXT_raster_multisample), s_GL_EXT_raster_multisample }, 2145 { "GL_EXT_semaphore", DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore), s_GL_EXT_semaphore }, 2146 { "GL_EXT_semaphore_fd", DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_fd), s_GL_EXT_semaphore_fd }, 2147 { "GL_EXT_semaphore_win32", DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_win32), s_GL_EXT_semaphore_win32 }, 2148 { "GL_EXT_separate_shader_objects", DE_LENGTH_OF_ARRAY(s_GL_EXT_separate_shader_objects), s_GL_EXT_separate_shader_objects }, 2149 { "GL_EXT_shader_framebuffer_fetch_non_coherent", DE_LENGTH_OF_ARRAY(s_GL_EXT_shader_framebuffer_fetch_non_coherent), s_GL_EXT_shader_framebuffer_fetch_non_coherent }, 2150 { "GL_EXT_shader_pixel_local_storage2", DE_LENGTH_OF_ARRAY(s_GL_EXT_shader_pixel_local_storage2), s_GL_EXT_shader_pixel_local_storage2 }, 2151 { "GL_EXT_sparse_texture", DE_LENGTH_OF_ARRAY(s_GL_EXT_sparse_texture), s_GL_EXT_sparse_texture }, 2152 { "GL_EXT_tessellation_shader", DE_LENGTH_OF_ARRAY(s_GL_EXT_tessellation_shader), s_GL_EXT_tessellation_shader }, 2153 { "GL_EXT_texture_border_clamp", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_border_clamp), s_GL_EXT_texture_border_clamp }, 2154 { "GL_EXT_texture_buffer", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_buffer), s_GL_EXT_texture_buffer }, 2155 { "GL_EXT_texture_storage_compression", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_storage_compression), s_GL_EXT_texture_storage_compression }, 2156 { "GL_EXT_texture_view", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_view), s_GL_EXT_texture_view }, 2157 { "GL_NV_timeline_semaphore", DE_LENGTH_OF_ARRAY(s_GL_NV_timeline_semaphore), s_GL_NV_timeline_semaphore }, 2158 { "GL_EXT_win32_keyed_mutex", DE_LENGTH_OF_ARRAY(s_GL_EXT_win32_keyed_mutex), s_GL_EXT_win32_keyed_mutex }, 2159 { "GL_EXT_window_rectangles", DE_LENGTH_OF_ARRAY(s_GL_EXT_window_rectangles), s_GL_EXT_window_rectangles }, 2160 { "GL_IMG_bindless_texture", DE_LENGTH_OF_ARRAY(s_GL_IMG_bindless_texture), s_GL_IMG_bindless_texture }, 2161 { "GL_IMG_framebuffer_downsample", DE_LENGTH_OF_ARRAY(s_GL_IMG_framebuffer_downsample), s_GL_IMG_framebuffer_downsample }, 2162 { "GL_INTEL_framebuffer_CMAA", DE_LENGTH_OF_ARRAY(s_GL_INTEL_framebuffer_CMAA), s_GL_INTEL_framebuffer_CMAA }, 2163 { "GL_INTEL_performance_query", DE_LENGTH_OF_ARRAY(s_GL_INTEL_performance_query), s_GL_INTEL_performance_query }, 2164 { "GL_KHR_blend_equation_advanced", DE_LENGTH_OF_ARRAY(s_GL_KHR_blend_equation_advanced), s_GL_KHR_blend_equation_advanced }, 2165 { "GL_KHR_debug", DE_LENGTH_OF_ARRAY(s_GL_KHR_debug), s_GL_KHR_debug }, 2166 { "GL_KHR_robustness", DE_LENGTH_OF_ARRAY(s_GL_KHR_robustness), s_GL_KHR_robustness }, 2167 { "GL_KHR_parallel_shader_compile", DE_LENGTH_OF_ARRAY(s_GL_KHR_parallel_shader_compile), s_GL_KHR_parallel_shader_compile }, 2168 { "GL_MESA_framebuffer_flip_y", DE_LENGTH_OF_ARRAY(s_GL_MESA_framebuffer_flip_y), s_GL_MESA_framebuffer_flip_y }, 2169 { "GL_NV_bindless_texture", DE_LENGTH_OF_ARRAY(s_GL_NV_bindless_texture), s_GL_NV_bindless_texture }, 2170 { "GL_NV_blend_equation_advanced", DE_LENGTH_OF_ARRAY(s_GL_NV_blend_equation_advanced), s_GL_NV_blend_equation_advanced }, 2171 { "GL_NV_clip_space_w_scaling", DE_LENGTH_OF_ARRAY(s_GL_NV_clip_space_w_scaling), s_GL_NV_clip_space_w_scaling }, 2172 { "GL_NV_conditional_render", DE_LENGTH_OF_ARRAY(s_GL_NV_conditional_render), s_GL_NV_conditional_render }, 2173 { "GL_NV_conservative_raster", DE_LENGTH_OF_ARRAY(s_GL_NV_conservative_raster), s_GL_NV_conservative_raster }, 2174 { "GL_NV_conservative_raster_pre_snap_triangles", DE_LENGTH_OF_ARRAY(s_GL_NV_conservative_raster_pre_snap_triangles), s_GL_NV_conservative_raster_pre_snap_triangles }, 2175 { "GL_NV_copy_buffer", DE_LENGTH_OF_ARRAY(s_GL_NV_copy_buffer), s_GL_NV_copy_buffer }, 2176 { "GL_NV_coverage_sample", DE_LENGTH_OF_ARRAY(s_GL_NV_coverage_sample), s_GL_NV_coverage_sample }, 2177 { "GL_NV_draw_buffers", DE_LENGTH_OF_ARRAY(s_GL_NV_draw_buffers), s_GL_NV_draw_buffers }, 2178 { "GL_NV_draw_instanced", DE_LENGTH_OF_ARRAY(s_GL_NV_draw_instanced), s_GL_NV_draw_instanced }, 2179 { "GL_NV_draw_vulkan_image", DE_LENGTH_OF_ARRAY(s_GL_NV_draw_vulkan_image), s_GL_NV_draw_vulkan_image }, 2180 { "GL_NV_fragment_coverage_to_color", DE_LENGTH_OF_ARRAY(s_GL_NV_fragment_coverage_to_color), s_GL_NV_fragment_coverage_to_color }, 2181 { "GL_NV_framebuffer_blit", DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_blit), s_GL_NV_framebuffer_blit }, 2182 { "GL_NV_framebuffer_mixed_samples", DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_mixed_samples), s_GL_NV_framebuffer_mixed_samples }, 2183 { "GL_NV_framebuffer_multisample", DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_multisample), s_GL_NV_framebuffer_multisample }, 2184 { "GL_NV_gpu_shader5", DE_LENGTH_OF_ARRAY(s_GL_NV_gpu_shader5), s_GL_NV_gpu_shader5 }, 2185 { "GL_NV_instanced_arrays", DE_LENGTH_OF_ARRAY(s_GL_NV_instanced_arrays), s_GL_NV_instanced_arrays }, 2186 { "GL_NV_internalformat_sample_query", DE_LENGTH_OF_ARRAY(s_GL_NV_internalformat_sample_query), s_GL_NV_internalformat_sample_query }, 2187 { "GL_NV_memory_attachment", DE_LENGTH_OF_ARRAY(s_GL_NV_memory_attachment), s_GL_NV_memory_attachment }, 2188 { "GL_NV_memory_object_sparse", DE_LENGTH_OF_ARRAY(s_GL_NV_memory_object_sparse), s_GL_NV_memory_object_sparse }, 2189 { "GL_NV_mesh_shader", DE_LENGTH_OF_ARRAY(s_GL_NV_mesh_shader), s_GL_NV_mesh_shader }, 2190 { "GL_NV_non_square_matrices", DE_LENGTH_OF_ARRAY(s_GL_NV_non_square_matrices), s_GL_NV_non_square_matrices }, 2191 { "GL_NV_path_rendering", DE_LENGTH_OF_ARRAY(s_GL_NV_path_rendering), s_GL_NV_path_rendering }, 2192 { "GL_NV_polygon_mode", DE_LENGTH_OF_ARRAY(s_GL_NV_polygon_mode), s_GL_NV_polygon_mode }, 2193 { "GL_NV_read_buffer", DE_LENGTH_OF_ARRAY(s_GL_NV_read_buffer), s_GL_NV_read_buffer }, 2194 { "GL_NV_sample_locations", DE_LENGTH_OF_ARRAY(s_GL_NV_sample_locations), s_GL_NV_sample_locations }, 2195 { "GL_NV_scissor_exclusive", DE_LENGTH_OF_ARRAY(s_GL_NV_scissor_exclusive), s_GL_NV_scissor_exclusive }, 2196 { "GL_NV_shading_rate_image", DE_LENGTH_OF_ARRAY(s_GL_NV_shading_rate_image), s_GL_NV_shading_rate_image }, 2197 { "GL_NV_viewport_array", DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_array), s_GL_NV_viewport_array }, 2198 { "GL_NV_viewport_swizzle", DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_swizzle), s_GL_NV_viewport_swizzle }, 2199 { "GL_OES_copy_image", DE_LENGTH_OF_ARRAY(s_GL_OES_copy_image), s_GL_OES_copy_image }, 2200 { "GL_OES_draw_buffers_indexed", DE_LENGTH_OF_ARRAY(s_GL_OES_draw_buffers_indexed), s_GL_OES_draw_buffers_indexed }, 2201 { "GL_OES_draw_elements_base_vertex", DE_LENGTH_OF_ARRAY(s_GL_OES_draw_elements_base_vertex), s_GL_OES_draw_elements_base_vertex }, 2202 { "GL_OES_geometry_shader", DE_LENGTH_OF_ARRAY(s_GL_OES_geometry_shader), s_GL_OES_geometry_shader }, 2203 { "GL_OES_get_program_binary", DE_LENGTH_OF_ARRAY(s_GL_OES_get_program_binary), s_GL_OES_get_program_binary }, 2204 { "GL_OES_primitive_bounding_box", DE_LENGTH_OF_ARRAY(s_GL_OES_primitive_bounding_box), s_GL_OES_primitive_bounding_box }, 2205 { "GL_OES_sample_shading", DE_LENGTH_OF_ARRAY(s_GL_OES_sample_shading), s_GL_OES_sample_shading }, 2206 { "GL_OES_tessellation_shader", DE_LENGTH_OF_ARRAY(s_GL_OES_tessellation_shader), s_GL_OES_tessellation_shader }, 2207 { "GL_OES_texture_3D", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_3D), s_GL_OES_texture_3D }, 2208 { "GL_OES_texture_border_clamp", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_border_clamp), s_GL_OES_texture_border_clamp }, 2209 { "GL_OES_texture_buffer", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_buffer), s_GL_OES_texture_buffer }, 2210 { "GL_OES_texture_storage_multisample_2d_array", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_storage_multisample_2d_array), s_GL_OES_texture_storage_multisample_2d_array }, 2211 { "GL_OES_texture_view", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_view), s_GL_OES_texture_view }, 2212 { "GL_OES_viewport_array", DE_LENGTH_OF_ARRAY(s_GL_OES_viewport_array), s_GL_OES_viewport_array }, 2213 { "GL_OVR_multiview", DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview), s_GL_OVR_multiview }, 2214 { "GL_OVR_multiview_multisampled_render_to_texture", DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview_multisampled_render_to_texture), s_GL_OVR_multiview_multisampled_render_to_texture }, 2215 { "GL_QCOM_alpha_test", DE_LENGTH_OF_ARRAY(s_GL_QCOM_alpha_test), s_GL_QCOM_alpha_test }, 2216 { "GL_QCOM_framebuffer_foveated", DE_LENGTH_OF_ARRAY(s_GL_QCOM_framebuffer_foveated), s_GL_QCOM_framebuffer_foveated }, 2217 { "GL_QCOM_motion_estimation", DE_LENGTH_OF_ARRAY(s_GL_QCOM_motion_estimation), s_GL_QCOM_motion_estimation }, 2218 { "GL_QCOM_frame_extrapolation", DE_LENGTH_OF_ARRAY(s_GL_QCOM_frame_extrapolation), s_GL_QCOM_frame_extrapolation }, 2219 { "GL_QCOM_texture_foveated", DE_LENGTH_OF_ARRAY(s_GL_QCOM_texture_foveated), s_GL_QCOM_texture_foveated }, 2220 { "GL_QCOM_shader_framebuffer_fetch_noncoherent", DE_LENGTH_OF_ARRAY(s_GL_QCOM_shader_framebuffer_fetch_noncoherent), s_GL_QCOM_shader_framebuffer_fetch_noncoherent }, 2221 { "GL_QCOM_shading_rate", DE_LENGTH_OF_ARRAY(s_GL_QCOM_shading_rate), s_GL_QCOM_shading_rate }, 2222}; 2223