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 3338ed0db494d6a4db7f76627b38f0b1892db096. 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_EXT_client_sync[] = 501{ 502 "eglClientSignalSyncEXT", 503}; 504 505static const char* s_EGL_EXT_device_base[] = 506{ 507 "eglQueryDeviceAttribEXT", 508 "eglQueryDeviceStringEXT", 509 "eglQueryDevicesEXT", 510 "eglQueryDisplayAttribEXT", 511}; 512 513static const char* s_EGL_EXT_device_enumeration[] = 514{ 515 "eglQueryDevicesEXT", 516}; 517 518static const char* s_EGL_EXT_device_query[] = 519{ 520 "eglQueryDeviceAttribEXT", 521 "eglQueryDeviceStringEXT", 522 "eglQueryDisplayAttribEXT", 523}; 524 525static const char* s_EGL_EXT_image_dma_buf_import_modifiers[] = 526{ 527 "eglQueryDmaBufFormatsEXT", 528 "eglQueryDmaBufModifiersEXT", 529}; 530 531static const char* s_EGL_EXT_output_base[] = 532{ 533 "eglGetOutputLayersEXT", 534 "eglGetOutputPortsEXT", 535 "eglOutputLayerAttribEXT", 536 "eglOutputPortAttribEXT", 537 "eglQueryOutputLayerAttribEXT", 538 "eglQueryOutputLayerStringEXT", 539 "eglQueryOutputPortAttribEXT", 540 "eglQueryOutputPortStringEXT", 541}; 542 543static const char* s_EGL_EXT_platform_base[] = 544{ 545 "eglCreatePlatformPixmapSurfaceEXT", 546 "eglCreatePlatformWindowSurfaceEXT", 547 "eglGetPlatformDisplayEXT", 548}; 549 550static const char* s_EGL_EXT_stream_consumer_egloutput[] = 551{ 552 "eglStreamConsumerOutputEXT", 553}; 554 555static const char* s_EGL_EXT_swap_buffers_with_damage[] = 556{ 557 "eglSwapBuffersWithDamageEXT", 558}; 559 560static const char* s_EGL_EXT_sync_reuse[] = 561{ 562 "eglUnsignalSyncEXT", 563}; 564 565static const char* s_EGL_HI_clientpixmap[] = 566{ 567 "eglCreatePixmapSurfaceHI", 568}; 569 570static const char* s_EGL_KHR_cl_event2[] = 571{ 572 "eglCreateSync64KHR", 573}; 574 575static const char* s_EGL_KHR_debug[] = 576{ 577 "eglDebugMessageControlKHR", 578 "eglLabelObjectKHR", 579 "eglQueryDebugKHR", 580}; 581 582static const char* s_EGL_KHR_display_reference[] = 583{ 584 "eglQueryDisplayAttribKHR", 585}; 586 587static const char* s_EGL_KHR_fence_sync[] = 588{ 589 "eglClientWaitSyncKHR", 590 "eglCreateSyncKHR", 591 "eglDestroySyncKHR", 592 "eglGetSyncAttribKHR", 593}; 594 595static const char* s_EGL_KHR_image[] = 596{ 597 "eglCreateImageKHR", 598 "eglDestroyImageKHR", 599}; 600 601static const char* s_EGL_KHR_image_base[] = 602{ 603 "eglCreateImageKHR", 604 "eglDestroyImageKHR", 605}; 606 607static const char* s_EGL_KHR_lock_surface[] = 608{ 609 "eglLockSurfaceKHR", 610 "eglUnlockSurfaceKHR", 611}; 612 613static const char* s_EGL_KHR_lock_surface3[] = 614{ 615 "eglLockSurfaceKHR", 616 "eglQuerySurface64KHR", 617 "eglUnlockSurfaceKHR", 618}; 619 620static const char* s_EGL_KHR_partial_update[] = 621{ 622 "eglSetDamageRegionKHR", 623}; 624 625static const char* s_EGL_KHR_reusable_sync[] = 626{ 627 "eglClientWaitSyncKHR", 628 "eglCreateSyncKHR", 629 "eglDestroySyncKHR", 630 "eglGetSyncAttribKHR", 631 "eglSignalSyncKHR", 632}; 633 634static const char* s_EGL_KHR_stream[] = 635{ 636 "eglCreateStreamKHR", 637 "eglDestroyStreamKHR", 638 "eglQueryStreamKHR", 639 "eglQueryStreamu64KHR", 640 "eglStreamAttribKHR", 641}; 642 643static const char* s_EGL_KHR_stream_attrib[] = 644{ 645 "eglCreateStreamAttribKHR", 646 "eglQueryStreamAttribKHR", 647 "eglSetStreamAttribKHR", 648 "eglStreamConsumerAcquireAttribKHR", 649 "eglStreamConsumerReleaseAttribKHR", 650}; 651 652static const char* s_EGL_KHR_stream_consumer_gltexture[] = 653{ 654 "eglStreamConsumerAcquireKHR", 655 "eglStreamConsumerGLTextureExternalKHR", 656 "eglStreamConsumerReleaseKHR", 657}; 658 659static const char* s_EGL_KHR_stream_cross_process_fd[] = 660{ 661 "eglCreateStreamFromFileDescriptorKHR", 662 "eglGetStreamFileDescriptorKHR", 663}; 664 665static const char* s_EGL_KHR_stream_fifo[] = 666{ 667 "eglQueryStreamTimeKHR", 668}; 669 670static const char* s_EGL_KHR_stream_producer_eglsurface[] = 671{ 672 "eglCreateStreamProducerSurfaceKHR", 673}; 674 675static const char* s_EGL_KHR_swap_buffers_with_damage[] = 676{ 677 "eglSwapBuffersWithDamageKHR", 678}; 679 680static const char* s_EGL_KHR_wait_sync[] = 681{ 682 "eglWaitSyncKHR", 683}; 684 685static const char* s_EGL_MESA_drm_image[] = 686{ 687 "eglCreateDRMImageMESA", 688 "eglExportDRMImageMESA", 689}; 690 691static const char* s_EGL_MESA_image_dma_buf_export[] = 692{ 693 "eglExportDMABUFImageMESA", 694 "eglExportDMABUFImageQueryMESA", 695}; 696 697static const char* s_EGL_NOK_swap_region[] = 698{ 699 "eglSwapBuffersRegionNOK", 700}; 701 702static const char* s_EGL_NOK_swap_region2[] = 703{ 704 "eglSwapBuffersRegion2NOK", 705}; 706 707static const char* s_EGL_NV_native_query[] = 708{ 709 "eglQueryNativeDisplayNV", 710 "eglQueryNativePixmapNV", 711 "eglQueryNativeWindowNV", 712}; 713 714static const char* s_EGL_NV_post_sub_buffer[] = 715{ 716 "eglPostSubBufferNV", 717}; 718 719static const char* s_EGL_NV_stream_consumer_gltexture_yuv[] = 720{ 721 "eglStreamConsumerGLTextureExternalAttribsNV", 722}; 723 724static const char* s_EGL_NV_stream_flush[] = 725{ 726 "eglStreamFlushNV", 727}; 728 729static const char* s_EGL_NV_stream_metadata[] = 730{ 731 "eglQueryDisplayAttribNV", 732 "eglQueryStreamMetadataNV", 733 "eglSetStreamMetadataNV", 734}; 735 736static const char* s_EGL_NV_stream_reset[] = 737{ 738 "eglResetStreamNV", 739}; 740 741static const char* s_EGL_NV_stream_sync[] = 742{ 743 "eglCreateStreamSyncNV", 744}; 745 746static const char* s_EGL_NV_sync[] = 747{ 748 "eglClientWaitSyncNV", 749 "eglCreateFenceSyncNV", 750 "eglDestroySyncNV", 751 "eglFenceNV", 752 "eglGetSyncAttribNV", 753 "eglSignalSyncNV", 754}; 755 756static const char* s_EGL_NV_system_time[] = 757{ 758 "eglGetSystemTimeFrequencyNV", 759 "eglGetSystemTimeNV", 760}; 761 762static const char* s_EGL_EXT_compositor[] = 763{ 764 "eglCompositorSetContextListEXT", 765 "eglCompositorSetContextAttributesEXT", 766 "eglCompositorSetWindowListEXT", 767 "eglCompositorSetWindowAttributesEXT", 768 "eglCompositorBindTexWindowEXT", 769 "eglCompositorSetSizeEXT", 770 "eglCompositorSwapPolicyEXT", 771}; 772 773static const char* s_GL_APPLE_copy_texture_levels[] = 774{ 775 "glCopyTextureLevelsAPPLE", 776}; 777 778static const char* s_GL_APPLE_framebuffer_multisample[] = 779{ 780 "glRenderbufferStorageMultisampleAPPLE", 781 "glResolveMultisampleFramebufferAPPLE", 782}; 783 784static const char* s_GL_APPLE_sync[] = 785{ 786 "glClientWaitSyncAPPLE", 787 "glDeleteSyncAPPLE", 788 "glFenceSyncAPPLE", 789 "glGetInteger64vAPPLE", 790 "glGetSyncivAPPLE", 791 "glIsSyncAPPLE", 792 "glWaitSyncAPPLE", 793}; 794 795static const char* s_GL_EXT_debug_marker[] = 796{ 797 "glInsertEventMarkerEXT", 798 "glPopGroupMarkerEXT", 799 "glPushGroupMarkerEXT", 800}; 801 802static const char* s_GL_EXT_discard_framebuffer[] = 803{ 804 "glDiscardFramebufferEXT", 805}; 806 807static const char* s_GL_EXT_map_buffer_range[] = 808{ 809 "glFlushMappedBufferRangeEXT", 810 "glMapBufferRangeEXT", 811}; 812 813static const char* s_GL_EXT_multi_draw_arrays[] = 814{ 815 "glMultiDrawArraysEXT", 816 "glMultiDrawElementsEXT", 817}; 818 819static const char* s_GL_EXT_multisampled_render_to_texture[] = 820{ 821 "glFramebufferTexture2DMultisampleEXT", 822 "glRenderbufferStorageMultisampleEXT", 823}; 824 825static const char* s_GL_EXT_robustness[] = 826{ 827 "glGetGraphicsResetStatusEXT", 828 "glGetnUniformfvEXT", 829 "glGetnUniformivEXT", 830 "glReadnPixelsEXT", 831}; 832 833static const char* s_GL_EXT_texture_storage[] = 834{ 835 "glTexStorage1DEXT", 836 "glTexStorage2DEXT", 837 "glTexStorage3DEXT", 838 "glTextureStorage1DEXT", 839 "glTextureStorage2DEXT", 840 "glTextureStorage3DEXT", 841}; 842 843static const char* s_GL_IMG_multisampled_render_to_texture[] = 844{ 845 "glFramebufferTexture2DMultisampleIMG", 846 "glRenderbufferStorageMultisampleIMG", 847}; 848 849static const char* s_GL_IMG_user_clip_plane[] = 850{ 851 "glClipPlanefIMG", 852 "glClipPlanexIMG", 853}; 854 855static const char* s_GL_NV_fence[] = 856{ 857 "glDeleteFencesNV", 858 "glFinishFenceNV", 859 "glGenFencesNV", 860 "glGetFenceivNV", 861 "glIsFenceNV", 862 "glSetFenceNV", 863 "glTestFenceNV", 864}; 865 866static const char* s_GL_OES_EGL_image[] = 867{ 868 "glEGLImageTargetRenderbufferStorageOES", 869 "glEGLImageTargetTexture2DOES", 870}; 871 872static const char* s_GL_OES_blend_equation_separate[] = 873{ 874 "glBlendEquationSeparateOES", 875}; 876 877static const char* s_GL_OES_blend_func_separate[] = 878{ 879 "glBlendFuncSeparateOES", 880}; 881 882static const char* s_GL_OES_blend_subtract[] = 883{ 884 "glBlendEquationOES", 885}; 886 887static const char* s_GL_OES_draw_texture[] = 888{ 889 "glDrawTexfOES", 890 "glDrawTexfvOES", 891 "glDrawTexiOES", 892 "glDrawTexivOES", 893 "glDrawTexsOES", 894 "glDrawTexsvOES", 895 "glDrawTexxOES", 896 "glDrawTexxvOES", 897}; 898 899static const char* s_GL_OES_fixed_point[] = 900{ 901 "glAlphaFuncxOES", 902 "glClearColorxOES", 903 "glClearDepthxOES", 904 "glClipPlanexOES", 905 "glColor4xOES", 906 "glDepthRangexOES", 907 "glFogxOES", 908 "glFogxvOES", 909 "glFrustumxOES", 910 "glGetClipPlanexOES", 911 "glGetFixedvOES", 912 "glGetLightxvOES", 913 "glGetMaterialxvOES", 914 "glGetTexEnvxvOES", 915 "glGetTexParameterxvOES", 916 "glLightModelxOES", 917 "glLightModelxvOES", 918 "glLightxOES", 919 "glLightxvOES", 920 "glLineWidthxOES", 921 "glLoadMatrixxOES", 922 "glMaterialxOES", 923 "glMaterialxvOES", 924 "glMultMatrixxOES", 925 "glMultiTexCoord4xOES", 926 "glNormal3xOES", 927 "glOrthoxOES", 928 "glPointParameterxOES", 929 "glPointParameterxvOES", 930 "glPointSizexOES", 931 "glPolygonOffsetxOES", 932 "glRotatexOES", 933 "glSampleCoveragexOES", 934 "glScalexOES", 935 "glTexEnvxOES", 936 "glTexEnvxvOES", 937 "glTexParameterxOES", 938 "glTexParameterxvOES", 939 "glTranslatexOES", 940}; 941 942static const char* s_GL_OES_framebuffer_object[] = 943{ 944 "glBindFramebufferOES", 945 "glBindRenderbufferOES", 946 "glCheckFramebufferStatusOES", 947 "glDeleteFramebuffersOES", 948 "glDeleteRenderbuffersOES", 949 "glFramebufferRenderbufferOES", 950 "glFramebufferTexture2DOES", 951 "glGenFramebuffersOES", 952 "glGenRenderbuffersOES", 953 "glGenerateMipmapOES", 954 "glGetFramebufferAttachmentParameterivOES", 955 "glGetRenderbufferParameterivOES", 956 "glIsFramebufferOES", 957 "glIsRenderbufferOES", 958 "glRenderbufferStorageOES", 959}; 960 961static const char* s_GL_OES_mapbuffer[] = 962{ 963 "glGetBufferPointervOES", 964 "glMapBufferOES", 965 "glUnmapBufferOES", 966}; 967 968static const char* s_GL_OES_matrix_palette[] = 969{ 970 "glCurrentPaletteMatrixOES", 971 "glLoadPaletteFromModelViewMatrixOES", 972 "glMatrixIndexPointerOES", 973 "glWeightPointerOES", 974}; 975 976static const char* s_GL_OES_point_size_array[] = 977{ 978 "glPointSizePointerOES", 979}; 980 981static const char* s_GL_OES_query_matrix[] = 982{ 983 "glQueryMatrixxOES", 984}; 985 986static const char* s_GL_OES_single_precision[] = 987{ 988 "glClearDepthfOES", 989 "glClipPlanefOES", 990 "glDepthRangefOES", 991 "glFrustumfOES", 992 "glGetClipPlanefOES", 993 "glOrthofOES", 994}; 995 996static const char* s_GL_OES_texture_cube_map[] = 997{ 998 "glGetTexGenfvOES", 999 "glGetTexGenivOES", 1000 "glGetTexGenxvOES", 1001 "glTexGenfOES", 1002 "glTexGenfvOES", 1003 "glTexGeniOES", 1004 "glTexGenivOES", 1005 "glTexGenxOES", 1006 "glTexGenxvOES", 1007}; 1008 1009static const char* s_GL_OES_vertex_array_object[] = 1010{ 1011 "glBindVertexArrayOES", 1012 "glDeleteVertexArraysOES", 1013 "glGenVertexArraysOES", 1014 "glIsVertexArrayOES", 1015}; 1016 1017static const char* s_GL_QCOM_driver_control[] = 1018{ 1019 "glDisableDriverControlQCOM", 1020 "glEnableDriverControlQCOM", 1021 "glGetDriverControlStringQCOM", 1022 "glGetDriverControlsQCOM", 1023}; 1024 1025static const char* s_GL_QCOM_extended_get[] = 1026{ 1027 "glExtGetBufferPointervQCOM", 1028 "glExtGetBuffersQCOM", 1029 "glExtGetFramebuffersQCOM", 1030 "glExtGetRenderbuffersQCOM", 1031 "glExtGetTexLevelParameterivQCOM", 1032 "glExtGetTexSubImageQCOM", 1033 "glExtGetTexturesQCOM", 1034 "glExtTexObjectStateOverrideiQCOM", 1035}; 1036 1037static const char* s_GL_QCOM_extended_get2[] = 1038{ 1039 "glExtGetProgramBinarySourceQCOM", 1040 "glExtGetProgramsQCOM", 1041 "glExtGetShadersQCOM", 1042 "glExtIsProgramBinaryQCOM", 1043}; 1044 1045static const char* s_GL_QCOM_tiled_rendering[] = 1046{ 1047 "glEndTilingQCOM", 1048 "glStartTilingQCOM", 1049}; 1050 1051static const char* s_GL_AMD_framebuffer_multisample_advanced[] = 1052{ 1053 "glNamedRenderbufferStorageMultisampleAdvancedAMD", 1054 "glRenderbufferStorageMultisampleAdvancedAMD", 1055}; 1056 1057static const char* s_GL_AMD_performance_monitor[] = 1058{ 1059 "glBeginPerfMonitorAMD", 1060 "glDeletePerfMonitorsAMD", 1061 "glEndPerfMonitorAMD", 1062 "glGenPerfMonitorsAMD", 1063 "glGetPerfMonitorCounterDataAMD", 1064 "glGetPerfMonitorCounterInfoAMD", 1065 "glGetPerfMonitorCounterStringAMD", 1066 "glGetPerfMonitorCountersAMD", 1067 "glGetPerfMonitorGroupStringAMD", 1068 "glGetPerfMonitorGroupsAMD", 1069 "glSelectPerfMonitorCountersAMD", 1070}; 1071 1072static const char* s_GL_ANGLE_framebuffer_blit[] = 1073{ 1074 "glBlitFramebufferANGLE", 1075}; 1076 1077static const char* s_GL_ANGLE_framebuffer_multisample[] = 1078{ 1079 "glRenderbufferStorageMultisampleANGLE", 1080}; 1081 1082static const char* s_GL_ANGLE_instanced_arrays[] = 1083{ 1084 "glDrawArraysInstancedANGLE", 1085 "glDrawElementsInstancedANGLE", 1086 "glVertexAttribDivisorANGLE", 1087}; 1088 1089static const char* s_GL_ANGLE_translated_shader_source[] = 1090{ 1091 "glGetTranslatedShaderSourceANGLE", 1092}; 1093 1094static const char* s_GL_EXT_EGL_image_storage[] = 1095{ 1096 "glEGLImageTargetTexStorageEXT", 1097 "glEGLImageTargetTextureStorageEXT", 1098}; 1099 1100static const char* s_GL_EXT_base_instance[] = 1101{ 1102 "glDrawArraysInstancedBaseInstanceEXT", 1103 "glDrawElementsInstancedBaseInstanceEXT", 1104 "glDrawElementsInstancedBaseVertexBaseInstanceEXT", 1105}; 1106 1107static const char* s_GL_EXT_blend_func_extended[] = 1108{ 1109 "glBindFragDataLocationEXT", 1110 "glBindFragDataLocationIndexedEXT", 1111 "glGetFragDataIndexEXT", 1112 "glGetProgramResourceLocationIndexEXT", 1113}; 1114 1115static const char* s_GL_EXT_buffer_storage[] = 1116{ 1117 "glBufferStorageEXT", 1118}; 1119 1120static const char* s_GL_EXT_clear_texture[] = 1121{ 1122 "glClearTexImageEXT", 1123 "glClearTexSubImageEXT", 1124}; 1125 1126static const char* s_GL_EXT_clip_control[] = 1127{ 1128 "glClipControlEXT", 1129}; 1130 1131static const char* s_GL_EXT_copy_image[] = 1132{ 1133 "glCopyImageSubDataEXT", 1134}; 1135 1136static const char* s_GL_EXT_debug_label[] = 1137{ 1138 "glGetObjectLabelEXT", 1139 "glLabelObjectEXT", 1140}; 1141 1142static const char* s_GL_EXT_disjoint_timer_query[] = 1143{ 1144 "glBeginQueryEXT", 1145 "glDeleteQueriesEXT", 1146 "glEndQueryEXT", 1147 "glGenQueriesEXT", 1148 "glGetInteger64vEXT", 1149 "glGetQueryObjecti64vEXT", 1150 "glGetQueryObjectivEXT", 1151 "glGetQueryObjectui64vEXT", 1152 "glGetQueryObjectuivEXT", 1153 "glGetQueryivEXT", 1154 "glIsQueryEXT", 1155 "glQueryCounterEXT", 1156}; 1157 1158static const char* s_GL_EXT_draw_buffers[] = 1159{ 1160 "glDrawBuffersEXT", 1161}; 1162 1163static const char* s_GL_EXT_draw_buffers_indexed[] = 1164{ 1165 "glBlendEquationSeparateiEXT", 1166 "glBlendEquationiEXT", 1167 "glBlendFuncSeparateiEXT", 1168 "glBlendFunciEXT", 1169 "glColorMaskiEXT", 1170 "glDisableiEXT", 1171 "glEnableiEXT", 1172 "glIsEnablediEXT", 1173}; 1174 1175static const char* s_GL_EXT_draw_elements_base_vertex[] = 1176{ 1177 "glDrawElementsBaseVertexEXT", 1178 "glDrawElementsInstancedBaseVertexEXT", 1179 "glDrawRangeElementsBaseVertexEXT", 1180 "glMultiDrawElementsBaseVertexEXT", 1181}; 1182 1183static const char* s_GL_EXT_draw_instanced[] = 1184{ 1185 "glDrawArraysInstancedEXT", 1186 "glDrawElementsInstancedEXT", 1187}; 1188 1189static const char* s_GL_EXT_draw_transform_feedback[] = 1190{ 1191 "glDrawTransformFeedbackEXT", 1192 "glDrawTransformFeedbackInstancedEXT", 1193}; 1194 1195static const char* s_GL_EXT_external_buffer[] = 1196{ 1197 "glBufferStorageExternalEXT", 1198 "glNamedBufferStorageExternalEXT", 1199}; 1200 1201static const char* s_GL_EXT_fragment_shading_rate[] = 1202{ 1203 "glFramebufferShadingRateEXT", 1204 "glGetFragmentShadingRatesEXT", 1205 "glShadingRateEXT", 1206 "glShadingRateCombinerOpsEXT", 1207}; 1208 1209static const char* s_GL_EXT_geometry_shader[] = 1210{ 1211 "glFramebufferTextureEXT", 1212}; 1213 1214static const char* s_GL_EXT_instanced_arrays[] = 1215{ 1216 "glDrawArraysInstancedEXT", 1217 "glDrawElementsInstancedEXT", 1218 "glVertexAttribDivisorEXT", 1219}; 1220 1221static const char* s_GL_EXT_memory_object[] = 1222{ 1223 "glBufferStorageMemEXT", 1224 "glCreateMemoryObjectsEXT", 1225 "glDeleteMemoryObjectsEXT", 1226 "glGetMemoryObjectParameterivEXT", 1227 "glGetUnsignedBytevEXT", 1228 "glGetUnsignedBytei_vEXT", 1229 "glIsMemoryObjectEXT", 1230 "glMemoryObjectParameterivEXT", 1231 "glNamedBufferStorageMemEXT", 1232 "glTexStorageMem2DEXT", 1233 "glTexStorageMem2DMultisampleEXT", 1234 "glTexStorageMem3DEXT", 1235 "glTexStorageMem3DMultisampleEXT", 1236 "glTextureStorageMem2DEXT", 1237 "glTextureStorageMem2DMultisampleEXT", 1238 "glTextureStorageMem3DEXT", 1239 "glTextureStorageMem3DMultisampleEXT", 1240}; 1241 1242static const char* s_GL_EXT_memory_object_fd[] = 1243{ 1244 "glImportMemoryFdEXT", 1245}; 1246 1247static const char* s_GL_EXT_memory_object_win32[] = 1248{ 1249 "glImportMemoryWin32HandleEXT", 1250 "glImportMemoryWin32NameEXT", 1251}; 1252 1253static const char* s_GL_EXT_multi_draw_indirect[] = 1254{ 1255 "glMultiDrawArraysIndirectEXT", 1256 "glMultiDrawElementsIndirectEXT", 1257}; 1258 1259static const char* s_GL_EXT_multiview_draw_buffers[] = 1260{ 1261 "glDrawBuffersIndexedEXT", 1262 "glGetIntegeri_vEXT", 1263 "glReadBufferIndexedEXT", 1264}; 1265 1266static const char* s_GL_EXT_occlusion_query_boolean[] = 1267{ 1268 "glBeginQueryEXT", 1269 "glDeleteQueriesEXT", 1270 "glEndQueryEXT", 1271 "glGenQueriesEXT", 1272 "glGetQueryObjectuivEXT", 1273 "glGetQueryivEXT", 1274 "glIsQueryEXT", 1275}; 1276 1277static const char* s_GL_EXT_polygon_offset_clamp[] = 1278{ 1279 "glPolygonOffsetClampEXT", 1280}; 1281 1282static const char* s_GL_EXT_primitive_bounding_box[] = 1283{ 1284 "glPrimitiveBoundingBoxEXT", 1285}; 1286 1287static const char* s_GL_EXT_raster_multisample[] = 1288{ 1289 "glRasterSamplesEXT", 1290}; 1291 1292static const char* s_GL_EXT_semaphore[] = 1293{ 1294 "glDeleteSemaphoresEXT", 1295 "glGenSemaphoresEXT", 1296 "glGetSemaphoreParameterui64vEXT", 1297 "glGetUnsignedBytevEXT", 1298 "glGetUnsignedBytei_vEXT", 1299 "glIsSemaphoreEXT", 1300 "glSemaphoreParameterui64vEXT", 1301 "glSignalSemaphoreEXT", 1302 "glWaitSemaphoreEXT", 1303}; 1304 1305static const char* s_GL_EXT_semaphore_fd[] = 1306{ 1307 "glImportSemaphoreFdEXT", 1308}; 1309 1310static const char* s_GL_EXT_semaphore_win32[] = 1311{ 1312 "glImportSemaphoreWin32HandleEXT", 1313 "glImportSemaphoreWin32NameEXT", 1314}; 1315 1316static const char* s_GL_EXT_separate_shader_objects[] = 1317{ 1318 "glActiveShaderProgramEXT", 1319 "glBindProgramPipelineEXT", 1320 "glCreateShaderProgramvEXT", 1321 "glDeleteProgramPipelinesEXT", 1322 "glGenProgramPipelinesEXT", 1323 "glGetProgramPipelineInfoLogEXT", 1324 "glGetProgramPipelineivEXT", 1325 "glIsProgramPipelineEXT", 1326 "glProgramParameteriEXT", 1327 "glProgramUniform1fEXT", 1328 "glProgramUniform1fvEXT", 1329 "glProgramUniform1iEXT", 1330 "glProgramUniform1ivEXT", 1331 "glProgramUniform1uiEXT", 1332 "glProgramUniform1uivEXT", 1333 "glProgramUniform2fEXT", 1334 "glProgramUniform2fvEXT", 1335 "glProgramUniform2iEXT", 1336 "glProgramUniform2ivEXT", 1337 "glProgramUniform2uiEXT", 1338 "glProgramUniform2uivEXT", 1339 "glProgramUniform3fEXT", 1340 "glProgramUniform3fvEXT", 1341 "glProgramUniform3iEXT", 1342 "glProgramUniform3ivEXT", 1343 "glProgramUniform3uiEXT", 1344 "glProgramUniform3uivEXT", 1345 "glProgramUniform4fEXT", 1346 "glProgramUniform4fvEXT", 1347 "glProgramUniform4iEXT", 1348 "glProgramUniform4ivEXT", 1349 "glProgramUniform4uiEXT", 1350 "glProgramUniform4uivEXT", 1351 "glProgramUniformMatrix2fvEXT", 1352 "glProgramUniformMatrix2x3fvEXT", 1353 "glProgramUniformMatrix2x4fvEXT", 1354 "glProgramUniformMatrix3fvEXT", 1355 "glProgramUniformMatrix3x2fvEXT", 1356 "glProgramUniformMatrix3x4fvEXT", 1357 "glProgramUniformMatrix4fvEXT", 1358 "glProgramUniformMatrix4x2fvEXT", 1359 "glProgramUniformMatrix4x3fvEXT", 1360 "glUseProgramStagesEXT", 1361 "glValidateProgramPipelineEXT", 1362}; 1363 1364static const char* s_GL_EXT_shader_framebuffer_fetch_non_coherent[] = 1365{ 1366 "glFramebufferFetchBarrierEXT", 1367}; 1368 1369static const char* s_GL_EXT_shader_pixel_local_storage2[] = 1370{ 1371 "glClearPixelLocalStorageuiEXT", 1372 "glFramebufferPixelLocalStorageSizeEXT", 1373 "glGetFramebufferPixelLocalStorageSizeEXT", 1374}; 1375 1376static const char* s_GL_EXT_sparse_texture[] = 1377{ 1378 "glTexPageCommitmentEXT", 1379}; 1380 1381static const char* s_GL_EXT_tessellation_shader[] = 1382{ 1383 "glPatchParameteriEXT", 1384}; 1385 1386static const char* s_GL_EXT_texture_border_clamp[] = 1387{ 1388 "glGetSamplerParameterIivEXT", 1389 "glGetSamplerParameterIuivEXT", 1390 "glGetTexParameterIivEXT", 1391 "glGetTexParameterIuivEXT", 1392 "glSamplerParameterIivEXT", 1393 "glSamplerParameterIuivEXT", 1394 "glTexParameterIivEXT", 1395 "glTexParameterIuivEXT", 1396}; 1397 1398static const char* s_GL_EXT_texture_buffer[] = 1399{ 1400 "glTexBufferEXT", 1401 "glTexBufferRangeEXT", 1402}; 1403 1404static const char* s_GL_EXT_texture_storage_compression[] = 1405{ 1406 "glTexStorageAttribs2DEXT", 1407 "glTexStorageAttribs3DEXT", 1408}; 1409 1410static const char* s_GL_EXT_texture_view[] = 1411{ 1412 "glTextureViewEXT", 1413}; 1414 1415static const char* s_GL_NV_timeline_semaphore[] = 1416{ 1417 "glCreateSemaphoresNV", 1418 "glGetSemaphoreParameterivNV", 1419 "glSemaphoreParameterivNV", 1420}; 1421 1422static const char* s_GL_EXT_win32_keyed_mutex[] = 1423{ 1424 "glAcquireKeyedMutexWin32EXT", 1425 "glReleaseKeyedMutexWin32EXT", 1426}; 1427 1428static const char* s_GL_EXT_window_rectangles[] = 1429{ 1430 "glWindowRectanglesEXT", 1431}; 1432 1433static const char* s_GL_IMG_bindless_texture[] = 1434{ 1435 "glGetTextureHandleIMG", 1436 "glGetTextureSamplerHandleIMG", 1437 "glProgramUniformHandleui64IMG", 1438 "glProgramUniformHandleui64vIMG", 1439 "glUniformHandleui64IMG", 1440 "glUniformHandleui64vIMG", 1441}; 1442 1443static const char* s_GL_IMG_framebuffer_downsample[] = 1444{ 1445 "glFramebufferTexture2DDownsampleIMG", 1446 "glFramebufferTextureLayerDownsampleIMG", 1447}; 1448 1449static const char* s_GL_INTEL_framebuffer_CMAA[] = 1450{ 1451 "glApplyFramebufferAttachmentCMAAINTEL", 1452}; 1453 1454static const char* s_GL_INTEL_performance_query[] = 1455{ 1456 "glBeginPerfQueryINTEL", 1457 "glCreatePerfQueryINTEL", 1458 "glDeletePerfQueryINTEL", 1459 "glEndPerfQueryINTEL", 1460 "glGetFirstPerfQueryIdINTEL", 1461 "glGetNextPerfQueryIdINTEL", 1462 "glGetPerfCounterInfoINTEL", 1463 "glGetPerfQueryDataINTEL", 1464 "glGetPerfQueryIdByNameINTEL", 1465 "glGetPerfQueryInfoINTEL", 1466}; 1467 1468static const char* s_GL_KHR_blend_equation_advanced[] = 1469{ 1470 "glBlendBarrierKHR", 1471}; 1472 1473static const char* s_GL_KHR_debug[] = 1474{ 1475 "glDebugMessageCallbackKHR", 1476 "glDebugMessageControlKHR", 1477 "glDebugMessageInsertKHR", 1478 "glGetDebugMessageLogKHR", 1479 "glGetObjectLabelKHR", 1480 "glGetObjectPtrLabelKHR", 1481 "glGetPointervKHR", 1482 "glObjectLabelKHR", 1483 "glObjectPtrLabelKHR", 1484 "glPopDebugGroupKHR", 1485 "glPushDebugGroupKHR", 1486}; 1487 1488static const char* s_GL_KHR_robustness[] = 1489{ 1490 "glGetGraphicsResetStatusKHR", 1491 "glGetnUniformfvKHR", 1492 "glGetnUniformivKHR", 1493 "glGetnUniformuivKHR", 1494 "glReadnPixelsKHR", 1495}; 1496 1497static const char* s_GL_KHR_parallel_shader_compile[] = 1498{ 1499 "glMaxShaderCompilerThreadsKHR", 1500}; 1501 1502static const char* s_GL_MESA_framebuffer_flip_y[] = 1503{ 1504 "glFramebufferParameteriMESA", 1505 "glGetFramebufferParameterivMESA", 1506}; 1507 1508static const char* s_GL_NV_bindless_texture[] = 1509{ 1510 "glGetImageHandleNV", 1511 "glGetTextureHandleNV", 1512 "glGetTextureSamplerHandleNV", 1513 "glIsImageHandleResidentNV", 1514 "glIsTextureHandleResidentNV", 1515 "glMakeImageHandleNonResidentNV", 1516 "glMakeImageHandleResidentNV", 1517 "glMakeTextureHandleNonResidentNV", 1518 "glMakeTextureHandleResidentNV", 1519 "glProgramUniformHandleui64NV", 1520 "glProgramUniformHandleui64vNV", 1521 "glUniformHandleui64NV", 1522 "glUniformHandleui64vNV", 1523}; 1524 1525static const char* s_GL_NV_blend_equation_advanced[] = 1526{ 1527 "glBlendBarrierNV", 1528 "glBlendParameteriNV", 1529}; 1530 1531static const char* s_GL_NV_clip_space_w_scaling[] = 1532{ 1533 "glViewportPositionWScaleNV", 1534}; 1535 1536static const char* s_GL_NV_conditional_render[] = 1537{ 1538 "glBeginConditionalRenderNV", 1539 "glEndConditionalRenderNV", 1540}; 1541 1542static const char* s_GL_NV_conservative_raster[] = 1543{ 1544 "glSubpixelPrecisionBiasNV", 1545}; 1546 1547static const char* s_GL_NV_conservative_raster_pre_snap_triangles[] = 1548{ 1549 "glConservativeRasterParameteriNV", 1550}; 1551 1552static const char* s_GL_NV_copy_buffer[] = 1553{ 1554 "glCopyBufferSubDataNV", 1555}; 1556 1557static const char* s_GL_NV_coverage_sample[] = 1558{ 1559 "glCoverageMaskNV", 1560 "glCoverageOperationNV", 1561}; 1562 1563static const char* s_GL_NV_draw_buffers[] = 1564{ 1565 "glDrawBuffersNV", 1566}; 1567 1568static const char* s_GL_NV_draw_instanced[] = 1569{ 1570 "glDrawArraysInstancedNV", 1571 "glDrawElementsInstancedNV", 1572}; 1573 1574static const char* s_GL_NV_draw_vulkan_image[] = 1575{ 1576 "glDrawVkImageNV", 1577 "glGetVkProcAddrNV", 1578 "glWaitVkSemaphoreNV", 1579 "glSignalVkSemaphoreNV", 1580 "glSignalVkFenceNV", 1581}; 1582 1583static const char* s_GL_NV_fragment_coverage_to_color[] = 1584{ 1585 "glFragmentCoverageColorNV", 1586}; 1587 1588static const char* s_GL_NV_framebuffer_blit[] = 1589{ 1590 "glBlitFramebufferNV", 1591}; 1592 1593static const char* s_GL_NV_framebuffer_mixed_samples[] = 1594{ 1595 "glCoverageModulationNV", 1596 "glCoverageModulationTableNV", 1597 "glGetCoverageModulationTableNV", 1598 "glRasterSamplesEXT", 1599}; 1600 1601static const char* s_GL_NV_framebuffer_multisample[] = 1602{ 1603 "glRenderbufferStorageMultisampleNV", 1604}; 1605 1606static const char* s_GL_NV_gpu_shader5[] = 1607{ 1608 "glGetUniformi64vNV", 1609 "glProgramUniform1i64NV", 1610 "glProgramUniform1i64vNV", 1611 "glProgramUniform1ui64NV", 1612 "glProgramUniform1ui64vNV", 1613 "glProgramUniform2i64NV", 1614 "glProgramUniform2i64vNV", 1615 "glProgramUniform2ui64NV", 1616 "glProgramUniform2ui64vNV", 1617 "glProgramUniform3i64NV", 1618 "glProgramUniform3i64vNV", 1619 "glProgramUniform3ui64NV", 1620 "glProgramUniform3ui64vNV", 1621 "glProgramUniform4i64NV", 1622 "glProgramUniform4i64vNV", 1623 "glProgramUniform4ui64NV", 1624 "glProgramUniform4ui64vNV", 1625 "glUniform1i64NV", 1626 "glUniform1i64vNV", 1627 "glUniform1ui64NV", 1628 "glUniform1ui64vNV", 1629 "glUniform2i64NV", 1630 "glUniform2i64vNV", 1631 "glUniform2ui64NV", 1632 "glUniform2ui64vNV", 1633 "glUniform3i64NV", 1634 "glUniform3i64vNV", 1635 "glUniform3ui64NV", 1636 "glUniform3ui64vNV", 1637 "glUniform4i64NV", 1638 "glUniform4i64vNV", 1639 "glUniform4ui64NV", 1640 "glUniform4ui64vNV", 1641}; 1642 1643static const char* s_GL_NV_instanced_arrays[] = 1644{ 1645 "glVertexAttribDivisorNV", 1646}; 1647 1648static const char* s_GL_NV_internalformat_sample_query[] = 1649{ 1650 "glGetInternalformatSampleivNV", 1651}; 1652 1653static const char* s_GL_NV_memory_attachment[] = 1654{ 1655 "glBufferAttachMemoryNV", 1656 "glGetMemoryObjectDetachedResourcesuivNV", 1657 "glNamedBufferAttachMemoryNV", 1658 "glResetMemoryObjectParameterNV", 1659 "glTexAttachMemoryNV", 1660 "glTextureAttachMemoryNV", 1661}; 1662 1663static const char* s_GL_NV_memory_object_sparse[] = 1664{ 1665 "glBufferPageCommitmentMemNV", 1666 "glNamedBufferPageCommitmentMemNV", 1667 "glTexPageCommitmentMemNV", 1668 "glTexturePageCommitmentMemNV", 1669}; 1670 1671static const char* s_GL_NV_mesh_shader[] = 1672{ 1673 "glDrawMeshTasksNV", 1674 "glDrawMeshTasksIndirectNV", 1675 "glMultiDrawMeshTasksIndirectNV", 1676 "glMultiDrawMeshTasksIndirectCountNV", 1677}; 1678 1679static const char* s_GL_NV_non_square_matrices[] = 1680{ 1681 "glUniformMatrix2x3fvNV", 1682 "glUniformMatrix2x4fvNV", 1683 "glUniformMatrix3x2fvNV", 1684 "glUniformMatrix3x4fvNV", 1685 "glUniformMatrix4x2fvNV", 1686 "glUniformMatrix4x3fvNV", 1687}; 1688 1689static const char* s_GL_NV_path_rendering[] = 1690{ 1691 "glCopyPathNV", 1692 "glCoverFillPathInstancedNV", 1693 "glCoverFillPathNV", 1694 "glCoverStrokePathInstancedNV", 1695 "glCoverStrokePathNV", 1696 "glDeletePathsNV", 1697 "glGenPathsNV", 1698 "glGetPathCommandsNV", 1699 "glGetPathCoordsNV", 1700 "glGetPathDashArrayNV", 1701 "glGetPathLengthNV", 1702 "glGetPathMetricRangeNV", 1703 "glGetPathMetricsNV", 1704 "glGetPathParameterfvNV", 1705 "glGetPathParameterivNV", 1706 "glGetPathSpacingNV", 1707 "glGetProgramResourcefvNV", 1708 "glInterpolatePathsNV", 1709 "glIsPathNV", 1710 "glIsPointInFillPathNV", 1711 "glIsPointInStrokePathNV", 1712 "glMatrixFrustumEXT", 1713 "glMatrixLoad3x2fNV", 1714 "glMatrixLoad3x3fNV", 1715 "glMatrixLoadIdentityEXT", 1716 "glMatrixLoadTranspose3x3fNV", 1717 "glMatrixLoadTransposedEXT", 1718 "glMatrixLoadTransposefEXT", 1719 "glMatrixLoaddEXT", 1720 "glMatrixLoadfEXT", 1721 "glMatrixMult3x2fNV", 1722 "glMatrixMult3x3fNV", 1723 "glMatrixMultTranspose3x3fNV", 1724 "glMatrixMultTransposedEXT", 1725 "glMatrixMultTransposefEXT", 1726 "glMatrixMultdEXT", 1727 "glMatrixMultfEXT", 1728 "glMatrixOrthoEXT", 1729 "glMatrixPopEXT", 1730 "glMatrixPushEXT", 1731 "glMatrixRotatedEXT", 1732 "glMatrixRotatefEXT", 1733 "glMatrixScaledEXT", 1734 "glMatrixScalefEXT", 1735 "glMatrixTranslatedEXT", 1736 "glMatrixTranslatefEXT", 1737 "glPathCommandsNV", 1738 "glPathCoordsNV", 1739 "glPathCoverDepthFuncNV", 1740 "glPathDashArrayNV", 1741 "glPathGlyphIndexArrayNV", 1742 "glPathGlyphIndexRangeNV", 1743 "glPathGlyphRangeNV", 1744 "glPathGlyphsNV", 1745 "glPathMemoryGlyphIndexArrayNV", 1746 "glPathParameterfNV", 1747 "glPathParameterfvNV", 1748 "glPathParameteriNV", 1749 "glPathParameterivNV", 1750 "glPathStencilDepthOffsetNV", 1751 "glPathStencilFuncNV", 1752 "glPathStringNV", 1753 "glPathSubCommandsNV", 1754 "glPathSubCoordsNV", 1755 "glPointAlongPathNV", 1756 "glProgramPathFragmentInputGenNV", 1757 "glStencilFillPathInstancedNV", 1758 "glStencilFillPathNV", 1759 "glStencilStrokePathInstancedNV", 1760 "glStencilStrokePathNV", 1761 "glStencilThenCoverFillPathInstancedNV", 1762 "glStencilThenCoverFillPathNV", 1763 "glStencilThenCoverStrokePathInstancedNV", 1764 "glStencilThenCoverStrokePathNV", 1765 "glTransformPathNV", 1766 "glWeightPathsNV", 1767}; 1768 1769static const char* s_GL_NV_polygon_mode[] = 1770{ 1771 "glPolygonModeNV", 1772}; 1773 1774static const char* s_GL_NV_read_buffer[] = 1775{ 1776 "glReadBufferNV", 1777}; 1778 1779static const char* s_GL_NV_sample_locations[] = 1780{ 1781 "glFramebufferSampleLocationsfvNV", 1782 "glNamedFramebufferSampleLocationsfvNV", 1783 "glResolveDepthValuesNV", 1784}; 1785 1786static const char* s_GL_NV_scissor_exclusive[] = 1787{ 1788 "glScissorExclusiveArrayvNV", 1789 "glScissorExclusiveNV", 1790}; 1791 1792static const char* s_GL_NV_shading_rate_image[] = 1793{ 1794 "glBindShadingRateImageNV", 1795 "glGetShadingRateImagePaletteNV", 1796 "glGetShadingRateSampleLocationivNV", 1797 "glShadingRateImageBarrierNV", 1798 "glShadingRateImagePaletteNV", 1799 "glShadingRateSampleOrderNV", 1800 "glShadingRateSampleOrderCustomNV", 1801}; 1802 1803static const char* s_GL_NV_viewport_array[] = 1804{ 1805 "glDepthRangeArrayfvNV", 1806 "glDepthRangeIndexedfNV", 1807 "glDisableiNV", 1808 "glEnableiNV", 1809 "glGetFloati_vNV", 1810 "glIsEnablediNV", 1811 "glScissorArrayvNV", 1812 "glScissorIndexedNV", 1813 "glScissorIndexedvNV", 1814 "glViewportArrayvNV", 1815 "glViewportIndexedfNV", 1816 "glViewportIndexedfvNV", 1817}; 1818 1819static const char* s_GL_NV_viewport_swizzle[] = 1820{ 1821 "glViewportSwizzleNV", 1822}; 1823 1824static const char* s_GL_OES_copy_image[] = 1825{ 1826 "glCopyImageSubDataOES", 1827}; 1828 1829static const char* s_GL_OES_draw_buffers_indexed[] = 1830{ 1831 "glBlendEquationSeparateiOES", 1832 "glBlendEquationiOES", 1833 "glBlendFuncSeparateiOES", 1834 "glBlendFunciOES", 1835 "glColorMaskiOES", 1836 "glDisableiOES", 1837 "glEnableiOES", 1838 "glIsEnablediOES", 1839}; 1840 1841static const char* s_GL_OES_draw_elements_base_vertex[] = 1842{ 1843 "glDrawElementsBaseVertexOES", 1844 "glDrawElementsInstancedBaseVertexOES", 1845 "glDrawRangeElementsBaseVertexOES", 1846 "glMultiDrawElementsBaseVertexEXT", 1847}; 1848 1849static const char* s_GL_OES_geometry_shader[] = 1850{ 1851 "glFramebufferTextureOES", 1852}; 1853 1854static const char* s_GL_OES_get_program_binary[] = 1855{ 1856 "glGetProgramBinaryOES", 1857 "glProgramBinaryOES", 1858}; 1859 1860static const char* s_GL_OES_primitive_bounding_box[] = 1861{ 1862 "glPrimitiveBoundingBoxOES", 1863}; 1864 1865static const char* s_GL_OES_sample_shading[] = 1866{ 1867 "glMinSampleShadingOES", 1868}; 1869 1870static const char* s_GL_OES_tessellation_shader[] = 1871{ 1872 "glPatchParameteriOES", 1873}; 1874 1875static const char* s_GL_OES_texture_3D[] = 1876{ 1877 "glCompressedTexImage3DOES", 1878 "glCompressedTexSubImage3DOES", 1879 "glCopyTexSubImage3DOES", 1880 "glFramebufferTexture3DOES", 1881 "glTexImage3DOES", 1882 "glTexSubImage3DOES", 1883}; 1884 1885static const char* s_GL_OES_texture_border_clamp[] = 1886{ 1887 "glGetSamplerParameterIivOES", 1888 "glGetSamplerParameterIuivOES", 1889 "glGetTexParameterIivOES", 1890 "glGetTexParameterIuivOES", 1891 "glSamplerParameterIivOES", 1892 "glSamplerParameterIuivOES", 1893 "glTexParameterIivOES", 1894 "glTexParameterIuivOES", 1895}; 1896 1897static const char* s_GL_OES_texture_buffer[] = 1898{ 1899 "glTexBufferOES", 1900 "glTexBufferRangeOES", 1901}; 1902 1903static const char* s_GL_OES_texture_storage_multisample_2d_array[] = 1904{ 1905 "glTexStorage3DMultisampleOES", 1906}; 1907 1908static const char* s_GL_OES_texture_view[] = 1909{ 1910 "glTextureViewOES", 1911}; 1912 1913static const char* s_GL_OES_viewport_array[] = 1914{ 1915 "glDepthRangeArrayfvOES", 1916 "glDepthRangeIndexedfOES", 1917 "glDisableiOES", 1918 "glEnableiOES", 1919 "glGetFloati_vOES", 1920 "glIsEnablediOES", 1921 "glScissorArrayvOES", 1922 "glScissorIndexedOES", 1923 "glScissorIndexedvOES", 1924 "glViewportArrayvOES", 1925 "glViewportIndexedfOES", 1926 "glViewportIndexedfvOES", 1927}; 1928 1929static const char* s_GL_OVR_multiview[] = 1930{ 1931 "glFramebufferTextureMultiviewOVR", 1932}; 1933 1934static const char* s_GL_OVR_multiview_multisampled_render_to_texture[] = 1935{ 1936 "glFramebufferTextureMultisampleMultiviewOVR", 1937}; 1938 1939static const char* s_GL_QCOM_alpha_test[] = 1940{ 1941 "glAlphaFuncQCOM", 1942}; 1943 1944static const char* s_GL_QCOM_framebuffer_foveated[] = 1945{ 1946 "glFramebufferFoveationConfigQCOM", 1947 "glFramebufferFoveationParametersQCOM", 1948}; 1949 1950static const char* s_GL_QCOM_motion_estimation[] = 1951{ 1952 "glTexEstimateMotionQCOM", 1953 "glTexEstimateMotionRegionsQCOM", 1954}; 1955 1956static const char* s_GL_QCOM_frame_extrapolation[] = 1957{ 1958 "glExtrapolateTex2DQCOM", 1959}; 1960 1961static const char* s_GL_QCOM_texture_foveated[] = 1962{ 1963 "glTextureFoveationParametersQCOM", 1964}; 1965 1966static const char* s_GL_QCOM_shader_framebuffer_fetch_noncoherent[] = 1967{ 1968 "glFramebufferFetchBarrierQCOM", 1969}; 1970 1971static const char* s_GL_QCOM_shading_rate[] = 1972{ 1973 "glShadingRateQCOM", 1974}; 1975 1976static const struct 1977{ 1978 const char* name; 1979 const int numFunctions; 1980 const char* const* functions; 1981} s_extensions[] = 1982{ 1983 { "EGL_ANDROID_blob_cache", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_blob_cache), s_EGL_ANDROID_blob_cache }, 1984 { "EGL_ANDROID_create_native_client_buffer", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_create_native_client_buffer), s_EGL_ANDROID_create_native_client_buffer }, 1985 { "EGL_ANDROID_get_native_client_buffer", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_get_native_client_buffer), s_EGL_ANDROID_get_native_client_buffer }, 1986 { "EGL_ANDROID_native_fence_sync", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_native_fence_sync), s_EGL_ANDROID_native_fence_sync }, 1987 { "EGL_ANDROID_presentation_time", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_presentation_time), s_EGL_ANDROID_presentation_time }, 1988 { "EGL_ANDROID_get_frame_timestamps", DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_get_frame_timestamps), s_EGL_ANDROID_get_frame_timestamps }, 1989 { "EGL_ANGLE_query_surface_pointer", DE_LENGTH_OF_ARRAY(s_EGL_ANGLE_query_surface_pointer), s_EGL_ANGLE_query_surface_pointer }, 1990 { "EGL_EXT_client_sync", DE_LENGTH_OF_ARRAY(s_EGL_EXT_client_sync), s_EGL_EXT_client_sync }, 1991 { "EGL_EXT_device_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_base), s_EGL_EXT_device_base }, 1992 { "EGL_EXT_device_enumeration", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_enumeration), s_EGL_EXT_device_enumeration }, 1993 { "EGL_EXT_device_query", DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_query), s_EGL_EXT_device_query }, 1994 { "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 }, 1995 { "EGL_EXT_output_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_output_base), s_EGL_EXT_output_base }, 1996 { "EGL_EXT_platform_base", DE_LENGTH_OF_ARRAY(s_EGL_EXT_platform_base), s_EGL_EXT_platform_base }, 1997 { "EGL_EXT_stream_consumer_egloutput", DE_LENGTH_OF_ARRAY(s_EGL_EXT_stream_consumer_egloutput), s_EGL_EXT_stream_consumer_egloutput }, 1998 { "EGL_EXT_swap_buffers_with_damage", DE_LENGTH_OF_ARRAY(s_EGL_EXT_swap_buffers_with_damage), s_EGL_EXT_swap_buffers_with_damage }, 1999 { "EGL_EXT_sync_reuse", DE_LENGTH_OF_ARRAY(s_EGL_EXT_sync_reuse), s_EGL_EXT_sync_reuse }, 2000 { "EGL_HI_clientpixmap", DE_LENGTH_OF_ARRAY(s_EGL_HI_clientpixmap), s_EGL_HI_clientpixmap }, 2001 { "EGL_KHR_cl_event2", DE_LENGTH_OF_ARRAY(s_EGL_KHR_cl_event2), s_EGL_KHR_cl_event2 }, 2002 { "EGL_KHR_debug", DE_LENGTH_OF_ARRAY(s_EGL_KHR_debug), s_EGL_KHR_debug }, 2003 { "EGL_KHR_display_reference", DE_LENGTH_OF_ARRAY(s_EGL_KHR_display_reference), s_EGL_KHR_display_reference }, 2004 { "EGL_KHR_fence_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_fence_sync), s_EGL_KHR_fence_sync }, 2005 { "EGL_KHR_image", DE_LENGTH_OF_ARRAY(s_EGL_KHR_image), s_EGL_KHR_image }, 2006 { "EGL_KHR_image_base", DE_LENGTH_OF_ARRAY(s_EGL_KHR_image_base), s_EGL_KHR_image_base }, 2007 { "EGL_KHR_lock_surface", DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface), s_EGL_KHR_lock_surface }, 2008 { "EGL_KHR_lock_surface3", DE_LENGTH_OF_ARRAY(s_EGL_KHR_lock_surface3), s_EGL_KHR_lock_surface3 }, 2009 { "EGL_KHR_partial_update", DE_LENGTH_OF_ARRAY(s_EGL_KHR_partial_update), s_EGL_KHR_partial_update }, 2010 { "EGL_KHR_reusable_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_reusable_sync), s_EGL_KHR_reusable_sync }, 2011 { "EGL_KHR_stream", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream), s_EGL_KHR_stream }, 2012 { "EGL_KHR_stream_attrib", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_attrib), s_EGL_KHR_stream_attrib }, 2013 { "EGL_KHR_stream_consumer_gltexture", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_consumer_gltexture), s_EGL_KHR_stream_consumer_gltexture }, 2014 { "EGL_KHR_stream_cross_process_fd", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_cross_process_fd), s_EGL_KHR_stream_cross_process_fd }, 2015 { "EGL_KHR_stream_fifo", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_fifo), s_EGL_KHR_stream_fifo }, 2016 { "EGL_KHR_stream_producer_eglsurface", DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_producer_eglsurface), s_EGL_KHR_stream_producer_eglsurface }, 2017 { "EGL_KHR_swap_buffers_with_damage", DE_LENGTH_OF_ARRAY(s_EGL_KHR_swap_buffers_with_damage), s_EGL_KHR_swap_buffers_with_damage }, 2018 { "EGL_KHR_wait_sync", DE_LENGTH_OF_ARRAY(s_EGL_KHR_wait_sync), s_EGL_KHR_wait_sync }, 2019 { "EGL_MESA_drm_image", DE_LENGTH_OF_ARRAY(s_EGL_MESA_drm_image), s_EGL_MESA_drm_image }, 2020 { "EGL_MESA_image_dma_buf_export", DE_LENGTH_OF_ARRAY(s_EGL_MESA_image_dma_buf_export), s_EGL_MESA_image_dma_buf_export }, 2021 { "EGL_NOK_swap_region", DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region), s_EGL_NOK_swap_region }, 2022 { "EGL_NOK_swap_region2", DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region2), s_EGL_NOK_swap_region2 }, 2023 { "EGL_NV_native_query", DE_LENGTH_OF_ARRAY(s_EGL_NV_native_query), s_EGL_NV_native_query }, 2024 { "EGL_NV_post_sub_buffer", DE_LENGTH_OF_ARRAY(s_EGL_NV_post_sub_buffer), s_EGL_NV_post_sub_buffer }, 2025 { "EGL_NV_stream_consumer_gltexture_yuv", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_consumer_gltexture_yuv), s_EGL_NV_stream_consumer_gltexture_yuv }, 2026 { "EGL_NV_stream_flush", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_flush), s_EGL_NV_stream_flush }, 2027 { "EGL_NV_stream_metadata", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_metadata), s_EGL_NV_stream_metadata }, 2028 { "EGL_NV_stream_reset", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_reset), s_EGL_NV_stream_reset }, 2029 { "EGL_NV_stream_sync", DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_sync), s_EGL_NV_stream_sync }, 2030 { "EGL_NV_sync", DE_LENGTH_OF_ARRAY(s_EGL_NV_sync), s_EGL_NV_sync }, 2031 { "EGL_NV_system_time", DE_LENGTH_OF_ARRAY(s_EGL_NV_system_time), s_EGL_NV_system_time }, 2032 { "EGL_EXT_compositor", DE_LENGTH_OF_ARRAY(s_EGL_EXT_compositor), s_EGL_EXT_compositor }, 2033 { "GL_APPLE_copy_texture_levels", DE_LENGTH_OF_ARRAY(s_GL_APPLE_copy_texture_levels), s_GL_APPLE_copy_texture_levels }, 2034 { "GL_APPLE_framebuffer_multisample", DE_LENGTH_OF_ARRAY(s_GL_APPLE_framebuffer_multisample), s_GL_APPLE_framebuffer_multisample }, 2035 { "GL_APPLE_sync", DE_LENGTH_OF_ARRAY(s_GL_APPLE_sync), s_GL_APPLE_sync }, 2036 { "GL_EXT_debug_marker", DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_marker), s_GL_EXT_debug_marker }, 2037 { "GL_EXT_discard_framebuffer", DE_LENGTH_OF_ARRAY(s_GL_EXT_discard_framebuffer), s_GL_EXT_discard_framebuffer }, 2038 { "GL_EXT_map_buffer_range", DE_LENGTH_OF_ARRAY(s_GL_EXT_map_buffer_range), s_GL_EXT_map_buffer_range }, 2039 { "GL_EXT_multi_draw_arrays", DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_arrays), s_GL_EXT_multi_draw_arrays }, 2040 { "GL_EXT_multisampled_render_to_texture", DE_LENGTH_OF_ARRAY(s_GL_EXT_multisampled_render_to_texture), s_GL_EXT_multisampled_render_to_texture }, 2041 { "GL_EXT_robustness", DE_LENGTH_OF_ARRAY(s_GL_EXT_robustness), s_GL_EXT_robustness }, 2042 { "GL_EXT_texture_storage", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_storage), s_GL_EXT_texture_storage }, 2043 { "GL_IMG_multisampled_render_to_texture", DE_LENGTH_OF_ARRAY(s_GL_IMG_multisampled_render_to_texture), s_GL_IMG_multisampled_render_to_texture }, 2044 { "GL_IMG_user_clip_plane", DE_LENGTH_OF_ARRAY(s_GL_IMG_user_clip_plane), s_GL_IMG_user_clip_plane }, 2045 { "GL_NV_fence", DE_LENGTH_OF_ARRAY(s_GL_NV_fence), s_GL_NV_fence }, 2046 { "GL_OES_EGL_image", DE_LENGTH_OF_ARRAY(s_GL_OES_EGL_image), s_GL_OES_EGL_image }, 2047 { "GL_OES_blend_equation_separate", DE_LENGTH_OF_ARRAY(s_GL_OES_blend_equation_separate), s_GL_OES_blend_equation_separate }, 2048 { "GL_OES_blend_func_separate", DE_LENGTH_OF_ARRAY(s_GL_OES_blend_func_separate), s_GL_OES_blend_func_separate }, 2049 { "GL_OES_blend_subtract", DE_LENGTH_OF_ARRAY(s_GL_OES_blend_subtract), s_GL_OES_blend_subtract }, 2050 { "GL_OES_draw_texture", DE_LENGTH_OF_ARRAY(s_GL_OES_draw_texture), s_GL_OES_draw_texture }, 2051 { "GL_OES_fixed_point", DE_LENGTH_OF_ARRAY(s_GL_OES_fixed_point), s_GL_OES_fixed_point }, 2052 { "GL_OES_framebuffer_object", DE_LENGTH_OF_ARRAY(s_GL_OES_framebuffer_object), s_GL_OES_framebuffer_object }, 2053 { "GL_OES_mapbuffer", DE_LENGTH_OF_ARRAY(s_GL_OES_mapbuffer), s_GL_OES_mapbuffer }, 2054 { "GL_OES_matrix_palette", DE_LENGTH_OF_ARRAY(s_GL_OES_matrix_palette), s_GL_OES_matrix_palette }, 2055 { "GL_OES_point_size_array", DE_LENGTH_OF_ARRAY(s_GL_OES_point_size_array), s_GL_OES_point_size_array }, 2056 { "GL_OES_query_matrix", DE_LENGTH_OF_ARRAY(s_GL_OES_query_matrix), s_GL_OES_query_matrix }, 2057 { "GL_OES_single_precision", DE_LENGTH_OF_ARRAY(s_GL_OES_single_precision), s_GL_OES_single_precision }, 2058 { "GL_OES_texture_cube_map", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_cube_map), s_GL_OES_texture_cube_map }, 2059 { "GL_OES_vertex_array_object", DE_LENGTH_OF_ARRAY(s_GL_OES_vertex_array_object), s_GL_OES_vertex_array_object }, 2060 { "GL_QCOM_driver_control", DE_LENGTH_OF_ARRAY(s_GL_QCOM_driver_control), s_GL_QCOM_driver_control }, 2061 { "GL_QCOM_extended_get", DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get), s_GL_QCOM_extended_get }, 2062 { "GL_QCOM_extended_get2", DE_LENGTH_OF_ARRAY(s_GL_QCOM_extended_get2), s_GL_QCOM_extended_get2 }, 2063 { "GL_QCOM_tiled_rendering", DE_LENGTH_OF_ARRAY(s_GL_QCOM_tiled_rendering), s_GL_QCOM_tiled_rendering }, 2064 { "GL_AMD_framebuffer_multisample_advanced", DE_LENGTH_OF_ARRAY(s_GL_AMD_framebuffer_multisample_advanced), s_GL_AMD_framebuffer_multisample_advanced }, 2065 { "GL_AMD_performance_monitor", DE_LENGTH_OF_ARRAY(s_GL_AMD_performance_monitor), s_GL_AMD_performance_monitor }, 2066 { "GL_ANGLE_framebuffer_blit", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_blit), s_GL_ANGLE_framebuffer_blit }, 2067 { "GL_ANGLE_framebuffer_multisample", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_framebuffer_multisample), s_GL_ANGLE_framebuffer_multisample }, 2068 { "GL_ANGLE_instanced_arrays", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_instanced_arrays), s_GL_ANGLE_instanced_arrays }, 2069 { "GL_ANGLE_translated_shader_source", DE_LENGTH_OF_ARRAY(s_GL_ANGLE_translated_shader_source), s_GL_ANGLE_translated_shader_source }, 2070 { "GL_EXT_EGL_image_storage", DE_LENGTH_OF_ARRAY(s_GL_EXT_EGL_image_storage), s_GL_EXT_EGL_image_storage }, 2071 { "GL_EXT_base_instance", DE_LENGTH_OF_ARRAY(s_GL_EXT_base_instance), s_GL_EXT_base_instance }, 2072 { "GL_EXT_blend_func_extended", DE_LENGTH_OF_ARRAY(s_GL_EXT_blend_func_extended), s_GL_EXT_blend_func_extended }, 2073 { "GL_EXT_buffer_storage", DE_LENGTH_OF_ARRAY(s_GL_EXT_buffer_storage), s_GL_EXT_buffer_storage }, 2074 { "GL_EXT_clear_texture", DE_LENGTH_OF_ARRAY(s_GL_EXT_clear_texture), s_GL_EXT_clear_texture }, 2075 { "GL_EXT_clip_control", DE_LENGTH_OF_ARRAY(s_GL_EXT_clip_control), s_GL_EXT_clip_control }, 2076 { "GL_EXT_copy_image", DE_LENGTH_OF_ARRAY(s_GL_EXT_copy_image), s_GL_EXT_copy_image }, 2077 { "GL_EXT_debug_label", DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_label), s_GL_EXT_debug_label }, 2078 { "GL_EXT_disjoint_timer_query", DE_LENGTH_OF_ARRAY(s_GL_EXT_disjoint_timer_query), s_GL_EXT_disjoint_timer_query }, 2079 { "GL_EXT_draw_buffers", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers), s_GL_EXT_draw_buffers }, 2080 { "GL_EXT_draw_buffers_indexed", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_buffers_indexed), s_GL_EXT_draw_buffers_indexed }, 2081 { "GL_EXT_draw_elements_base_vertex", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_elements_base_vertex), s_GL_EXT_draw_elements_base_vertex }, 2082 { "GL_EXT_draw_instanced", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_instanced), s_GL_EXT_draw_instanced }, 2083 { "GL_EXT_draw_transform_feedback", DE_LENGTH_OF_ARRAY(s_GL_EXT_draw_transform_feedback), s_GL_EXT_draw_transform_feedback }, 2084 { "GL_EXT_external_buffer", DE_LENGTH_OF_ARRAY(s_GL_EXT_external_buffer), s_GL_EXT_external_buffer }, 2085 { "GL_EXT_fragment_shading_rate", DE_LENGTH_OF_ARRAY(s_GL_EXT_fragment_shading_rate), s_GL_EXT_fragment_shading_rate }, 2086 { "GL_EXT_geometry_shader", DE_LENGTH_OF_ARRAY(s_GL_EXT_geometry_shader), s_GL_EXT_geometry_shader }, 2087 { "GL_EXT_instanced_arrays", DE_LENGTH_OF_ARRAY(s_GL_EXT_instanced_arrays), s_GL_EXT_instanced_arrays }, 2088 { "GL_EXT_memory_object", DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object), s_GL_EXT_memory_object }, 2089 { "GL_EXT_memory_object_fd", DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_fd), s_GL_EXT_memory_object_fd }, 2090 { "GL_EXT_memory_object_win32", DE_LENGTH_OF_ARRAY(s_GL_EXT_memory_object_win32), s_GL_EXT_memory_object_win32 }, 2091 { "GL_EXT_multi_draw_indirect", DE_LENGTH_OF_ARRAY(s_GL_EXT_multi_draw_indirect), s_GL_EXT_multi_draw_indirect }, 2092 { "GL_EXT_multiview_draw_buffers", DE_LENGTH_OF_ARRAY(s_GL_EXT_multiview_draw_buffers), s_GL_EXT_multiview_draw_buffers }, 2093 { "GL_EXT_occlusion_query_boolean", DE_LENGTH_OF_ARRAY(s_GL_EXT_occlusion_query_boolean), s_GL_EXT_occlusion_query_boolean }, 2094 { "GL_EXT_polygon_offset_clamp", DE_LENGTH_OF_ARRAY(s_GL_EXT_polygon_offset_clamp), s_GL_EXT_polygon_offset_clamp }, 2095 { "GL_EXT_primitive_bounding_box", DE_LENGTH_OF_ARRAY(s_GL_EXT_primitive_bounding_box), s_GL_EXT_primitive_bounding_box }, 2096 { "GL_EXT_raster_multisample", DE_LENGTH_OF_ARRAY(s_GL_EXT_raster_multisample), s_GL_EXT_raster_multisample }, 2097 { "GL_EXT_semaphore", DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore), s_GL_EXT_semaphore }, 2098 { "GL_EXT_semaphore_fd", DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_fd), s_GL_EXT_semaphore_fd }, 2099 { "GL_EXT_semaphore_win32", DE_LENGTH_OF_ARRAY(s_GL_EXT_semaphore_win32), s_GL_EXT_semaphore_win32 }, 2100 { "GL_EXT_separate_shader_objects", DE_LENGTH_OF_ARRAY(s_GL_EXT_separate_shader_objects), s_GL_EXT_separate_shader_objects }, 2101 { "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 }, 2102 { "GL_EXT_shader_pixel_local_storage2", DE_LENGTH_OF_ARRAY(s_GL_EXT_shader_pixel_local_storage2), s_GL_EXT_shader_pixel_local_storage2 }, 2103 { "GL_EXT_sparse_texture", DE_LENGTH_OF_ARRAY(s_GL_EXT_sparse_texture), s_GL_EXT_sparse_texture }, 2104 { "GL_EXT_tessellation_shader", DE_LENGTH_OF_ARRAY(s_GL_EXT_tessellation_shader), s_GL_EXT_tessellation_shader }, 2105 { "GL_EXT_texture_border_clamp", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_border_clamp), s_GL_EXT_texture_border_clamp }, 2106 { "GL_EXT_texture_buffer", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_buffer), s_GL_EXT_texture_buffer }, 2107 { "GL_EXT_texture_storage_compression", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_storage_compression), s_GL_EXT_texture_storage_compression }, 2108 { "GL_EXT_texture_view", DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_view), s_GL_EXT_texture_view }, 2109 { "GL_NV_timeline_semaphore", DE_LENGTH_OF_ARRAY(s_GL_NV_timeline_semaphore), s_GL_NV_timeline_semaphore }, 2110 { "GL_EXT_win32_keyed_mutex", DE_LENGTH_OF_ARRAY(s_GL_EXT_win32_keyed_mutex), s_GL_EXT_win32_keyed_mutex }, 2111 { "GL_EXT_window_rectangles", DE_LENGTH_OF_ARRAY(s_GL_EXT_window_rectangles), s_GL_EXT_window_rectangles }, 2112 { "GL_IMG_bindless_texture", DE_LENGTH_OF_ARRAY(s_GL_IMG_bindless_texture), s_GL_IMG_bindless_texture }, 2113 { "GL_IMG_framebuffer_downsample", DE_LENGTH_OF_ARRAY(s_GL_IMG_framebuffer_downsample), s_GL_IMG_framebuffer_downsample }, 2114 { "GL_INTEL_framebuffer_CMAA", DE_LENGTH_OF_ARRAY(s_GL_INTEL_framebuffer_CMAA), s_GL_INTEL_framebuffer_CMAA }, 2115 { "GL_INTEL_performance_query", DE_LENGTH_OF_ARRAY(s_GL_INTEL_performance_query), s_GL_INTEL_performance_query }, 2116 { "GL_KHR_blend_equation_advanced", DE_LENGTH_OF_ARRAY(s_GL_KHR_blend_equation_advanced), s_GL_KHR_blend_equation_advanced }, 2117 { "GL_KHR_debug", DE_LENGTH_OF_ARRAY(s_GL_KHR_debug), s_GL_KHR_debug }, 2118 { "GL_KHR_robustness", DE_LENGTH_OF_ARRAY(s_GL_KHR_robustness), s_GL_KHR_robustness }, 2119 { "GL_KHR_parallel_shader_compile", DE_LENGTH_OF_ARRAY(s_GL_KHR_parallel_shader_compile), s_GL_KHR_parallel_shader_compile }, 2120 { "GL_MESA_framebuffer_flip_y", DE_LENGTH_OF_ARRAY(s_GL_MESA_framebuffer_flip_y), s_GL_MESA_framebuffer_flip_y }, 2121 { "GL_NV_bindless_texture", DE_LENGTH_OF_ARRAY(s_GL_NV_bindless_texture), s_GL_NV_bindless_texture }, 2122 { "GL_NV_blend_equation_advanced", DE_LENGTH_OF_ARRAY(s_GL_NV_blend_equation_advanced), s_GL_NV_blend_equation_advanced }, 2123 { "GL_NV_clip_space_w_scaling", DE_LENGTH_OF_ARRAY(s_GL_NV_clip_space_w_scaling), s_GL_NV_clip_space_w_scaling }, 2124 { "GL_NV_conditional_render", DE_LENGTH_OF_ARRAY(s_GL_NV_conditional_render), s_GL_NV_conditional_render }, 2125 { "GL_NV_conservative_raster", DE_LENGTH_OF_ARRAY(s_GL_NV_conservative_raster), s_GL_NV_conservative_raster }, 2126 { "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 }, 2127 { "GL_NV_copy_buffer", DE_LENGTH_OF_ARRAY(s_GL_NV_copy_buffer), s_GL_NV_copy_buffer }, 2128 { "GL_NV_coverage_sample", DE_LENGTH_OF_ARRAY(s_GL_NV_coverage_sample), s_GL_NV_coverage_sample }, 2129 { "GL_NV_draw_buffers", DE_LENGTH_OF_ARRAY(s_GL_NV_draw_buffers), s_GL_NV_draw_buffers }, 2130 { "GL_NV_draw_instanced", DE_LENGTH_OF_ARRAY(s_GL_NV_draw_instanced), s_GL_NV_draw_instanced }, 2131 { "GL_NV_draw_vulkan_image", DE_LENGTH_OF_ARRAY(s_GL_NV_draw_vulkan_image), s_GL_NV_draw_vulkan_image }, 2132 { "GL_NV_fragment_coverage_to_color", DE_LENGTH_OF_ARRAY(s_GL_NV_fragment_coverage_to_color), s_GL_NV_fragment_coverage_to_color }, 2133 { "GL_NV_framebuffer_blit", DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_blit), s_GL_NV_framebuffer_blit }, 2134 { "GL_NV_framebuffer_mixed_samples", DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_mixed_samples), s_GL_NV_framebuffer_mixed_samples }, 2135 { "GL_NV_framebuffer_multisample", DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_multisample), s_GL_NV_framebuffer_multisample }, 2136 { "GL_NV_gpu_shader5", DE_LENGTH_OF_ARRAY(s_GL_NV_gpu_shader5), s_GL_NV_gpu_shader5 }, 2137 { "GL_NV_instanced_arrays", DE_LENGTH_OF_ARRAY(s_GL_NV_instanced_arrays), s_GL_NV_instanced_arrays }, 2138 { "GL_NV_internalformat_sample_query", DE_LENGTH_OF_ARRAY(s_GL_NV_internalformat_sample_query), s_GL_NV_internalformat_sample_query }, 2139 { "GL_NV_memory_attachment", DE_LENGTH_OF_ARRAY(s_GL_NV_memory_attachment), s_GL_NV_memory_attachment }, 2140 { "GL_NV_memory_object_sparse", DE_LENGTH_OF_ARRAY(s_GL_NV_memory_object_sparse), s_GL_NV_memory_object_sparse }, 2141 { "GL_NV_mesh_shader", DE_LENGTH_OF_ARRAY(s_GL_NV_mesh_shader), s_GL_NV_mesh_shader }, 2142 { "GL_NV_non_square_matrices", DE_LENGTH_OF_ARRAY(s_GL_NV_non_square_matrices), s_GL_NV_non_square_matrices }, 2143 { "GL_NV_path_rendering", DE_LENGTH_OF_ARRAY(s_GL_NV_path_rendering), s_GL_NV_path_rendering }, 2144 { "GL_NV_polygon_mode", DE_LENGTH_OF_ARRAY(s_GL_NV_polygon_mode), s_GL_NV_polygon_mode }, 2145 { "GL_NV_read_buffer", DE_LENGTH_OF_ARRAY(s_GL_NV_read_buffer), s_GL_NV_read_buffer }, 2146 { "GL_NV_sample_locations", DE_LENGTH_OF_ARRAY(s_GL_NV_sample_locations), s_GL_NV_sample_locations }, 2147 { "GL_NV_scissor_exclusive", DE_LENGTH_OF_ARRAY(s_GL_NV_scissor_exclusive), s_GL_NV_scissor_exclusive }, 2148 { "GL_NV_shading_rate_image", DE_LENGTH_OF_ARRAY(s_GL_NV_shading_rate_image), s_GL_NV_shading_rate_image }, 2149 { "GL_NV_viewport_array", DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_array), s_GL_NV_viewport_array }, 2150 { "GL_NV_viewport_swizzle", DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_swizzle), s_GL_NV_viewport_swizzle }, 2151 { "GL_OES_copy_image", DE_LENGTH_OF_ARRAY(s_GL_OES_copy_image), s_GL_OES_copy_image }, 2152 { "GL_OES_draw_buffers_indexed", DE_LENGTH_OF_ARRAY(s_GL_OES_draw_buffers_indexed), s_GL_OES_draw_buffers_indexed }, 2153 { "GL_OES_draw_elements_base_vertex", DE_LENGTH_OF_ARRAY(s_GL_OES_draw_elements_base_vertex), s_GL_OES_draw_elements_base_vertex }, 2154 { "GL_OES_geometry_shader", DE_LENGTH_OF_ARRAY(s_GL_OES_geometry_shader), s_GL_OES_geometry_shader }, 2155 { "GL_OES_get_program_binary", DE_LENGTH_OF_ARRAY(s_GL_OES_get_program_binary), s_GL_OES_get_program_binary }, 2156 { "GL_OES_primitive_bounding_box", DE_LENGTH_OF_ARRAY(s_GL_OES_primitive_bounding_box), s_GL_OES_primitive_bounding_box }, 2157 { "GL_OES_sample_shading", DE_LENGTH_OF_ARRAY(s_GL_OES_sample_shading), s_GL_OES_sample_shading }, 2158 { "GL_OES_tessellation_shader", DE_LENGTH_OF_ARRAY(s_GL_OES_tessellation_shader), s_GL_OES_tessellation_shader }, 2159 { "GL_OES_texture_3D", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_3D), s_GL_OES_texture_3D }, 2160 { "GL_OES_texture_border_clamp", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_border_clamp), s_GL_OES_texture_border_clamp }, 2161 { "GL_OES_texture_buffer", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_buffer), s_GL_OES_texture_buffer }, 2162 { "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 }, 2163 { "GL_OES_texture_view", DE_LENGTH_OF_ARRAY(s_GL_OES_texture_view), s_GL_OES_texture_view }, 2164 { "GL_OES_viewport_array", DE_LENGTH_OF_ARRAY(s_GL_OES_viewport_array), s_GL_OES_viewport_array }, 2165 { "GL_OVR_multiview", DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview), s_GL_OVR_multiview }, 2166 { "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 }, 2167 { "GL_QCOM_alpha_test", DE_LENGTH_OF_ARRAY(s_GL_QCOM_alpha_test), s_GL_QCOM_alpha_test }, 2168 { "GL_QCOM_framebuffer_foveated", DE_LENGTH_OF_ARRAY(s_GL_QCOM_framebuffer_foveated), s_GL_QCOM_framebuffer_foveated }, 2169 { "GL_QCOM_motion_estimation", DE_LENGTH_OF_ARRAY(s_GL_QCOM_motion_estimation), s_GL_QCOM_motion_estimation }, 2170 { "GL_QCOM_frame_extrapolation", DE_LENGTH_OF_ARRAY(s_GL_QCOM_frame_extrapolation), s_GL_QCOM_frame_extrapolation }, 2171 { "GL_QCOM_texture_foveated", DE_LENGTH_OF_ARRAY(s_GL_QCOM_texture_foveated), s_GL_QCOM_texture_foveated }, 2172 { "GL_QCOM_shader_framebuffer_fetch_noncoherent", DE_LENGTH_OF_ARRAY(s_GL_QCOM_shader_framebuffer_fetch_noncoherent), s_GL_QCOM_shader_framebuffer_fetch_noncoherent }, 2173 { "GL_QCOM_shading_rate", DE_LENGTH_OF_ARRAY(s_GL_QCOM_shading_rate), s_GL_QCOM_shading_rate }, 2174}; 2175