From: Rémi Bernon <rbernon@codeweavers.com> --- dlls/opengl32/make_opengl | 16 +- dlls/opengl32/unix_wgl.c | 90 ++ include/wine/opengl_driver.h | 9 + include/wine/wgl.h | 1918 +++++++++++++++++----------------- 4 files changed, 1061 insertions(+), 972 deletions(-) diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index 6d0cfd9029c..8a50c8827eb 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -1466,7 +1466,7 @@ print HEADER "\n"; print HEADER "#define ALL_WGL_EXTS"; foreach (sort keys %wgl_extensions) { - printf HEADER " \\\n USE_GL_EXT(\%s)", $_; + printf HEADER " \\\n USE_GL_EXT(\%s, 1)", $_; } print HEADER "\n\n"; print HEADER "#define ALL_WGL_FUNCS"; @@ -1485,7 +1485,7 @@ print HEADER "\n\n"; print HEADER "#define ALL_EGL_EXTS"; foreach (sort keys %egl_extensions) { - printf HEADER " \\\n USE_GL_EXT(\%s)", $_; + printf HEADER " \\\n USE_GL_EXT(\%s, 0)", $_; } print HEADER "\n\n"; print HEADER "#define ALL_EGL_FUNCS"; @@ -1502,18 +1502,10 @@ foreach (sort keys %ext_functions) printf HEADER " \\\n USE_GL_FUNC(\%s)", $_; } print HEADER "\n\n"; -print HEADER "#define ALL_GL_CLIENT_EXTS"; +print HEADER "#define ALL_GL_EXTS"; foreach (sort keys %gl_extensions) { - next unless is_exposed_extension($_); - printf HEADER " \\\n USE_GL_EXT(\%s)", $_; -} -print HEADER "\n\n"; -print HEADER "#define ALL_GL_EXTS ALL_GL_CLIENT_EXTS"; -foreach (sort keys %gl_extensions) -{ - next if is_exposed_extension($_); - printf HEADER " \\\n USE_GL_EXT(\%s)", $_; + printf HEADER " \\\n USE_GL_EXT(\%s, \%u)", $_, is_exposed_extension($_); } print HEADER "\n\n"; print HEADER "#define ALL_GL_FUNCS"; diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 315aa3cee27..0e2cdaeec92 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -191,6 +191,7 @@ static ULONG_PTR zero_bits; static const struct vulkan_funcs *vk_funcs; static VkInstance vk_instance; static PFN_vkDestroyInstance p_vkDestroyInstance; +static BOOLEAN enabled_extensions[GL_EXTENSION_COUNT]; static int vk_device_cmp( const void *key, const struct rb_entry *entry ) { @@ -1153,9 +1154,96 @@ static BOOL initialize_vk_device( TEB *teb, struct context *ctx ) return FALSE; } +struct extension_entry +{ + const char *name; + size_t len; + BOOLEAN exposed; +}; + +#define USE_GL_EXT(x, e) [x] = { .name = #x, .len = sizeof(#x) - 1, .exposed = e }, +static const struct extension_entry all_extensions[] = { ALL_GL_EXTS ALL_WGL_EXTS }; +#undef USE_GL_EXT + +static int extension_entry_cmp( const void *a, const void *b ) +{ + const struct extension_entry *entry_a = a, *entry_b = b; + size_t len = max( entry_a->len, entry_b->len ); + return strncmp( entry_a->name, entry_b->name, len ); +}; + +static enum opengl_extension parse_extension( const char *ext, size_t len ) +{ + const struct extension_entry entry = { .name = ext, .len = len }, *found; + + if (!(found = bsearch( &entry, all_extensions, ARRAY_SIZE(all_extensions), sizeof(entry), extension_entry_cmp ))) + { + WARN( "Extension %s unknown\n", debugstr_an(ext, len) ); + return GL_EXTENSION_COUNT; + } + return found - all_extensions; +} + +static void parse_extensions( enum opengl_extension extensions[GL_EXTENSION_COUNT], const char *name ) +{ + const char *end; + for (end = name; *end; end++) + { + if (*end != ' ') continue; + if ((*extensions = parse_extension( name, end - name )) != GL_EXTENSION_COUNT) extensions++; + name = end + 1; + } + if (end > name && (*extensions = parse_extension( name, end - name )) != GL_EXTENSION_COUNT) extensions++; + *extensions++ = GL_EXTENSION_COUNT; +} + +static void dump_extensions( const char *prefix, const BOOLEAN extensions[GL_EXTENSION_COUNT] ) +{ + if (TRACE_ON(opengl)) + { + TRACE( "%s extensions:\n", prefix ); + for (UINT i = 0; i < ARRAY_SIZE(all_extensions); i++) + { + if (!extensions[i]) continue; + TRACE( " - %s\n", all_extensions[i].name ); + } + } +} + +static void init_enabled_extensions(void) +{ + enum opengl_extension parsed_extensions[GL_EXTENSION_COUNT]; + char *enabled, *disabled; + + if ((enabled = query_opengl_option( "EnabledExtensions" ))) + { + parse_extensions( parsed_extensions, enabled ); + for (enum opengl_extension *ext = parsed_extensions; *ext != GL_EXTENSION_COUNT; ext++) + enabled_extensions[*ext] = TRUE; + } + else + { + memset( enabled_extensions, TRUE, sizeof(enabled_extensions) ); + } + + if ((disabled = query_opengl_option( "DisabledExtensions" ))) + { + parse_extensions( parsed_extensions, enabled ); + for (enum opengl_extension *ext = parsed_extensions; *ext != GL_EXTENSION_COUNT; ext++) + enabled_extensions[*ext] = FALSE; + } + + if (enabled || disabled) dump_extensions( "Enabled", enabled_extensions ); + + free( enabled ); + free( disabled ); +} + static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HDC draw_hdc, HDC read_hdc, HGLRC client_context, struct context *ctx ) { + static pthread_once_t once = PTHREAD_ONCE_INIT; + DWORD tid = HandleToULong(teb->ClientId.UniqueThread); size_t size = ARRAYSIZE(legacy_extensions) - 1, count = 0; const char *version, *rest = "", **extensions; @@ -1169,6 +1257,8 @@ static void make_context_current( TEB *teb, const struct opengl_funcs *funcs, HD teb->glTable = (void *)funcs; pop_default_fbo( teb ); + pthread_once( &once, init_enabled_extensions ); + if (ctx->major_version) return; /* already synced */ version = (const char *)funcs->p_glGetString( GL_VERSION ); diff --git a/include/wine/opengl_driver.h b/include/wine/opengl_driver.h index 0ca0a4708fc..8e72cebd5d1 100644 --- a/include/wine/opengl_driver.h +++ b/include/wine/opengl_driver.h @@ -59,6 +59,15 @@ struct wgl_pixel_format int float_components; }; +enum opengl_extension +{ +#define USE_GL_EXT(x, e) x, + ALL_GL_EXTS + ALL_WGL_EXTS +#undef USE_GL_EXT + GL_EXTENSION_COUNT, +}; + struct opengl_client_context { struct HGLRC__ obj; /* client object header */ diff --git a/include/wine/wgl.h b/include/wine/wgl.h index e6d2849f5ce..539b14fb0e9 100644 --- a/include/wine/wgl.h +++ b/include/wine/wgl.h @@ -9854,43 +9854,43 @@ typedef BOOL (GLAPIENTRY *PFN_wglSetPixelFormatWINE)( HDC hdc, int format typedef BOOL (GLAPIENTRY *PFN_wglSwapIntervalEXT)( int interval ); #define ALL_WGL_EXTS \ - USE_GL_EXT(WGL_3DFX_multisample) \ - USE_GL_EXT(WGL_ARB_context_flush_control) \ - USE_GL_EXT(WGL_ARB_create_context) \ - USE_GL_EXT(WGL_ARB_create_context_no_error) \ - USE_GL_EXT(WGL_ARB_create_context_profile) \ - USE_GL_EXT(WGL_ARB_create_context_robustness) \ - USE_GL_EXT(WGL_ARB_extensions_string) \ - USE_GL_EXT(WGL_ARB_framebuffer_sRGB) \ - USE_GL_EXT(WGL_ARB_make_current_read) \ - USE_GL_EXT(WGL_ARB_multisample) \ - USE_GL_EXT(WGL_ARB_pbuffer) \ - USE_GL_EXT(WGL_ARB_pixel_format) \ - USE_GL_EXT(WGL_ARB_pixel_format_float) \ - USE_GL_EXT(WGL_ARB_render_texture) \ - USE_GL_EXT(WGL_ARB_robustness_application_isolation) \ - USE_GL_EXT(WGL_ARB_robustness_isolation) \ - USE_GL_EXT(WGL_ARB_robustness_share_group_isolation) \ - USE_GL_EXT(WGL_ATI_pixel_format_float) \ - USE_GL_EXT(WGL_ATI_render_texture_rectangle) \ - USE_GL_EXT(WGL_EXT_colorspace) \ - USE_GL_EXT(WGL_EXT_create_context_es2_profile) \ - USE_GL_EXT(WGL_EXT_create_context_es_profile) \ - USE_GL_EXT(WGL_EXT_depth_float) \ - USE_GL_EXT(WGL_EXT_extensions_string) \ - USE_GL_EXT(WGL_EXT_framebuffer_sRGB) \ - USE_GL_EXT(WGL_EXT_multisample) \ - USE_GL_EXT(WGL_EXT_pixel_format_packed_float) \ - USE_GL_EXT(WGL_EXT_swap_control) \ - USE_GL_EXT(WGL_EXT_swap_control_tear) \ - USE_GL_EXT(WGL_NV_float_buffer) \ - USE_GL_EXT(WGL_NV_multigpu_context) \ - USE_GL_EXT(WGL_NV_multisample_coverage) \ - USE_GL_EXT(WGL_NV_render_depth_texture) \ - USE_GL_EXT(WGL_NV_render_texture_rectangle) \ - USE_GL_EXT(WGL_NV_vertex_array_range) \ - USE_GL_EXT(WGL_WINE_pixel_format_passthrough) \ - USE_GL_EXT(WGL_WINE_query_renderer) + USE_GL_EXT(WGL_3DFX_multisample, 1) \ + USE_GL_EXT(WGL_ARB_context_flush_control, 1) \ + USE_GL_EXT(WGL_ARB_create_context, 1) \ + USE_GL_EXT(WGL_ARB_create_context_no_error, 1) \ + USE_GL_EXT(WGL_ARB_create_context_profile, 1) \ + USE_GL_EXT(WGL_ARB_create_context_robustness, 1) \ + USE_GL_EXT(WGL_ARB_extensions_string, 1) \ + USE_GL_EXT(WGL_ARB_framebuffer_sRGB, 1) \ + USE_GL_EXT(WGL_ARB_make_current_read, 1) \ + USE_GL_EXT(WGL_ARB_multisample, 1) \ + USE_GL_EXT(WGL_ARB_pbuffer, 1) \ + USE_GL_EXT(WGL_ARB_pixel_format, 1) \ + USE_GL_EXT(WGL_ARB_pixel_format_float, 1) \ + USE_GL_EXT(WGL_ARB_render_texture, 1) \ + USE_GL_EXT(WGL_ARB_robustness_application_isolation, 1) \ + USE_GL_EXT(WGL_ARB_robustness_isolation, 1) \ + USE_GL_EXT(WGL_ARB_robustness_share_group_isolation, 1) \ + USE_GL_EXT(WGL_ATI_pixel_format_float, 1) \ + USE_GL_EXT(WGL_ATI_render_texture_rectangle, 1) \ + USE_GL_EXT(WGL_EXT_colorspace, 1) \ + USE_GL_EXT(WGL_EXT_create_context_es2_profile, 1) \ + USE_GL_EXT(WGL_EXT_create_context_es_profile, 1) \ + USE_GL_EXT(WGL_EXT_depth_float, 1) \ + USE_GL_EXT(WGL_EXT_extensions_string, 1) \ + USE_GL_EXT(WGL_EXT_framebuffer_sRGB, 1) \ + USE_GL_EXT(WGL_EXT_multisample, 1) \ + USE_GL_EXT(WGL_EXT_pixel_format_packed_float, 1) \ + USE_GL_EXT(WGL_EXT_swap_control, 1) \ + USE_GL_EXT(WGL_EXT_swap_control_tear, 1) \ + USE_GL_EXT(WGL_NV_float_buffer, 1) \ + USE_GL_EXT(WGL_NV_multigpu_context, 1) \ + USE_GL_EXT(WGL_NV_multisample_coverage, 1) \ + USE_GL_EXT(WGL_NV_render_depth_texture, 1) \ + USE_GL_EXT(WGL_NV_render_texture_rectangle, 1) \ + USE_GL_EXT(WGL_NV_vertex_array_range, 1) \ + USE_GL_EXT(WGL_WINE_pixel_format_passthrough, 1) \ + USE_GL_EXT(WGL_WINE_query_renderer, 1) #define ALL_WGL_FUNCS \ USE_GL_FUNC(wglChoosePixelFormat) \ @@ -9946,142 +9946,142 @@ typedef BOOL (GLAPIENTRY *PFN_wglSwapIntervalEXT)( int interval ); USE_GL_FUNC(wglSwapIntervalEXT) #define ALL_EGL_EXTS \ - USE_GL_EXT(EGL_EXT_bind_to_front) \ - USE_GL_EXT(EGL_EXT_buffer_age) \ - USE_GL_EXT(EGL_EXT_client_extensions) \ - USE_GL_EXT(EGL_EXT_client_sync) \ - USE_GL_EXT(EGL_EXT_compositor) \ - USE_GL_EXT(EGL_EXT_config_select_group) \ - USE_GL_EXT(EGL_EXT_create_context_robustness) \ - USE_GL_EXT(EGL_EXT_device_base) \ - USE_GL_EXT(EGL_EXT_device_drm) \ - USE_GL_EXT(EGL_EXT_device_drm_render_node) \ - USE_GL_EXT(EGL_EXT_device_enumeration) \ - USE_GL_EXT(EGL_EXT_device_openwf) \ - USE_GL_EXT(EGL_EXT_device_persistent_id) \ - USE_GL_EXT(EGL_EXT_device_query) \ - USE_GL_EXT(EGL_EXT_device_query_name) \ - USE_GL_EXT(EGL_EXT_display_alloc) \ - USE_GL_EXT(EGL_EXT_explicit_device) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_bt2020_hlg) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_bt2020_linear) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_bt2020_pq) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_display_p3) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_display_p3_linear) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_display_p3_passthrough) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_scrgb) \ - USE_GL_EXT(EGL_EXT_gl_colorspace_scrgb_linear) \ - USE_GL_EXT(EGL_EXT_image_dma_buf_import) \ - USE_GL_EXT(EGL_EXT_image_dma_buf_import_modifiers) \ - USE_GL_EXT(EGL_EXT_image_gl_colorspace) \ - USE_GL_EXT(EGL_EXT_image_implicit_sync_control) \ - USE_GL_EXT(EGL_EXT_multiview_window) \ - USE_GL_EXT(EGL_EXT_output_base) \ - USE_GL_EXT(EGL_EXT_output_drm) \ - USE_GL_EXT(EGL_EXT_output_openwf) \ - USE_GL_EXT(EGL_EXT_pixel_format_float) \ - USE_GL_EXT(EGL_EXT_platform_base) \ - USE_GL_EXT(EGL_EXT_platform_device) \ - USE_GL_EXT(EGL_EXT_platform_wayland) \ - USE_GL_EXT(EGL_EXT_platform_x11) \ - USE_GL_EXT(EGL_EXT_platform_xcb) \ - USE_GL_EXT(EGL_EXT_present_opaque) \ - USE_GL_EXT(EGL_EXT_protected_content) \ - USE_GL_EXT(EGL_EXT_protected_surface) \ - USE_GL_EXT(EGL_EXT_query_reset_notification_strategy) \ - USE_GL_EXT(EGL_EXT_stream_consumer_egloutput) \ - USE_GL_EXT(EGL_EXT_surface_CTA861_3_metadata) \ - USE_GL_EXT(EGL_EXT_surface_SMPTE2086_metadata) \ - USE_GL_EXT(EGL_EXT_surface_compression) \ - USE_GL_EXT(EGL_EXT_swap_buffers_with_damage) \ - USE_GL_EXT(EGL_EXT_sync_reuse) \ - USE_GL_EXT(EGL_EXT_yuv_surface) \ - USE_GL_EXT(EGL_IMG_context_priority) \ - USE_GL_EXT(EGL_IMG_image_plane_attribs) \ - USE_GL_EXT(EGL_KHR_cl_event) \ - USE_GL_EXT(EGL_KHR_cl_event2) \ - USE_GL_EXT(EGL_KHR_client_get_all_proc_addresses) \ - USE_GL_EXT(EGL_KHR_config_attribs) \ - USE_GL_EXT(EGL_KHR_context_flush_control) \ - USE_GL_EXT(EGL_KHR_create_context) \ - USE_GL_EXT(EGL_KHR_create_context_no_error) \ - USE_GL_EXT(EGL_KHR_debug) \ - USE_GL_EXT(EGL_KHR_display_reference) \ - USE_GL_EXT(EGL_KHR_fence_sync) \ - USE_GL_EXT(EGL_KHR_get_all_proc_addresses) \ - USE_GL_EXT(EGL_KHR_gl_colorspace) \ - USE_GL_EXT(EGL_KHR_gl_renderbuffer_image) \ - USE_GL_EXT(EGL_KHR_gl_texture_2D_image) \ - USE_GL_EXT(EGL_KHR_gl_texture_3D_image) \ - USE_GL_EXT(EGL_KHR_gl_texture_cubemap_image) \ - USE_GL_EXT(EGL_KHR_image) \ - USE_GL_EXT(EGL_KHR_image_base) \ - USE_GL_EXT(EGL_KHR_image_pixmap) \ - USE_GL_EXT(EGL_KHR_lock_surface) \ - USE_GL_EXT(EGL_KHR_lock_surface2) \ - USE_GL_EXT(EGL_KHR_lock_surface3) \ - USE_GL_EXT(EGL_KHR_mutable_render_buffer) \ - USE_GL_EXT(EGL_KHR_no_config_context) \ - USE_GL_EXT(EGL_KHR_partial_update) \ - USE_GL_EXT(EGL_KHR_platform_android) \ - USE_GL_EXT(EGL_KHR_platform_gbm) \ - USE_GL_EXT(EGL_KHR_platform_wayland) \ - USE_GL_EXT(EGL_KHR_platform_x11) \ - USE_GL_EXT(EGL_KHR_reusable_sync) \ - USE_GL_EXT(EGL_KHR_stream) \ - USE_GL_EXT(EGL_KHR_stream_attrib) \ - USE_GL_EXT(EGL_KHR_stream_consumer_gltexture) \ - USE_GL_EXT(EGL_KHR_stream_cross_process_fd) \ - USE_GL_EXT(EGL_KHR_stream_fifo) \ - USE_GL_EXT(EGL_KHR_stream_producer_aldatalocator) \ - USE_GL_EXT(EGL_KHR_stream_producer_eglsurface) \ - USE_GL_EXT(EGL_KHR_surfaceless_context) \ - USE_GL_EXT(EGL_KHR_swap_buffers_with_damage) \ - USE_GL_EXT(EGL_KHR_vg_parent_image) \ - USE_GL_EXT(EGL_KHR_wait_sync) \ - USE_GL_EXT(EGL_MESA_drm_image) \ - USE_GL_EXT(EGL_MESA_image_dma_buf_export) \ - USE_GL_EXT(EGL_MESA_platform_gbm) \ - USE_GL_EXT(EGL_MESA_platform_surfaceless) \ - USE_GL_EXT(EGL_MESA_query_driver) \ - USE_GL_EXT(EGL_NV_3dvision_surface) \ - USE_GL_EXT(EGL_NV_context_priority_realtime) \ - USE_GL_EXT(EGL_NV_coverage_sample) \ - USE_GL_EXT(EGL_NV_coverage_sample_resolve) \ - USE_GL_EXT(EGL_NV_cuda_event) \ - USE_GL_EXT(EGL_NV_depth_nonlinear) \ - USE_GL_EXT(EGL_NV_device_cuda) \ - USE_GL_EXT(EGL_NV_native_query) \ - USE_GL_EXT(EGL_NV_post_convert_rounding) \ - USE_GL_EXT(EGL_NV_post_sub_buffer) \ - USE_GL_EXT(EGL_NV_quadruple_buffer) \ - USE_GL_EXT(EGL_NV_robustness_video_memory_purge) \ - USE_GL_EXT(EGL_NV_stream_consumer_eglimage) \ - USE_GL_EXT(EGL_NV_stream_consumer_eglimage_use_scanout_attrib) \ - USE_GL_EXT(EGL_NV_stream_consumer_gltexture_yuv) \ - USE_GL_EXT(EGL_NV_stream_cross_display) \ - USE_GL_EXT(EGL_NV_stream_cross_object) \ - USE_GL_EXT(EGL_NV_stream_cross_partition) \ - USE_GL_EXT(EGL_NV_stream_cross_process) \ - USE_GL_EXT(EGL_NV_stream_cross_system) \ - USE_GL_EXT(EGL_NV_stream_dma) \ - USE_GL_EXT(EGL_NV_stream_fifo_next) \ - USE_GL_EXT(EGL_NV_stream_fifo_synchronous) \ - USE_GL_EXT(EGL_NV_stream_flush) \ - USE_GL_EXT(EGL_NV_stream_frame_limits) \ - USE_GL_EXT(EGL_NV_stream_metadata) \ - USE_GL_EXT(EGL_NV_stream_origin) \ - USE_GL_EXT(EGL_NV_stream_remote) \ - USE_GL_EXT(EGL_NV_stream_reset) \ - USE_GL_EXT(EGL_NV_stream_socket) \ - USE_GL_EXT(EGL_NV_stream_socket_inet) \ - USE_GL_EXT(EGL_NV_stream_socket_unix) \ - USE_GL_EXT(EGL_NV_stream_sync) \ - USE_GL_EXT(EGL_NV_sync) \ - USE_GL_EXT(EGL_NV_system_time) \ - USE_GL_EXT(EGL_NV_triple_buffer) \ - USE_GL_EXT(EGL_WL_bind_wayland_display) \ - USE_GL_EXT(EGL_WL_create_wayland_buffer_from_image) + USE_GL_EXT(EGL_EXT_bind_to_front, 0) \ + USE_GL_EXT(EGL_EXT_buffer_age, 0) \ + USE_GL_EXT(EGL_EXT_client_extensions, 0) \ + USE_GL_EXT(EGL_EXT_client_sync, 0) \ + USE_GL_EXT(EGL_EXT_compositor, 0) \ + USE_GL_EXT(EGL_EXT_config_select_group, 0) \ + USE_GL_EXT(EGL_EXT_create_context_robustness, 0) \ + USE_GL_EXT(EGL_EXT_device_base, 0) \ + USE_GL_EXT(EGL_EXT_device_drm, 0) \ + USE_GL_EXT(EGL_EXT_device_drm_render_node, 0) \ + USE_GL_EXT(EGL_EXT_device_enumeration, 0) \ + USE_GL_EXT(EGL_EXT_device_openwf, 0) \ + USE_GL_EXT(EGL_EXT_device_persistent_id, 0) \ + USE_GL_EXT(EGL_EXT_device_query, 0) \ + USE_GL_EXT(EGL_EXT_device_query_name, 0) \ + USE_GL_EXT(EGL_EXT_display_alloc, 0) \ + USE_GL_EXT(EGL_EXT_explicit_device, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_bt2020_hlg, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_bt2020_linear, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_bt2020_pq, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_display_p3, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_display_p3_linear, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_display_p3_passthrough, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_scrgb, 0) \ + USE_GL_EXT(EGL_EXT_gl_colorspace_scrgb_linear, 0) \ + USE_GL_EXT(EGL_EXT_image_dma_buf_import, 0) \ + USE_GL_EXT(EGL_EXT_image_dma_buf_import_modifiers, 0) \ + USE_GL_EXT(EGL_EXT_image_gl_colorspace, 0) \ + USE_GL_EXT(EGL_EXT_image_implicit_sync_control, 0) \ + USE_GL_EXT(EGL_EXT_multiview_window, 0) \ + USE_GL_EXT(EGL_EXT_output_base, 0) \ + USE_GL_EXT(EGL_EXT_output_drm, 0) \ + USE_GL_EXT(EGL_EXT_output_openwf, 0) \ + USE_GL_EXT(EGL_EXT_pixel_format_float, 0) \ + USE_GL_EXT(EGL_EXT_platform_base, 0) \ + USE_GL_EXT(EGL_EXT_platform_device, 0) \ + USE_GL_EXT(EGL_EXT_platform_wayland, 0) \ + USE_GL_EXT(EGL_EXT_platform_x11, 0) \ + USE_GL_EXT(EGL_EXT_platform_xcb, 0) \ + USE_GL_EXT(EGL_EXT_present_opaque, 0) \ + USE_GL_EXT(EGL_EXT_protected_content, 0) \ + USE_GL_EXT(EGL_EXT_protected_surface, 0) \ + USE_GL_EXT(EGL_EXT_query_reset_notification_strategy, 0) \ + USE_GL_EXT(EGL_EXT_stream_consumer_egloutput, 0) \ + USE_GL_EXT(EGL_EXT_surface_CTA861_3_metadata, 0) \ + USE_GL_EXT(EGL_EXT_surface_SMPTE2086_metadata, 0) \ + USE_GL_EXT(EGL_EXT_surface_compression, 0) \ + USE_GL_EXT(EGL_EXT_swap_buffers_with_damage, 0) \ + USE_GL_EXT(EGL_EXT_sync_reuse, 0) \ + USE_GL_EXT(EGL_EXT_yuv_surface, 0) \ + USE_GL_EXT(EGL_IMG_context_priority, 0) \ + USE_GL_EXT(EGL_IMG_image_plane_attribs, 0) \ + USE_GL_EXT(EGL_KHR_cl_event, 0) \ + USE_GL_EXT(EGL_KHR_cl_event2, 0) \ + USE_GL_EXT(EGL_KHR_client_get_all_proc_addresses, 0) \ + USE_GL_EXT(EGL_KHR_config_attribs, 0) \ + USE_GL_EXT(EGL_KHR_context_flush_control, 0) \ + USE_GL_EXT(EGL_KHR_create_context, 0) \ + USE_GL_EXT(EGL_KHR_create_context_no_error, 0) \ + USE_GL_EXT(EGL_KHR_debug, 0) \ + USE_GL_EXT(EGL_KHR_display_reference, 0) \ + USE_GL_EXT(EGL_KHR_fence_sync, 0) \ + USE_GL_EXT(EGL_KHR_get_all_proc_addresses, 0) \ + USE_GL_EXT(EGL_KHR_gl_colorspace, 0) \ + USE_GL_EXT(EGL_KHR_gl_renderbuffer_image, 0) \ + USE_GL_EXT(EGL_KHR_gl_texture_2D_image, 0) \ + USE_GL_EXT(EGL_KHR_gl_texture_3D_image, 0) \ + USE_GL_EXT(EGL_KHR_gl_texture_cubemap_image, 0) \ + USE_GL_EXT(EGL_KHR_image, 0) \ + USE_GL_EXT(EGL_KHR_image_base, 0) \ + USE_GL_EXT(EGL_KHR_image_pixmap, 0) \ + USE_GL_EXT(EGL_KHR_lock_surface, 0) \ + USE_GL_EXT(EGL_KHR_lock_surface2, 0) \ + USE_GL_EXT(EGL_KHR_lock_surface3, 0) \ + USE_GL_EXT(EGL_KHR_mutable_render_buffer, 0) \ + USE_GL_EXT(EGL_KHR_no_config_context, 0) \ + USE_GL_EXT(EGL_KHR_partial_update, 0) \ + USE_GL_EXT(EGL_KHR_platform_android, 0) \ + USE_GL_EXT(EGL_KHR_platform_gbm, 0) \ + USE_GL_EXT(EGL_KHR_platform_wayland, 0) \ + USE_GL_EXT(EGL_KHR_platform_x11, 0) \ + USE_GL_EXT(EGL_KHR_reusable_sync, 0) \ + USE_GL_EXT(EGL_KHR_stream, 0) \ + USE_GL_EXT(EGL_KHR_stream_attrib, 0) \ + USE_GL_EXT(EGL_KHR_stream_consumer_gltexture, 0) \ + USE_GL_EXT(EGL_KHR_stream_cross_process_fd, 0) \ + USE_GL_EXT(EGL_KHR_stream_fifo, 0) \ + USE_GL_EXT(EGL_KHR_stream_producer_aldatalocator, 0) \ + USE_GL_EXT(EGL_KHR_stream_producer_eglsurface, 0) \ + USE_GL_EXT(EGL_KHR_surfaceless_context, 0) \ + USE_GL_EXT(EGL_KHR_swap_buffers_with_damage, 0) \ + USE_GL_EXT(EGL_KHR_vg_parent_image, 0) \ + USE_GL_EXT(EGL_KHR_wait_sync, 0) \ + USE_GL_EXT(EGL_MESA_drm_image, 0) \ + USE_GL_EXT(EGL_MESA_image_dma_buf_export, 0) \ + USE_GL_EXT(EGL_MESA_platform_gbm, 0) \ + USE_GL_EXT(EGL_MESA_platform_surfaceless, 0) \ + USE_GL_EXT(EGL_MESA_query_driver, 0) \ + USE_GL_EXT(EGL_NV_3dvision_surface, 0) \ + USE_GL_EXT(EGL_NV_context_priority_realtime, 0) \ + USE_GL_EXT(EGL_NV_coverage_sample, 0) \ + USE_GL_EXT(EGL_NV_coverage_sample_resolve, 0) \ + USE_GL_EXT(EGL_NV_cuda_event, 0) \ + USE_GL_EXT(EGL_NV_depth_nonlinear, 0) \ + USE_GL_EXT(EGL_NV_device_cuda, 0) \ + USE_GL_EXT(EGL_NV_native_query, 0) \ + USE_GL_EXT(EGL_NV_post_convert_rounding, 0) \ + USE_GL_EXT(EGL_NV_post_sub_buffer, 0) \ + USE_GL_EXT(EGL_NV_quadruple_buffer, 0) \ + USE_GL_EXT(EGL_NV_robustness_video_memory_purge, 0) \ + USE_GL_EXT(EGL_NV_stream_consumer_eglimage, 0) \ + USE_GL_EXT(EGL_NV_stream_consumer_eglimage_use_scanout_attrib, 0) \ + USE_GL_EXT(EGL_NV_stream_consumer_gltexture_yuv, 0) \ + USE_GL_EXT(EGL_NV_stream_cross_display, 0) \ + USE_GL_EXT(EGL_NV_stream_cross_object, 0) \ + USE_GL_EXT(EGL_NV_stream_cross_partition, 0) \ + USE_GL_EXT(EGL_NV_stream_cross_process, 0) \ + USE_GL_EXT(EGL_NV_stream_cross_system, 0) \ + USE_GL_EXT(EGL_NV_stream_dma, 0) \ + USE_GL_EXT(EGL_NV_stream_fifo_next, 0) \ + USE_GL_EXT(EGL_NV_stream_fifo_synchronous, 0) \ + USE_GL_EXT(EGL_NV_stream_flush, 0) \ + USE_GL_EXT(EGL_NV_stream_frame_limits, 0) \ + USE_GL_EXT(EGL_NV_stream_metadata, 0) \ + USE_GL_EXT(EGL_NV_stream_origin, 0) \ + USE_GL_EXT(EGL_NV_stream_remote, 0) \ + USE_GL_EXT(EGL_NV_stream_reset, 0) \ + USE_GL_EXT(EGL_NV_stream_socket, 0) \ + USE_GL_EXT(EGL_NV_stream_socket_inet, 0) \ + USE_GL_EXT(EGL_NV_stream_socket_unix, 0) \ + USE_GL_EXT(EGL_NV_stream_sync, 0) \ + USE_GL_EXT(EGL_NV_sync, 0) \ + USE_GL_EXT(EGL_NV_system_time, 0) \ + USE_GL_EXT(EGL_NV_triple_buffer, 0) \ + USE_GL_EXT(EGL_WL_bind_wayland_display, 0) \ + USE_GL_EXT(EGL_WL_create_wayland_buffer_from_image, 0) #define ALL_EGL_FUNCS \ USE_GL_FUNC(eglBindAPI) \ @@ -10230,793 +10230,791 @@ typedef BOOL (GLAPIENTRY *PFN_wglSwapIntervalEXT)( int interval ); USE_GL_FUNC(eglUnsignalSyncEXT) \ USE_GL_FUNC(eglWaitSyncKHR) -#define ALL_GL_CLIENT_EXTS \ - USE_GL_EXT(GL_3DFX_multisample) \ - USE_GL_EXT(GL_3DFX_tbuffer) \ - USE_GL_EXT(GL_3DFX_texture_compression_FXT1) \ - USE_GL_EXT(GL_AMDX_debug_output) \ - USE_GL_EXT(GL_AMD_blend_minmax_factor) \ - USE_GL_EXT(GL_AMD_compressed_3DC_texture) \ - USE_GL_EXT(GL_AMD_compressed_ATC_texture) \ - USE_GL_EXT(GL_AMD_conservative_depth) \ - USE_GL_EXT(GL_AMD_debug_output) \ - USE_GL_EXT(GL_AMD_depth_clamp_separate) \ - USE_GL_EXT(GL_AMD_draw_buffers_blend) \ - USE_GL_EXT(GL_AMD_framebuffer_multisample_advanced) \ - USE_GL_EXT(GL_AMD_framebuffer_sample_positions) \ - USE_GL_EXT(GL_AMD_gcn_shader) \ - USE_GL_EXT(GL_AMD_gpu_shader_half_float) \ - USE_GL_EXT(GL_AMD_gpu_shader_half_float_fetch) \ - USE_GL_EXT(GL_AMD_gpu_shader_int16) \ - USE_GL_EXT(GL_AMD_gpu_shader_int64) \ - USE_GL_EXT(GL_AMD_interleaved_elements) \ - USE_GL_EXT(GL_AMD_multi_draw_indirect) \ - USE_GL_EXT(GL_AMD_name_gen_delete) \ - USE_GL_EXT(GL_AMD_occlusion_query_event) \ - USE_GL_EXT(GL_AMD_performance_monitor) \ - USE_GL_EXT(GL_AMD_pinned_memory) \ - USE_GL_EXT(GL_AMD_program_binary_Z400) \ - USE_GL_EXT(GL_AMD_query_buffer_object) \ - USE_GL_EXT(GL_AMD_sample_positions) \ - USE_GL_EXT(GL_AMD_seamless_cubemap_per_texture) \ - USE_GL_EXT(GL_AMD_shader_atomic_counter_ops) \ - USE_GL_EXT(GL_AMD_shader_ballot) \ - USE_GL_EXT(GL_AMD_shader_explicit_vertex_parameter) \ - USE_GL_EXT(GL_AMD_shader_gpu_shader_half_float_fetch) \ - USE_GL_EXT(GL_AMD_shader_image_load_store_lod) \ - USE_GL_EXT(GL_AMD_shader_stencil_export) \ - USE_GL_EXT(GL_AMD_shader_stencil_value_export) \ - USE_GL_EXT(GL_AMD_shader_trinary_minmax) \ - USE_GL_EXT(GL_AMD_sparse_texture) \ - USE_GL_EXT(GL_AMD_stencil_operation_extended) \ - USE_GL_EXT(GL_AMD_texture_cube_map_array) \ - USE_GL_EXT(GL_AMD_texture_gather_bias_lod) \ - USE_GL_EXT(GL_AMD_texture_texture4) \ - USE_GL_EXT(GL_AMD_transform_feedback3_lines_triangles) \ - USE_GL_EXT(GL_AMD_transform_feedback4) \ - USE_GL_EXT(GL_AMD_vertex_shader_layer) \ - USE_GL_EXT(GL_AMD_vertex_shader_tessellator) \ - USE_GL_EXT(GL_AMD_vertex_shader_viewport_index) \ - USE_GL_EXT(GL_APPLE_aux_depth_stencil) \ - USE_GL_EXT(GL_APPLE_client_storage) \ - USE_GL_EXT(GL_APPLE_clip_distance) \ - USE_GL_EXT(GL_APPLE_color_buffer_packed_float) \ - USE_GL_EXT(GL_APPLE_element_array) \ - USE_GL_EXT(GL_APPLE_fence) \ - USE_GL_EXT(GL_APPLE_float_pixels) \ - USE_GL_EXT(GL_APPLE_flush_buffer_range) \ - USE_GL_EXT(GL_APPLE_object_purgeable) \ - USE_GL_EXT(GL_APPLE_rgb_422) \ - USE_GL_EXT(GL_APPLE_row_bytes) \ - USE_GL_EXT(GL_APPLE_specular_vector) \ - USE_GL_EXT(GL_APPLE_texture_2D_limited_npot) \ - USE_GL_EXT(GL_APPLE_texture_format_BGRA8888) \ - USE_GL_EXT(GL_APPLE_texture_max_level) \ - USE_GL_EXT(GL_APPLE_texture_packed_float) \ - USE_GL_EXT(GL_APPLE_texture_range) \ - USE_GL_EXT(GL_APPLE_transform_hint) \ - USE_GL_EXT(GL_APPLE_vertex_array_object) \ - USE_GL_EXT(GL_APPLE_vertex_array_range) \ - USE_GL_EXT(GL_APPLE_vertex_program_evaluators) \ - USE_GL_EXT(GL_APPLE_ycbcr_422) \ - USE_GL_EXT(GL_ARB_ES2_compatibility) \ - USE_GL_EXT(GL_ARB_ES3_1_compatibility) \ - USE_GL_EXT(GL_ARB_ES3_2_compatibility) \ - USE_GL_EXT(GL_ARB_ES3_compatibility) \ - USE_GL_EXT(GL_ARB_arrays_of_arrays) \ - USE_GL_EXT(GL_ARB_base_instance) \ - USE_GL_EXT(GL_ARB_bindless_texture) \ - USE_GL_EXT(GL_ARB_blend_func_extended) \ - USE_GL_EXT(GL_ARB_buffer_storage) \ - USE_GL_EXT(GL_ARB_cl_event) \ - USE_GL_EXT(GL_ARB_clear_buffer_object) \ - USE_GL_EXT(GL_ARB_clear_texture) \ - USE_GL_EXT(GL_ARB_clip_control) \ - USE_GL_EXT(GL_ARB_color_buffer_float) \ - USE_GL_EXT(GL_ARB_compatibility) \ - USE_GL_EXT(GL_ARB_compressed_texture_pixel_storage) \ - USE_GL_EXT(GL_ARB_compute_shader) \ - USE_GL_EXT(GL_ARB_compute_variable_group_size) \ - USE_GL_EXT(GL_ARB_conditional_render_inverted) \ - USE_GL_EXT(GL_ARB_conservative_depth) \ - USE_GL_EXT(GL_ARB_copy_buffer) \ - USE_GL_EXT(GL_ARB_copy_image) \ - USE_GL_EXT(GL_ARB_cull_distance) \ - USE_GL_EXT(GL_ARB_debug_output) \ - USE_GL_EXT(GL_ARB_depth_buffer_float) \ - USE_GL_EXT(GL_ARB_depth_clamp) \ - USE_GL_EXT(GL_ARB_depth_texture) \ - USE_GL_EXT(GL_ARB_derivative_control) \ - USE_GL_EXT(GL_ARB_direct_state_access) \ - USE_GL_EXT(GL_ARB_draw_buffers) \ - USE_GL_EXT(GL_ARB_draw_buffers_blend) \ - USE_GL_EXT(GL_ARB_draw_elements_base_vertex) \ - USE_GL_EXT(GL_ARB_draw_indirect) \ - USE_GL_EXT(GL_ARB_draw_instanced) \ - USE_GL_EXT(GL_ARB_enhanced_layouts) \ - USE_GL_EXT(GL_ARB_explicit_attrib_location) \ - USE_GL_EXT(GL_ARB_explicit_uniform_location) \ - USE_GL_EXT(GL_ARB_fragment_coord_conventions) \ - USE_GL_EXT(GL_ARB_fragment_layer_viewport) \ - USE_GL_EXT(GL_ARB_fragment_program) \ - USE_GL_EXT(GL_ARB_fragment_program_shadow) \ - USE_GL_EXT(GL_ARB_fragment_shader) \ - USE_GL_EXT(GL_ARB_fragment_shader_interlock) \ - USE_GL_EXT(GL_ARB_framebuffer_no_attachments) \ - USE_GL_EXT(GL_ARB_framebuffer_object) \ - USE_GL_EXT(GL_ARB_framebuffer_sRGB) \ - USE_GL_EXT(GL_ARB_geometry_shader4) \ - USE_GL_EXT(GL_ARB_get_program_binary) \ - USE_GL_EXT(GL_ARB_get_texture_sub_image) \ - USE_GL_EXT(GL_ARB_gl_spirv) \ - USE_GL_EXT(GL_ARB_gpu_shader5) \ - USE_GL_EXT(GL_ARB_gpu_shader_fp64) \ - USE_GL_EXT(GL_ARB_gpu_shader_int64) \ - USE_GL_EXT(GL_ARB_half_float_pixel) \ - USE_GL_EXT(GL_ARB_half_float_vertex) \ - USE_GL_EXT(GL_ARB_imaging) \ - USE_GL_EXT(GL_ARB_indirect_parameters) \ - USE_GL_EXT(GL_ARB_instanced_arrays) \ - USE_GL_EXT(GL_ARB_internalformat_query) \ - USE_GL_EXT(GL_ARB_internalformat_query2) \ - USE_GL_EXT(GL_ARB_invalidate_subdata) \ - USE_GL_EXT(GL_ARB_map_buffer_alignment) \ - USE_GL_EXT(GL_ARB_map_buffer_range) \ - USE_GL_EXT(GL_ARB_matrix_palette) \ - USE_GL_EXT(GL_ARB_multi_bind) \ - USE_GL_EXT(GL_ARB_multi_draw_indirect) \ - USE_GL_EXT(GL_ARB_multisample) \ - USE_GL_EXT(GL_ARB_multitexture) \ - USE_GL_EXT(GL_ARB_occlusion_query) \ - USE_GL_EXT(GL_ARB_occlusion_query2) \ - USE_GL_EXT(GL_ARB_parallel_shader_compile) \ - USE_GL_EXT(GL_ARB_pipeline_statistics_query) \ - USE_GL_EXT(GL_ARB_pixel_buffer_object) \ - USE_GL_EXT(GL_ARB_point_parameters) \ - USE_GL_EXT(GL_ARB_point_sprite) \ - USE_GL_EXT(GL_ARB_polygon_offset_clamp) \ - USE_GL_EXT(GL_ARB_post_depth_coverage) \ - USE_GL_EXT(GL_ARB_program_interface_query) \ - USE_GL_EXT(GL_ARB_provoking_vertex) \ - USE_GL_EXT(GL_ARB_query_buffer_object) \ - USE_GL_EXT(GL_ARB_robust_buffer_access_behavior) \ - USE_GL_EXT(GL_ARB_robustness) \ - USE_GL_EXT(GL_ARB_robustness_isolation) \ - USE_GL_EXT(GL_ARB_robustness_share_group_isolation) \ - USE_GL_EXT(GL_ARB_sample_locations) \ - USE_GL_EXT(GL_ARB_sample_shading) \ - USE_GL_EXT(GL_ARB_sampler_objects) \ - USE_GL_EXT(GL_ARB_seamless_cube_map) \ - USE_GL_EXT(GL_ARB_seamless_cubemap_per_texture) \ - USE_GL_EXT(GL_ARB_separate_shader_objects) \ - USE_GL_EXT(GL_ARB_shader_atomic_counter_ops) \ - USE_GL_EXT(GL_ARB_shader_atomic_counters) \ - USE_GL_EXT(GL_ARB_shader_ballot) \ - USE_GL_EXT(GL_ARB_shader_bit_encoding) \ - USE_GL_EXT(GL_ARB_shader_clock) \ - USE_GL_EXT(GL_ARB_shader_draw_parameters) \ - USE_GL_EXT(GL_ARB_shader_group_vote) \ - USE_GL_EXT(GL_ARB_shader_image_load_store) \ - USE_GL_EXT(GL_ARB_shader_image_size) \ - USE_GL_EXT(GL_ARB_shader_objects) \ - USE_GL_EXT(GL_ARB_shader_precision) \ - USE_GL_EXT(GL_ARB_shader_stencil_export) \ - USE_GL_EXT(GL_ARB_shader_storage_buffer_object) \ - USE_GL_EXT(GL_ARB_shader_subroutine) \ - USE_GL_EXT(GL_ARB_shader_texture_image_samples) \ - USE_GL_EXT(GL_ARB_shader_texture_lod) \ - USE_GL_EXT(GL_ARB_shader_viewport_layer_array) \ - USE_GL_EXT(GL_ARB_shading_language_100) \ - USE_GL_EXT(GL_ARB_shading_language_420pack) \ - USE_GL_EXT(GL_ARB_shading_language_include) \ - USE_GL_EXT(GL_ARB_shading_language_packing) \ - USE_GL_EXT(GL_ARB_shadow) \ - USE_GL_EXT(GL_ARB_shadow_ambient) \ - USE_GL_EXT(GL_ARB_sparse_buffer) \ - USE_GL_EXT(GL_ARB_sparse_texture) \ - USE_GL_EXT(GL_ARB_sparse_texture2) \ - USE_GL_EXT(GL_ARB_sparse_texture_clamp) \ - USE_GL_EXT(GL_ARB_spirv_extensions) \ - USE_GL_EXT(GL_ARB_stencil_texturing) \ - USE_GL_EXT(GL_ARB_sync) \ - USE_GL_EXT(GL_ARB_tessellation_shader) \ - USE_GL_EXT(GL_ARB_texture_barrier) \ - USE_GL_EXT(GL_ARB_texture_border_clamp) \ - USE_GL_EXT(GL_ARB_texture_buffer_object) \ - USE_GL_EXT(GL_ARB_texture_buffer_object_rgb32) \ - USE_GL_EXT(GL_ARB_texture_buffer_range) \ - USE_GL_EXT(GL_ARB_texture_compression) \ - USE_GL_EXT(GL_ARB_texture_compression_bptc) \ - USE_GL_EXT(GL_ARB_texture_compression_rgtc) \ - USE_GL_EXT(GL_ARB_texture_cube_map) \ - USE_GL_EXT(GL_ARB_texture_cube_map_array) \ - USE_GL_EXT(GL_ARB_texture_env_add) \ - USE_GL_EXT(GL_ARB_texture_env_combine) \ - USE_GL_EXT(GL_ARB_texture_env_crossbar) \ - USE_GL_EXT(GL_ARB_texture_env_dot3) \ - USE_GL_EXT(GL_ARB_texture_filter_anisotropic) \ - USE_GL_EXT(GL_ARB_texture_filter_minmax) \ - USE_GL_EXT(GL_ARB_texture_float) \ - USE_GL_EXT(GL_ARB_texture_gather) \ - USE_GL_EXT(GL_ARB_texture_mirror_clamp_to_edge) \ - USE_GL_EXT(GL_ARB_texture_mirrored_repeat) \ - USE_GL_EXT(GL_ARB_texture_multisample) \ - USE_GL_EXT(GL_ARB_texture_non_power_of_two) \ - USE_GL_EXT(GL_ARB_texture_query_levels) \ - USE_GL_EXT(GL_ARB_texture_query_lod) \ - USE_GL_EXT(GL_ARB_texture_rectangle) \ - USE_GL_EXT(GL_ARB_texture_rg) \ - USE_GL_EXT(GL_ARB_texture_rgb10_a2ui) \ - USE_GL_EXT(GL_ARB_texture_snorm) \ - USE_GL_EXT(GL_ARB_texture_stencil8) \ - USE_GL_EXT(GL_ARB_texture_storage) \ - USE_GL_EXT(GL_ARB_texture_storage_multisample) \ - USE_GL_EXT(GL_ARB_texture_swizzle) \ - USE_GL_EXT(GL_ARB_texture_view) \ - USE_GL_EXT(GL_ARB_timer_query) \ - USE_GL_EXT(GL_ARB_transform_feedback2) \ - USE_GL_EXT(GL_ARB_transform_feedback3) \ - USE_GL_EXT(GL_ARB_transform_feedback_instanced) \ - USE_GL_EXT(GL_ARB_transform_feedback_overflow_query) \ - USE_GL_EXT(GL_ARB_transpose_matrix) \ - USE_GL_EXT(GL_ARB_uniform_buffer_object) \ - USE_GL_EXT(GL_ARB_vertex_array_bgra) \ - USE_GL_EXT(GL_ARB_vertex_array_object) \ - USE_GL_EXT(GL_ARB_vertex_attrib_64bit) \ - USE_GL_EXT(GL_ARB_vertex_attrib_binding) \ - USE_GL_EXT(GL_ARB_vertex_blend) \ - USE_GL_EXT(GL_ARB_vertex_buffer_object) \ - USE_GL_EXT(GL_ARB_vertex_program) \ - USE_GL_EXT(GL_ARB_vertex_shader) \ - USE_GL_EXT(GL_ARB_vertex_type_10f_11f_11f_rev) \ - USE_GL_EXT(GL_ARB_vertex_type_2_10_10_10_rev) \ - USE_GL_EXT(GL_ARB_viewport_array) \ - USE_GL_EXT(GL_ARB_window_pos) \ - USE_GL_EXT(GL_ATI_blend_equation_separate) \ - USE_GL_EXT(GL_ATI_draw_buffers) \ - USE_GL_EXT(GL_ATI_element_array) \ - USE_GL_EXT(GL_ATI_envmap_bumpmap) \ - USE_GL_EXT(GL_ATI_fragment_shader) \ - USE_GL_EXT(GL_ATI_map_object_buffer) \ - USE_GL_EXT(GL_ATI_meminfo) \ - USE_GL_EXT(GL_ATI_pixel_format_float) \ - USE_GL_EXT(GL_ATI_pn_triangles) \ - USE_GL_EXT(GL_ATI_separate_stencil) \ - USE_GL_EXT(GL_ATI_text_fragment_shader) \ - USE_GL_EXT(GL_ATI_texture_env_combine3) \ - USE_GL_EXT(GL_ATI_texture_float) \ - USE_GL_EXT(GL_ATI_texture_mirror_once) \ - USE_GL_EXT(GL_ATI_vertex_array_object) \ - USE_GL_EXT(GL_ATI_vertex_attrib_array_object) \ - USE_GL_EXT(GL_ATI_vertex_streams) \ - USE_GL_EXT(GL_EXT_422_pixels) \ - USE_GL_EXT(GL_EXT_EGL_image_array) \ - USE_GL_EXT(GL_EXT_EGL_image_external_wrap_modes) \ - USE_GL_EXT(GL_EXT_EGL_image_storage) \ - USE_GL_EXT(GL_EXT_EGL_image_storage_compression) \ - USE_GL_EXT(GL_EXT_EGL_sync) \ - USE_GL_EXT(GL_EXT_YUV_target) \ - USE_GL_EXT(GL_EXT_abgr) \ - USE_GL_EXT(GL_EXT_bgra) \ - USE_GL_EXT(GL_EXT_bindable_uniform) \ - USE_GL_EXT(GL_EXT_blend_color) \ - USE_GL_EXT(GL_EXT_blend_equation_separate) \ - USE_GL_EXT(GL_EXT_blend_func_separate) \ - USE_GL_EXT(GL_EXT_blend_logic_op) \ - USE_GL_EXT(GL_EXT_blend_minmax) \ - USE_GL_EXT(GL_EXT_blend_subtract) \ - USE_GL_EXT(GL_EXT_clip_cull_distance) \ - USE_GL_EXT(GL_EXT_clip_volume_hint) \ - USE_GL_EXT(GL_EXT_cmyka) \ - USE_GL_EXT(GL_EXT_color_buffer_float) \ - USE_GL_EXT(GL_EXT_color_buffer_half_float) \ - USE_GL_EXT(GL_EXT_color_subtable) \ - USE_GL_EXT(GL_EXT_compiled_vertex_array) \ - USE_GL_EXT(GL_EXT_compressed_ETC1_RGB8_sub_texture) \ - USE_GL_EXT(GL_EXT_conservative_depth) \ - USE_GL_EXT(GL_EXT_convolution) \ - USE_GL_EXT(GL_EXT_coordinate_frame) \ - USE_GL_EXT(GL_EXT_copy_buffer) \ - USE_GL_EXT(GL_EXT_copy_texture) \ - USE_GL_EXT(GL_EXT_cull_vertex) \ - USE_GL_EXT(GL_EXT_debug_label) \ - USE_GL_EXT(GL_EXT_debug_marker) \ - USE_GL_EXT(GL_EXT_depth_bounds_test) \ - USE_GL_EXT(GL_EXT_depth_clamp) \ - USE_GL_EXT(GL_EXT_direct_state_access) \ - USE_GL_EXT(GL_EXT_draw_buffers2) \ - USE_GL_EXT(GL_EXT_draw_instanced) \ - USE_GL_EXT(GL_EXT_draw_range_elements) \ - USE_GL_EXT(GL_EXT_external_buffer) \ - USE_GL_EXT(GL_EXT_float_blend) \ - USE_GL_EXT(GL_EXT_fog_coord) \ - USE_GL_EXT(GL_EXT_frag_depth) \ - USE_GL_EXT(GL_EXT_fragment_lighting) \ - USE_GL_EXT(GL_EXT_fragment_shading_rate) \ - USE_GL_EXT(GL_EXT_fragment_shading_rate_attachment) \ - USE_GL_EXT(GL_EXT_fragment_shading_rate_primitive) \ - USE_GL_EXT(GL_EXT_framebuffer_blit) \ - USE_GL_EXT(GL_EXT_framebuffer_blit_layers) \ - USE_GL_EXT(GL_EXT_framebuffer_multisample) \ - USE_GL_EXT(GL_EXT_framebuffer_multisample_blit_scaled) \ - USE_GL_EXT(GL_EXT_framebuffer_object) \ - USE_GL_EXT(GL_EXT_framebuffer_sRGB) \ - USE_GL_EXT(GL_EXT_geometry_point_size) \ - USE_GL_EXT(GL_EXT_geometry_shader4) \ - USE_GL_EXT(GL_EXT_gpu_program_parameters) \ - USE_GL_EXT(GL_EXT_gpu_shader4) \ - USE_GL_EXT(GL_EXT_gpu_shader5) \ - USE_GL_EXT(GL_EXT_histogram) \ - USE_GL_EXT(GL_EXT_index_array_formats) \ - USE_GL_EXT(GL_EXT_index_func) \ - USE_GL_EXT(GL_EXT_index_material) \ - USE_GL_EXT(GL_EXT_index_texture) \ - USE_GL_EXT(GL_EXT_light_texture) \ - USE_GL_EXT(GL_EXT_memory_object) \ - USE_GL_EXT(GL_EXT_memory_object_win32) \ - USE_GL_EXT(GL_EXT_mesh_shader) \ - USE_GL_EXT(GL_EXT_misc_attribute) \ - USE_GL_EXT(GL_EXT_multi_draw_arrays) \ - USE_GL_EXT(GL_EXT_multisample) \ - USE_GL_EXT(GL_EXT_multisample_compatibility) \ - USE_GL_EXT(GL_EXT_multisampled_compatibility) \ - USE_GL_EXT(GL_EXT_multisampled_render_to_texture2) \ - USE_GL_EXT(GL_EXT_multiview_tessellation_geometry_shader) \ - USE_GL_EXT(GL_EXT_multiview_texture_multisample) \ - USE_GL_EXT(GL_EXT_multiview_timer_query) \ - USE_GL_EXT(GL_EXT_packed_depth_stencil) \ - USE_GL_EXT(GL_EXT_packed_float) \ - USE_GL_EXT(GL_EXT_packed_pixels) \ - USE_GL_EXT(GL_EXT_paletted_texture) \ - USE_GL_EXT(GL_EXT_pixel_buffer_object) \ - USE_GL_EXT(GL_EXT_pixel_transform) \ - USE_GL_EXT(GL_EXT_pixel_transform_color_table) \ - USE_GL_EXT(GL_EXT_point_parameters) \ - USE_GL_EXT(GL_EXT_polygon_offset) \ - USE_GL_EXT(GL_EXT_polygon_offset_clamp) \ - USE_GL_EXT(GL_EXT_post_depth_coverage) \ - USE_GL_EXT(GL_EXT_protected_textures) \ - USE_GL_EXT(GL_EXT_provoking_vertex) \ - USE_GL_EXT(GL_EXT_pvrtc_sRGB) \ - USE_GL_EXT(GL_EXT_raster_multisample) \ - USE_GL_EXT(GL_EXT_read_format_bgra) \ - USE_GL_EXT(GL_EXT_render_snorm) \ - USE_GL_EXT(GL_EXT_rescale_normal) \ - USE_GL_EXT(GL_EXT_sRGB) \ - USE_GL_EXT(GL_EXT_sRGB_write_control) \ - USE_GL_EXT(GL_EXT_scene_marker) \ - USE_GL_EXT(GL_EXT_secondary_color) \ - USE_GL_EXT(GL_EXT_semaphore) \ - USE_GL_EXT(GL_EXT_semaphore_win32) \ - USE_GL_EXT(GL_EXT_separate_depth_stencil) \ - USE_GL_EXT(GL_EXT_separate_shader_objects) \ - USE_GL_EXT(GL_EXT_separate_specular_color) \ - USE_GL_EXT(GL_EXT_shader_clock) \ - USE_GL_EXT(GL_EXT_shader_framebuffer_fetch) \ - USE_GL_EXT(GL_EXT_shader_framebuffer_fetch_non_coherent) \ - USE_GL_EXT(GL_EXT_shader_group_vote) \ - USE_GL_EXT(GL_EXT_shader_image_load_formatted) \ - USE_GL_EXT(GL_EXT_shader_image_load_store) \ - USE_GL_EXT(GL_EXT_shader_implicit_conversions) \ - USE_GL_EXT(GL_EXT_shader_integer_mix) \ - USE_GL_EXT(GL_EXT_shader_io_blocks) \ - USE_GL_EXT(GL_EXT_shader_non_constant_global_initializers) \ - USE_GL_EXT(GL_EXT_shader_pixel_local_storage) \ - USE_GL_EXT(GL_EXT_shader_realtime_clock) \ - USE_GL_EXT(GL_EXT_shader_samples_identical) \ - USE_GL_EXT(GL_EXT_shader_texture_lod) \ - USE_GL_EXT(GL_EXT_shader_texture_samples) \ - USE_GL_EXT(GL_EXT_shadow_funcs) \ - USE_GL_EXT(GL_EXT_shadow_samplers) \ - USE_GL_EXT(GL_EXT_shared_texture_palette) \ - USE_GL_EXT(GL_EXT_sparse_texture2) \ - USE_GL_EXT(GL_EXT_stencil_clear_tag) \ - USE_GL_EXT(GL_EXT_stencil_two_side) \ - USE_GL_EXT(GL_EXT_stencil_wrap) \ - USE_GL_EXT(GL_EXT_subtexture) \ - USE_GL_EXT(GL_EXT_swap_control) \ - USE_GL_EXT(GL_EXT_tessellation_point_size) \ - USE_GL_EXT(GL_EXT_texgen_reflection) \ - USE_GL_EXT(GL_EXT_texture) \ - USE_GL_EXT(GL_EXT_texture3D) \ - USE_GL_EXT(GL_EXT_texture_array) \ - USE_GL_EXT(GL_EXT_texture_buffer_object) \ - USE_GL_EXT(GL_EXT_texture_compression_astc_decode_mode) \ - USE_GL_EXT(GL_EXT_texture_compression_astc_decode_mode_rgb9e5) \ - USE_GL_EXT(GL_EXT_texture_compression_bptc) \ - USE_GL_EXT(GL_EXT_texture_compression_dxt1) \ - USE_GL_EXT(GL_EXT_texture_compression_latc) \ - USE_GL_EXT(GL_EXT_texture_compression_rgtc) \ - USE_GL_EXT(GL_EXT_texture_compression_s3tc) \ - USE_GL_EXT(GL_EXT_texture_compression_s3tc_srgb) \ - USE_GL_EXT(GL_EXT_texture_cube_map) \ - USE_GL_EXT(GL_EXT_texture_cube_map_array) \ - USE_GL_EXT(GL_EXT_texture_env) \ - USE_GL_EXT(GL_EXT_texture_env_add) \ - USE_GL_EXT(GL_EXT_texture_env_combine) \ - USE_GL_EXT(GL_EXT_texture_env_dot3) \ - USE_GL_EXT(GL_EXT_texture_filter_anisotropic) \ - USE_GL_EXT(GL_EXT_texture_filter_minmax) \ - USE_GL_EXT(GL_EXT_texture_format_BGRA8888) \ - USE_GL_EXT(GL_EXT_texture_format_sRGB_override) \ - USE_GL_EXT(GL_EXT_texture_integer) \ - USE_GL_EXT(GL_EXT_texture_lod) \ - USE_GL_EXT(GL_EXT_texture_lod_bias) \ - USE_GL_EXT(GL_EXT_texture_mirror_clamp) \ - USE_GL_EXT(GL_EXT_texture_mirror_clamp_to_edge) \ - USE_GL_EXT(GL_EXT_texture_norm16) \ - USE_GL_EXT(GL_EXT_texture_object) \ - USE_GL_EXT(GL_EXT_texture_perturb_normal) \ - USE_GL_EXT(GL_EXT_texture_query_lod) \ - USE_GL_EXT(GL_EXT_texture_rg) \ - USE_GL_EXT(GL_EXT_texture_sRGB) \ - USE_GL_EXT(GL_EXT_texture_sRGB_R8) \ - USE_GL_EXT(GL_EXT_texture_sRGB_RG8) \ - USE_GL_EXT(GL_EXT_texture_sRGB_decode) \ - USE_GL_EXT(GL_EXT_texture_shadow_lod) \ - USE_GL_EXT(GL_EXT_texture_shared_exponent) \ - USE_GL_EXT(GL_EXT_texture_snorm) \ - USE_GL_EXT(GL_EXT_texture_storage) \ - USE_GL_EXT(GL_EXT_texture_swizzle) \ - USE_GL_EXT(GL_EXT_texture_type_2_10_10_10_REV) \ - USE_GL_EXT(GL_EXT_timer_query) \ - USE_GL_EXT(GL_EXT_transform_feedback) \ - USE_GL_EXT(GL_EXT_unpack_subimage) \ - USE_GL_EXT(GL_EXT_vertex_array) \ - USE_GL_EXT(GL_EXT_vertex_array_bgra) \ - USE_GL_EXT(GL_EXT_vertex_attrib_64bit) \ - USE_GL_EXT(GL_EXT_vertex_shader) \ - USE_GL_EXT(GL_EXT_vertex_weighting) \ - USE_GL_EXT(GL_EXT_win32_keyed_mutex) \ - USE_GL_EXT(GL_EXT_window_rectangles) \ - USE_GL_EXT(GL_EXT_x11_sync_object) \ - USE_GL_EXT(GL_GREMEDY_frame_terminator) \ - USE_GL_EXT(GL_GREMEDY_string_marker) \ - USE_GL_EXT(GL_HP_convolution_border_modes) \ - USE_GL_EXT(GL_HP_image_transform) \ - USE_GL_EXT(GL_HP_occlusion_test) \ - USE_GL_EXT(GL_HP_texture_lighting) \ - USE_GL_EXT(GL_IBM_cull_vertex) \ - USE_GL_EXT(GL_IBM_multimode_draw_arrays) \ - USE_GL_EXT(GL_IBM_rasterpos_clip) \ - USE_GL_EXT(GL_IBM_static_data) \ - USE_GL_EXT(GL_IBM_texture_mirrored_repeat) \ - USE_GL_EXT(GL_IBM_vertex_array_lists) \ - USE_GL_EXT(GL_IMG_program_binary) \ - USE_GL_EXT(GL_IMG_read_format) \ - USE_GL_EXT(GL_IMG_shader_binary) \ - USE_GL_EXT(GL_IMG_texture_compression_pvrtc) \ - USE_GL_EXT(GL_IMG_texture_compression_pvrtc2) \ - USE_GL_EXT(GL_IMG_texture_env_enhanced_fixed_function) \ - USE_GL_EXT(GL_IMG_texture_filter_cubic) \ - USE_GL_EXT(GL_INGR_blend_func_separate) \ - USE_GL_EXT(GL_INGR_color_clamp) \ - USE_GL_EXT(GL_INGR_interlace_read) \ - USE_GL_EXT(GL_INTEL_blackhole_render) \ - USE_GL_EXT(GL_INTEL_conservative_rasterization) \ - USE_GL_EXT(GL_INTEL_fragment_shader_ordering) \ - USE_GL_EXT(GL_INTEL_framebuffer_CMAA) \ - USE_GL_EXT(GL_INTEL_map_texture) \ - USE_GL_EXT(GL_INTEL_parallel_arrays) \ - USE_GL_EXT(GL_INTEL_performance_query) \ - USE_GL_EXT(GL_INTEL_shader_integer_functions2) \ - USE_GL_EXT(GL_INTEL_texture_scissor) \ - USE_GL_EXT(GL_KHR_blend_equation_advanced) \ - USE_GL_EXT(GL_KHR_blend_equation_advanced_coherent) \ - USE_GL_EXT(GL_KHR_context_flush_control) \ - USE_GL_EXT(GL_KHR_debug) \ - USE_GL_EXT(GL_KHR_no_error) \ - USE_GL_EXT(GL_KHR_parallel_shader_compile) \ - USE_GL_EXT(GL_KHR_robust_buffer_access_behavior) \ - USE_GL_EXT(GL_KHR_robustness) \ - USE_GL_EXT(GL_KHR_shader_subgroup) \ - USE_GL_EXT(GL_KHR_texture_compression_astc_hdr) \ - USE_GL_EXT(GL_KHR_texture_compression_astc_ldr) \ - USE_GL_EXT(GL_KHR_texture_compression_astc_sliced_3d) \ - USE_GL_EXT(GL_KTX_buffer_region) \ - USE_GL_EXT(GL_MESAX_texture_stack) \ - USE_GL_EXT(GL_MESA_bgra) \ - USE_GL_EXT(GL_MESA_framebuffer_flip_x) \ - USE_GL_EXT(GL_MESA_framebuffer_flip_y) \ - USE_GL_EXT(GL_MESA_framebuffer_swap_xy) \ - USE_GL_EXT(GL_MESA_pack_invert) \ - USE_GL_EXT(GL_MESA_program_binary_formats) \ - USE_GL_EXT(GL_MESA_resize_buffers) \ - USE_GL_EXT(GL_MESA_shader_integer_functions) \ - USE_GL_EXT(GL_MESA_texture_const_bandwidth) \ - USE_GL_EXT(GL_MESA_tile_raster_order) \ - USE_GL_EXT(GL_MESA_window_pos) \ - USE_GL_EXT(GL_MESA_ycbcr_texture) \ - USE_GL_EXT(GL_NVX_blend_equation_advanced_multi_draw_buffers) \ - USE_GL_EXT(GL_NVX_conditional_render) \ - USE_GL_EXT(GL_NVX_gpu_memory_info) \ - USE_GL_EXT(GL_NVX_gpu_multicast2) \ - USE_GL_EXT(GL_NVX_linked_gpu_multicast) \ - USE_GL_EXT(GL_NVX_progress_fence) \ - USE_GL_EXT(GL_NV_3dvision_settings) \ - USE_GL_EXT(GL_NV_EGL_stream_consumer_external) \ - USE_GL_EXT(GL_NV_ES1_1_compatibility) \ - USE_GL_EXT(GL_NV_ES3_1_compatibility) \ - USE_GL_EXT(GL_NV_alpha_to_coverage_dither_control) \ - USE_GL_EXT(GL_NV_bgr) \ - USE_GL_EXT(GL_NV_bindless_multi_draw_indirect) \ - USE_GL_EXT(GL_NV_bindless_multi_draw_indirect_count) \ - USE_GL_EXT(GL_NV_bindless_texture) \ - USE_GL_EXT(GL_NV_blend_equation_advanced) \ - USE_GL_EXT(GL_NV_blend_equation_advanced_coherent) \ - USE_GL_EXT(GL_NV_blend_minmax_factor) \ - USE_GL_EXT(GL_NV_blend_square) \ - USE_GL_EXT(GL_NV_clip_space_w_scaling) \ - USE_GL_EXT(GL_NV_command_list) \ - USE_GL_EXT(GL_NV_compute_program5) \ - USE_GL_EXT(GL_NV_compute_shader_derivatives) \ - USE_GL_EXT(GL_NV_conditional_render) \ - USE_GL_EXT(GL_NV_conservative_raster) \ - USE_GL_EXT(GL_NV_conservative_raster_dilate) \ - USE_GL_EXT(GL_NV_conservative_raster_pre_snap) \ - USE_GL_EXT(GL_NV_conservative_raster_pre_snap_triangles) \ - USE_GL_EXT(GL_NV_conservative_raster_underestimation) \ - USE_GL_EXT(GL_NV_copy_depth_to_color) \ - USE_GL_EXT(GL_NV_copy_image) \ - USE_GL_EXT(GL_NV_deep_texture3D) \ - USE_GL_EXT(GL_NV_depth_buffer_float) \ - USE_GL_EXT(GL_NV_depth_clamp) \ - USE_GL_EXT(GL_NV_depth_nonlinear) \ - USE_GL_EXT(GL_NV_draw_texture) \ - USE_GL_EXT(GL_NV_draw_vulkan_image) \ - USE_GL_EXT(GL_NV_evaluators) \ - USE_GL_EXT(GL_NV_explicit_attrib_location) \ - USE_GL_EXT(GL_NV_explicit_multisample) \ - USE_GL_EXT(GL_NV_fbo_color_attachments) \ - USE_GL_EXT(GL_NV_fence) \ - USE_GL_EXT(GL_NV_fill_rectangle) \ - USE_GL_EXT(GL_NV_float_buffer) \ - USE_GL_EXT(GL_NV_fog_distance) \ - USE_GL_EXT(GL_NV_fragment_coverage_to_color) \ - USE_GL_EXT(GL_NV_fragment_program) \ - USE_GL_EXT(GL_NV_fragment_program2) \ - USE_GL_EXT(GL_NV_fragment_program4) \ - USE_GL_EXT(GL_NV_fragment_program_option) \ - USE_GL_EXT(GL_NV_fragment_shader_barycentric) \ - USE_GL_EXT(GL_NV_fragment_shader_interlock) \ - USE_GL_EXT(GL_NV_framebuffer_mixed_samples) \ - USE_GL_EXT(GL_NV_framebuffer_multisample_coverage) \ - USE_GL_EXT(GL_NV_generate_mipmap_sRGB) \ - USE_GL_EXT(GL_NV_geometry_program4) \ - USE_GL_EXT(GL_NV_geometry_shader4) \ - USE_GL_EXT(GL_NV_geometry_shader_passthrough) \ - USE_GL_EXT(GL_NV_gpu_multicast) \ - USE_GL_EXT(GL_NV_gpu_program4) \ - USE_GL_EXT(GL_NV_gpu_program5) \ - USE_GL_EXT(GL_NV_gpu_program5_mem_extended) \ - USE_GL_EXT(GL_NV_gpu_program_fp64) \ - USE_GL_EXT(GL_NV_gpu_shader5) \ - USE_GL_EXT(GL_NV_half_float) \ - USE_GL_EXT(GL_NV_image_formats) \ - USE_GL_EXT(GL_NV_internalformat_sample_query) \ - USE_GL_EXT(GL_NV_light_max_exponent) \ - USE_GL_EXT(GL_NV_memory_attachment) \ - USE_GL_EXT(GL_NV_memory_object_sparse) \ - USE_GL_EXT(GL_NV_mesh_shader) \ - USE_GL_EXT(GL_NV_multisample_coverage) \ - USE_GL_EXT(GL_NV_multisample_filter_hint) \ - USE_GL_EXT(GL_NV_occlusion_query) \ - USE_GL_EXT(GL_NV_pack_subimage) \ - USE_GL_EXT(GL_NV_packed_depth_stencil) \ - USE_GL_EXT(GL_NV_packed_float) \ - USE_GL_EXT(GL_NV_packed_float_linear) \ - USE_GL_EXT(GL_NV_parameter_buffer_object) \ - USE_GL_EXT(GL_NV_parameter_buffer_object2) \ - USE_GL_EXT(GL_NV_path_rendering) \ - USE_GL_EXT(GL_NV_path_rendering_shared_edge) \ - USE_GL_EXT(GL_NV_pixel_buffer_object) \ - USE_GL_EXT(GL_NV_pixel_data_range) \ - USE_GL_EXT(GL_NV_platform_binary) \ - USE_GL_EXT(GL_NV_point_sprite) \ - USE_GL_EXT(GL_NV_present_video) \ - USE_GL_EXT(GL_NV_primitive_restart) \ - USE_GL_EXT(GL_NV_primitive_shading_rate) \ - USE_GL_EXT(GL_NV_query_resource) \ - USE_GL_EXT(GL_NV_query_resource_tag) \ - USE_GL_EXT(GL_NV_read_buffer_front) \ - USE_GL_EXT(GL_NV_read_depth) \ - USE_GL_EXT(GL_NV_read_depth_stencil) \ - USE_GL_EXT(GL_NV_read_stencil) \ - USE_GL_EXT(GL_NV_register_combiners) \ - USE_GL_EXT(GL_NV_register_combiners2) \ - USE_GL_EXT(GL_NV_representative_fragment_test) \ - USE_GL_EXT(GL_NV_robustness_video_memory_purge) \ - USE_GL_EXT(GL_NV_sRGB_formats) \ - USE_GL_EXT(GL_NV_sample_locations) \ - USE_GL_EXT(GL_NV_sample_mask_override_coverage) \ - USE_GL_EXT(GL_NV_scissor_exclusive) \ - USE_GL_EXT(GL_NV_shader_atomic_counters) \ - USE_GL_EXT(GL_NV_shader_atomic_float) \ - USE_GL_EXT(GL_NV_shader_atomic_float64) \ - USE_GL_EXT(GL_NV_shader_atomic_fp16_vector) \ - USE_GL_EXT(GL_NV_shader_atomic_int64) \ - USE_GL_EXT(GL_NV_shader_buffer_load) \ - USE_GL_EXT(GL_NV_shader_buffer_store) \ - USE_GL_EXT(GL_NV_shader_noperspective_interpolation) \ - USE_GL_EXT(GL_NV_shader_storage_buffer_object) \ - USE_GL_EXT(GL_NV_shader_subgroup_partitioned) \ - USE_GL_EXT(GL_NV_shader_texture_footprint) \ - USE_GL_EXT(GL_NV_shader_thread_group) \ - USE_GL_EXT(GL_NV_shader_thread_shuffle) \ - USE_GL_EXT(GL_NV_shading_rate_image) \ - USE_GL_EXT(GL_NV_shadow_samplers_array) \ - USE_GL_EXT(GL_NV_shadow_samplers_cube) \ - USE_GL_EXT(GL_NV_stereo_view_rendering) \ - USE_GL_EXT(GL_NV_tessellation_program5) \ - USE_GL_EXT(GL_NV_texgen_emboss) \ - USE_GL_EXT(GL_NV_texgen_reflection) \ - USE_GL_EXT(GL_NV_texture_array) \ - USE_GL_EXT(GL_NV_texture_barrier) \ - USE_GL_EXT(GL_NV_texture_border_clamp) \ - USE_GL_EXT(GL_NV_texture_compression_latc) \ - USE_GL_EXT(GL_NV_texture_compression_s3tc) \ - USE_GL_EXT(GL_NV_texture_compression_s3tc_update) \ - USE_GL_EXT(GL_NV_texture_compression_vtc) \ - USE_GL_EXT(GL_NV_texture_env_combine4) \ - USE_GL_EXT(GL_NV_texture_expand_normal) \ - USE_GL_EXT(GL_NV_texture_multisample) \ - USE_GL_EXT(GL_NV_texture_npot_2D_mipmap) \ - USE_GL_EXT(GL_NV_texture_rectangle) \ - USE_GL_EXT(GL_NV_texture_rectangle_compressed) \ - USE_GL_EXT(GL_NV_texture_shader) \ - USE_GL_EXT(GL_NV_texture_shader2) \ - USE_GL_EXT(GL_NV_texture_shader3) \ - USE_GL_EXT(GL_NV_timeline_semaphore) \ - USE_GL_EXT(GL_NV_transform_feedback) \ - USE_GL_EXT(GL_NV_transform_feedback2) \ - USE_GL_EXT(GL_NV_uniform_buffer_std430_layout) \ - USE_GL_EXT(GL_NV_uniform_buffer_unified_memory) \ - USE_GL_EXT(GL_NV_vdpau_interop) \ - USE_GL_EXT(GL_NV_vdpau_interop2) \ - USE_GL_EXT(GL_NV_vertex_array_range) \ - USE_GL_EXT(GL_NV_vertex_array_range2) \ - USE_GL_EXT(GL_NV_vertex_attrib_integer_64bit) \ - USE_GL_EXT(GL_NV_vertex_buffer_unified_memory) \ - USE_GL_EXT(GL_NV_vertex_program) \ - USE_GL_EXT(GL_NV_vertex_program1_1) \ - USE_GL_EXT(GL_NV_vertex_program2) \ - USE_GL_EXT(GL_NV_vertex_program2_option) \ - USE_GL_EXT(GL_NV_vertex_program3) \ - USE_GL_EXT(GL_NV_vertex_program4) \ - USE_GL_EXT(GL_NV_video_capture) \ - USE_GL_EXT(GL_NV_viewport_array2) \ - USE_GL_EXT(GL_NV_viewport_swizzle) \ - USE_GL_EXT(GL_OES_EGL_image_external_essl3) \ - USE_GL_EXT(GL_OES_EGL_sync) \ - USE_GL_EXT(GL_OES_byte_coordinates) \ - USE_GL_EXT(GL_OES_compressed_ETC1_RGB8_sub_texture) \ - USE_GL_EXT(GL_OES_compressed_ETC1_RGB8_texture) \ - USE_GL_EXT(GL_OES_compressed_paletted_texture) \ - USE_GL_EXT(GL_OES_depth24) \ - USE_GL_EXT(GL_OES_depth32) \ - USE_GL_EXT(GL_OES_depth_texture) \ - USE_GL_EXT(GL_OES_depth_texture_cube_map) \ - USE_GL_EXT(GL_OES_element_index_uint) \ - USE_GL_EXT(GL_OES_extended_matrix_palette) \ - USE_GL_EXT(GL_OES_fbo_render_mipmap) \ - USE_GL_EXT(GL_OES_fixed_point) \ - USE_GL_EXT(GL_OES_fragment_precision_high) \ - USE_GL_EXT(GL_OES_geometry_point_size) \ - USE_GL_EXT(GL_OES_gpu_shader5) \ - USE_GL_EXT(GL_OES_matrix_get) \ - USE_GL_EXT(GL_OES_packed_depth_stencil) \ - USE_GL_EXT(GL_OES_point_sprite) \ - USE_GL_EXT(GL_OES_query_matrix) \ - USE_GL_EXT(GL_OES_read_format) \ - USE_GL_EXT(GL_OES_required_internalformat) \ - USE_GL_EXT(GL_OES_rgb8_rgba8) \ - USE_GL_EXT(GL_OES_sample_variables) \ - USE_GL_EXT(GL_OES_shader_image_atomic) \ - USE_GL_EXT(GL_OES_shader_io_blocks) \ - USE_GL_EXT(GL_OES_shader_multisample_interpolation) \ - USE_GL_EXT(GL_OES_single_precision) \ - USE_GL_EXT(GL_OES_standard_derivatives) \ - USE_GL_EXT(GL_OES_stencil1) \ - USE_GL_EXT(GL_OES_stencil4) \ - USE_GL_EXT(GL_OES_stencil8) \ - USE_GL_EXT(GL_OES_stencil_wrap) \ - USE_GL_EXT(GL_OES_surfaceless_context) \ - USE_GL_EXT(GL_OES_tessellation_point_size) \ - USE_GL_EXT(GL_OES_texture_compression_astc) \ - USE_GL_EXT(GL_OES_texture_cube_map_array) \ - USE_GL_EXT(GL_OES_texture_env_crossbar) \ - USE_GL_EXT(GL_OES_texture_float) \ - USE_GL_EXT(GL_OES_texture_float_linear) \ - USE_GL_EXT(GL_OES_texture_half_float) \ - USE_GL_EXT(GL_OES_texture_half_float_linear) \ - USE_GL_EXT(GL_OES_texture_mirrored_repeat) \ - USE_GL_EXT(GL_OES_texture_npot) \ - USE_GL_EXT(GL_OES_texture_stencil8) \ - USE_GL_EXT(GL_OES_vertex_half_float) \ - USE_GL_EXT(GL_OES_vertex_type_10_10_10_2) \ - USE_GL_EXT(GL_OML_interlace) \ - USE_GL_EXT(GL_OML_resample) \ - USE_GL_EXT(GL_OML_subsample) \ - USE_GL_EXT(GL_OVR_multiview) \ - USE_GL_EXT(GL_OVR_multiview2) \ - USE_GL_EXT(GL_PGI_misc_hints) \ - USE_GL_EXT(GL_PGI_vertex_hints) \ - USE_GL_EXT(GL_REND_screen_coordinates) \ - USE_GL_EXT(GL_S3_s3tc) \ - USE_GL_EXT(GL_SGIS_detail_texture) \ - USE_GL_EXT(GL_SGIS_fog_function) \ - USE_GL_EXT(GL_SGIS_generate_mipmap) \ - USE_GL_EXT(GL_SGIS_multisample) \ - USE_GL_EXT(GL_SGIS_multitexture) \ - USE_GL_EXT(GL_SGIS_pixel_texture) \ - USE_GL_EXT(GL_SGIS_point_line_texgen) \ - USE_GL_EXT(GL_SGIS_point_parameters) \ - USE_GL_EXT(GL_SGIS_sharpen_texture) \ - USE_GL_EXT(GL_SGIS_texture4D) \ - USE_GL_EXT(GL_SGIS_texture_border_clamp) \ - USE_GL_EXT(GL_SGIS_texture_color_mask) \ - USE_GL_EXT(GL_SGIS_texture_edge_clamp) \ - USE_GL_EXT(GL_SGIS_texture_filter4) \ - USE_GL_EXT(GL_SGIS_texture_lod) \ - USE_GL_EXT(GL_SGIS_texture_select) \ - USE_GL_EXT(GL_SGIX_async) \ - USE_GL_EXT(GL_SGIX_async_histogram) \ - USE_GL_EXT(GL_SGIX_async_pixel) \ - USE_GL_EXT(GL_SGIX_blend_alpha_minmax) \ - USE_GL_EXT(GL_SGIX_calligraphic_fragment) \ - USE_GL_EXT(GL_SGIX_clipmap) \ - USE_GL_EXT(GL_SGIX_convolution_accuracy) \ - USE_GL_EXT(GL_SGIX_depth_pass_instrument) \ - USE_GL_EXT(GL_SGIX_depth_texture) \ - USE_GL_EXT(GL_SGIX_flush_raster) \ - USE_GL_EXT(GL_SGIX_fog_offset) \ - USE_GL_EXT(GL_SGIX_fragment_lighting) \ - USE_GL_EXT(GL_SGIX_framezoom) \ - USE_GL_EXT(GL_SGIX_igloo_interface) \ - USE_GL_EXT(GL_SGIX_instruments) \ - USE_GL_EXT(GL_SGIX_interlace) \ - USE_GL_EXT(GL_SGIX_ir_instrument1) \ - USE_GL_EXT(GL_SGIX_list_priority) \ - USE_GL_EXT(GL_SGIX_pixel_texture) \ - USE_GL_EXT(GL_SGIX_pixel_texture_bits) \ - USE_GL_EXT(GL_SGIX_pixel_tiles) \ - USE_GL_EXT(GL_SGIX_polynomial_ffd) \ - USE_GL_EXT(GL_SGIX_reference_plane) \ - USE_GL_EXT(GL_SGIX_resample) \ - USE_GL_EXT(GL_SGIX_scalebias_hint) \ - USE_GL_EXT(GL_SGIX_shadow) \ - USE_GL_EXT(GL_SGIX_shadow_ambient) \ - USE_GL_EXT(GL_SGIX_sprite) \ - USE_GL_EXT(GL_SGIX_subsample) \ - USE_GL_EXT(GL_SGIX_tag_sample_buffer) \ - USE_GL_EXT(GL_SGIX_texture_add_env) \ - USE_GL_EXT(GL_SGIX_texture_coordinate_clamp) \ - USE_GL_EXT(GL_SGIX_texture_lod_bias) \ - USE_GL_EXT(GL_SGIX_texture_multi_buffer) \ - USE_GL_EXT(GL_SGIX_texture_range) \ - USE_GL_EXT(GL_SGIX_texture_scale_bias) \ - USE_GL_EXT(GL_SGIX_vertex_preclip) \ - USE_GL_EXT(GL_SGIX_vertex_preclip_hint) \ - USE_GL_EXT(GL_SGIX_ycrcb) \ - USE_GL_EXT(GL_SGIX_ycrcb_subsample) \ - USE_GL_EXT(GL_SGIX_ycrcba) \ - USE_GL_EXT(GL_SGI_color_matrix) \ - USE_GL_EXT(GL_SGI_color_table) \ - USE_GL_EXT(GL_SGI_texture_color_table) \ - USE_GL_EXT(GL_SUNX_constant_data) \ - USE_GL_EXT(GL_SUN_convolution_border_modes) \ - USE_GL_EXT(GL_SUN_global_alpha) \ - USE_GL_EXT(GL_SUN_mesh_array) \ - USE_GL_EXT(GL_SUN_multi_draw_arrays) \ - USE_GL_EXT(GL_SUN_slice_accum) \ - USE_GL_EXT(GL_SUN_triangle_list) \ - USE_GL_EXT(GL_SUN_vertex) \ - USE_GL_EXT(GL_WIN_phong_shading) \ - USE_GL_EXT(GL_WIN_specular_fog) - -#define ALL_GL_EXTS ALL_GL_CLIENT_EXTS \ - USE_GL_EXT(GL_EXT_memory_object_fd) \ - USE_GL_EXT(GL_EXT_semaphore_fd) +#define ALL_GL_EXTS \ + USE_GL_EXT(GL_3DFX_multisample, 1) \ + USE_GL_EXT(GL_3DFX_tbuffer, 1) \ + USE_GL_EXT(GL_3DFX_texture_compression_FXT1, 1) \ + USE_GL_EXT(GL_AMDX_debug_output, 1) \ + USE_GL_EXT(GL_AMD_blend_minmax_factor, 1) \ + USE_GL_EXT(GL_AMD_compressed_3DC_texture, 1) \ + USE_GL_EXT(GL_AMD_compressed_ATC_texture, 1) \ + USE_GL_EXT(GL_AMD_conservative_depth, 1) \ + USE_GL_EXT(GL_AMD_debug_output, 1) \ + USE_GL_EXT(GL_AMD_depth_clamp_separate, 1) \ + USE_GL_EXT(GL_AMD_draw_buffers_blend, 1) \ + USE_GL_EXT(GL_AMD_framebuffer_multisample_advanced, 1) \ + USE_GL_EXT(GL_AMD_framebuffer_sample_positions, 1) \ + USE_GL_EXT(GL_AMD_gcn_shader, 1) \ + USE_GL_EXT(GL_AMD_gpu_shader_half_float, 1) \ + USE_GL_EXT(GL_AMD_gpu_shader_half_float_fetch, 1) \ + USE_GL_EXT(GL_AMD_gpu_shader_int16, 1) \ + USE_GL_EXT(GL_AMD_gpu_shader_int64, 1) \ + USE_GL_EXT(GL_AMD_interleaved_elements, 1) \ + USE_GL_EXT(GL_AMD_multi_draw_indirect, 1) \ + USE_GL_EXT(GL_AMD_name_gen_delete, 1) \ + USE_GL_EXT(GL_AMD_occlusion_query_event, 1) \ + USE_GL_EXT(GL_AMD_performance_monitor, 1) \ + USE_GL_EXT(GL_AMD_pinned_memory, 1) \ + USE_GL_EXT(GL_AMD_program_binary_Z400, 1) \ + USE_GL_EXT(GL_AMD_query_buffer_object, 1) \ + USE_GL_EXT(GL_AMD_sample_positions, 1) \ + USE_GL_EXT(GL_AMD_seamless_cubemap_per_texture, 1) \ + USE_GL_EXT(GL_AMD_shader_atomic_counter_ops, 1) \ + USE_GL_EXT(GL_AMD_shader_ballot, 1) \ + USE_GL_EXT(GL_AMD_shader_explicit_vertex_parameter, 1) \ + USE_GL_EXT(GL_AMD_shader_gpu_shader_half_float_fetch, 1) \ + USE_GL_EXT(GL_AMD_shader_image_load_store_lod, 1) \ + USE_GL_EXT(GL_AMD_shader_stencil_export, 1) \ + USE_GL_EXT(GL_AMD_shader_stencil_value_export, 1) \ + USE_GL_EXT(GL_AMD_shader_trinary_minmax, 1) \ + USE_GL_EXT(GL_AMD_sparse_texture, 1) \ + USE_GL_EXT(GL_AMD_stencil_operation_extended, 1) \ + USE_GL_EXT(GL_AMD_texture_cube_map_array, 1) \ + USE_GL_EXT(GL_AMD_texture_gather_bias_lod, 1) \ + USE_GL_EXT(GL_AMD_texture_texture4, 1) \ + USE_GL_EXT(GL_AMD_transform_feedback3_lines_triangles, 1) \ + USE_GL_EXT(GL_AMD_transform_feedback4, 1) \ + USE_GL_EXT(GL_AMD_vertex_shader_layer, 1) \ + USE_GL_EXT(GL_AMD_vertex_shader_tessellator, 1) \ + USE_GL_EXT(GL_AMD_vertex_shader_viewport_index, 1) \ + USE_GL_EXT(GL_APPLE_aux_depth_stencil, 1) \ + USE_GL_EXT(GL_APPLE_client_storage, 1) \ + USE_GL_EXT(GL_APPLE_clip_distance, 1) \ + USE_GL_EXT(GL_APPLE_color_buffer_packed_float, 1) \ + USE_GL_EXT(GL_APPLE_element_array, 1) \ + USE_GL_EXT(GL_APPLE_fence, 1) \ + USE_GL_EXT(GL_APPLE_float_pixels, 1) \ + USE_GL_EXT(GL_APPLE_flush_buffer_range, 1) \ + USE_GL_EXT(GL_APPLE_object_purgeable, 1) \ + USE_GL_EXT(GL_APPLE_rgb_422, 1) \ + USE_GL_EXT(GL_APPLE_row_bytes, 1) \ + USE_GL_EXT(GL_APPLE_specular_vector, 1) \ + USE_GL_EXT(GL_APPLE_texture_2D_limited_npot, 1) \ + USE_GL_EXT(GL_APPLE_texture_format_BGRA8888, 1) \ + USE_GL_EXT(GL_APPLE_texture_max_level, 1) \ + USE_GL_EXT(GL_APPLE_texture_packed_float, 1) \ + USE_GL_EXT(GL_APPLE_texture_range, 1) \ + USE_GL_EXT(GL_APPLE_transform_hint, 1) \ + USE_GL_EXT(GL_APPLE_vertex_array_object, 1) \ + USE_GL_EXT(GL_APPLE_vertex_array_range, 1) \ + USE_GL_EXT(GL_APPLE_vertex_program_evaluators, 1) \ + USE_GL_EXT(GL_APPLE_ycbcr_422, 1) \ + USE_GL_EXT(GL_ARB_ES2_compatibility, 1) \ + USE_GL_EXT(GL_ARB_ES3_1_compatibility, 1) \ + USE_GL_EXT(GL_ARB_ES3_2_compatibility, 1) \ + USE_GL_EXT(GL_ARB_ES3_compatibility, 1) \ + USE_GL_EXT(GL_ARB_arrays_of_arrays, 1) \ + USE_GL_EXT(GL_ARB_base_instance, 1) \ + USE_GL_EXT(GL_ARB_bindless_texture, 1) \ + USE_GL_EXT(GL_ARB_blend_func_extended, 1) \ + USE_GL_EXT(GL_ARB_buffer_storage, 1) \ + USE_GL_EXT(GL_ARB_cl_event, 1) \ + USE_GL_EXT(GL_ARB_clear_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_clear_texture, 1) \ + USE_GL_EXT(GL_ARB_clip_control, 1) \ + USE_GL_EXT(GL_ARB_color_buffer_float, 1) \ + USE_GL_EXT(GL_ARB_compatibility, 1) \ + USE_GL_EXT(GL_ARB_compressed_texture_pixel_storage, 1) \ + USE_GL_EXT(GL_ARB_compute_shader, 1) \ + USE_GL_EXT(GL_ARB_compute_variable_group_size, 1) \ + USE_GL_EXT(GL_ARB_conditional_render_inverted, 1) \ + USE_GL_EXT(GL_ARB_conservative_depth, 1) \ + USE_GL_EXT(GL_ARB_copy_buffer, 1) \ + USE_GL_EXT(GL_ARB_copy_image, 1) \ + USE_GL_EXT(GL_ARB_cull_distance, 1) \ + USE_GL_EXT(GL_ARB_debug_output, 1) \ + USE_GL_EXT(GL_ARB_depth_buffer_float, 1) \ + USE_GL_EXT(GL_ARB_depth_clamp, 1) \ + USE_GL_EXT(GL_ARB_depth_texture, 1) \ + USE_GL_EXT(GL_ARB_derivative_control, 1) \ + USE_GL_EXT(GL_ARB_direct_state_access, 1) \ + USE_GL_EXT(GL_ARB_draw_buffers, 1) \ + USE_GL_EXT(GL_ARB_draw_buffers_blend, 1) \ + USE_GL_EXT(GL_ARB_draw_elements_base_vertex, 1) \ + USE_GL_EXT(GL_ARB_draw_indirect, 1) \ + USE_GL_EXT(GL_ARB_draw_instanced, 1) \ + USE_GL_EXT(GL_ARB_enhanced_layouts, 1) \ + USE_GL_EXT(GL_ARB_explicit_attrib_location, 1) \ + USE_GL_EXT(GL_ARB_explicit_uniform_location, 1) \ + USE_GL_EXT(GL_ARB_fragment_coord_conventions, 1) \ + USE_GL_EXT(GL_ARB_fragment_layer_viewport, 1) \ + USE_GL_EXT(GL_ARB_fragment_program, 1) \ + USE_GL_EXT(GL_ARB_fragment_program_shadow, 1) \ + USE_GL_EXT(GL_ARB_fragment_shader, 1) \ + USE_GL_EXT(GL_ARB_fragment_shader_interlock, 1) \ + USE_GL_EXT(GL_ARB_framebuffer_no_attachments, 1) \ + USE_GL_EXT(GL_ARB_framebuffer_object, 1) \ + USE_GL_EXT(GL_ARB_framebuffer_sRGB, 1) \ + USE_GL_EXT(GL_ARB_geometry_shader4, 1) \ + USE_GL_EXT(GL_ARB_get_program_binary, 1) \ + USE_GL_EXT(GL_ARB_get_texture_sub_image, 1) \ + USE_GL_EXT(GL_ARB_gl_spirv, 1) \ + USE_GL_EXT(GL_ARB_gpu_shader5, 1) \ + USE_GL_EXT(GL_ARB_gpu_shader_fp64, 1) \ + USE_GL_EXT(GL_ARB_gpu_shader_int64, 1) \ + USE_GL_EXT(GL_ARB_half_float_pixel, 1) \ + USE_GL_EXT(GL_ARB_half_float_vertex, 1) \ + USE_GL_EXT(GL_ARB_imaging, 1) \ + USE_GL_EXT(GL_ARB_indirect_parameters, 1) \ + USE_GL_EXT(GL_ARB_instanced_arrays, 1) \ + USE_GL_EXT(GL_ARB_internalformat_query, 1) \ + USE_GL_EXT(GL_ARB_internalformat_query2, 1) \ + USE_GL_EXT(GL_ARB_invalidate_subdata, 1) \ + USE_GL_EXT(GL_ARB_map_buffer_alignment, 1) \ + USE_GL_EXT(GL_ARB_map_buffer_range, 1) \ + USE_GL_EXT(GL_ARB_matrix_palette, 1) \ + USE_GL_EXT(GL_ARB_multi_bind, 1) \ + USE_GL_EXT(GL_ARB_multi_draw_indirect, 1) \ + USE_GL_EXT(GL_ARB_multisample, 1) \ + USE_GL_EXT(GL_ARB_multitexture, 1) \ + USE_GL_EXT(GL_ARB_occlusion_query, 1) \ + USE_GL_EXT(GL_ARB_occlusion_query2, 1) \ + USE_GL_EXT(GL_ARB_parallel_shader_compile, 1) \ + USE_GL_EXT(GL_ARB_pipeline_statistics_query, 1) \ + USE_GL_EXT(GL_ARB_pixel_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_point_parameters, 1) \ + USE_GL_EXT(GL_ARB_point_sprite, 1) \ + USE_GL_EXT(GL_ARB_polygon_offset_clamp, 1) \ + USE_GL_EXT(GL_ARB_post_depth_coverage, 1) \ + USE_GL_EXT(GL_ARB_program_interface_query, 1) \ + USE_GL_EXT(GL_ARB_provoking_vertex, 1) \ + USE_GL_EXT(GL_ARB_query_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_robust_buffer_access_behavior, 1) \ + USE_GL_EXT(GL_ARB_robustness, 1) \ + USE_GL_EXT(GL_ARB_robustness_isolation, 1) \ + USE_GL_EXT(GL_ARB_robustness_share_group_isolation, 1) \ + USE_GL_EXT(GL_ARB_sample_locations, 1) \ + USE_GL_EXT(GL_ARB_sample_shading, 1) \ + USE_GL_EXT(GL_ARB_sampler_objects, 1) \ + USE_GL_EXT(GL_ARB_seamless_cube_map, 1) \ + USE_GL_EXT(GL_ARB_seamless_cubemap_per_texture, 1) \ + USE_GL_EXT(GL_ARB_separate_shader_objects, 1) \ + USE_GL_EXT(GL_ARB_shader_atomic_counter_ops, 1) \ + USE_GL_EXT(GL_ARB_shader_atomic_counters, 1) \ + USE_GL_EXT(GL_ARB_shader_ballot, 1) \ + USE_GL_EXT(GL_ARB_shader_bit_encoding, 1) \ + USE_GL_EXT(GL_ARB_shader_clock, 1) \ + USE_GL_EXT(GL_ARB_shader_draw_parameters, 1) \ + USE_GL_EXT(GL_ARB_shader_group_vote, 1) \ + USE_GL_EXT(GL_ARB_shader_image_load_store, 1) \ + USE_GL_EXT(GL_ARB_shader_image_size, 1) \ + USE_GL_EXT(GL_ARB_shader_objects, 1) \ + USE_GL_EXT(GL_ARB_shader_precision, 1) \ + USE_GL_EXT(GL_ARB_shader_stencil_export, 1) \ + USE_GL_EXT(GL_ARB_shader_storage_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_shader_subroutine, 1) \ + USE_GL_EXT(GL_ARB_shader_texture_image_samples, 1) \ + USE_GL_EXT(GL_ARB_shader_texture_lod, 1) \ + USE_GL_EXT(GL_ARB_shader_viewport_layer_array, 1) \ + USE_GL_EXT(GL_ARB_shading_language_100, 1) \ + USE_GL_EXT(GL_ARB_shading_language_420pack, 1) \ + USE_GL_EXT(GL_ARB_shading_language_include, 1) \ + USE_GL_EXT(GL_ARB_shading_language_packing, 1) \ + USE_GL_EXT(GL_ARB_shadow, 1) \ + USE_GL_EXT(GL_ARB_shadow_ambient, 1) \ + USE_GL_EXT(GL_ARB_sparse_buffer, 1) \ + USE_GL_EXT(GL_ARB_sparse_texture, 1) \ + USE_GL_EXT(GL_ARB_sparse_texture2, 1) \ + USE_GL_EXT(GL_ARB_sparse_texture_clamp, 1) \ + USE_GL_EXT(GL_ARB_spirv_extensions, 1) \ + USE_GL_EXT(GL_ARB_stencil_texturing, 1) \ + USE_GL_EXT(GL_ARB_sync, 1) \ + USE_GL_EXT(GL_ARB_tessellation_shader, 1) \ + USE_GL_EXT(GL_ARB_texture_barrier, 1) \ + USE_GL_EXT(GL_ARB_texture_border_clamp, 1) \ + USE_GL_EXT(GL_ARB_texture_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_texture_buffer_object_rgb32, 1) \ + USE_GL_EXT(GL_ARB_texture_buffer_range, 1) \ + USE_GL_EXT(GL_ARB_texture_compression, 1) \ + USE_GL_EXT(GL_ARB_texture_compression_bptc, 1) \ + USE_GL_EXT(GL_ARB_texture_compression_rgtc, 1) \ + USE_GL_EXT(GL_ARB_texture_cube_map, 1) \ + USE_GL_EXT(GL_ARB_texture_cube_map_array, 1) \ + USE_GL_EXT(GL_ARB_texture_env_add, 1) \ + USE_GL_EXT(GL_ARB_texture_env_combine, 1) \ + USE_GL_EXT(GL_ARB_texture_env_crossbar, 1) \ + USE_GL_EXT(GL_ARB_texture_env_dot3, 1) \ + USE_GL_EXT(GL_ARB_texture_filter_anisotropic, 1) \ + USE_GL_EXT(GL_ARB_texture_filter_minmax, 1) \ + USE_GL_EXT(GL_ARB_texture_float, 1) \ + USE_GL_EXT(GL_ARB_texture_gather, 1) \ + USE_GL_EXT(GL_ARB_texture_mirror_clamp_to_edge, 1) \ + USE_GL_EXT(GL_ARB_texture_mirrored_repeat, 1) \ + USE_GL_EXT(GL_ARB_texture_multisample, 1) \ + USE_GL_EXT(GL_ARB_texture_non_power_of_two, 1) \ + USE_GL_EXT(GL_ARB_texture_query_levels, 1) \ + USE_GL_EXT(GL_ARB_texture_query_lod, 1) \ + USE_GL_EXT(GL_ARB_texture_rectangle, 1) \ + USE_GL_EXT(GL_ARB_texture_rg, 1) \ + USE_GL_EXT(GL_ARB_texture_rgb10_a2ui, 1) \ + USE_GL_EXT(GL_ARB_texture_snorm, 1) \ + USE_GL_EXT(GL_ARB_texture_stencil8, 1) \ + USE_GL_EXT(GL_ARB_texture_storage, 1) \ + USE_GL_EXT(GL_ARB_texture_storage_multisample, 1) \ + USE_GL_EXT(GL_ARB_texture_swizzle, 1) \ + USE_GL_EXT(GL_ARB_texture_view, 1) \ + USE_GL_EXT(GL_ARB_timer_query, 1) \ + USE_GL_EXT(GL_ARB_transform_feedback2, 1) \ + USE_GL_EXT(GL_ARB_transform_feedback3, 1) \ + USE_GL_EXT(GL_ARB_transform_feedback_instanced, 1) \ + USE_GL_EXT(GL_ARB_transform_feedback_overflow_query, 1) \ + USE_GL_EXT(GL_ARB_transpose_matrix, 1) \ + USE_GL_EXT(GL_ARB_uniform_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_vertex_array_bgra, 1) \ + USE_GL_EXT(GL_ARB_vertex_array_object, 1) \ + USE_GL_EXT(GL_ARB_vertex_attrib_64bit, 1) \ + USE_GL_EXT(GL_ARB_vertex_attrib_binding, 1) \ + USE_GL_EXT(GL_ARB_vertex_blend, 1) \ + USE_GL_EXT(GL_ARB_vertex_buffer_object, 1) \ + USE_GL_EXT(GL_ARB_vertex_program, 1) \ + USE_GL_EXT(GL_ARB_vertex_shader, 1) \ + USE_GL_EXT(GL_ARB_vertex_type_10f_11f_11f_rev, 1) \ + USE_GL_EXT(GL_ARB_vertex_type_2_10_10_10_rev, 1) \ + USE_GL_EXT(GL_ARB_viewport_array, 1) \ + USE_GL_EXT(GL_ARB_window_pos, 1) \ + USE_GL_EXT(GL_ATI_blend_equation_separate, 1) \ + USE_GL_EXT(GL_ATI_draw_buffers, 1) \ + USE_GL_EXT(GL_ATI_element_array, 1) \ + USE_GL_EXT(GL_ATI_envmap_bumpmap, 1) \ + USE_GL_EXT(GL_ATI_fragment_shader, 1) \ + USE_GL_EXT(GL_ATI_map_object_buffer, 1) \ + USE_GL_EXT(GL_ATI_meminfo, 1) \ + USE_GL_EXT(GL_ATI_pixel_format_float, 1) \ + USE_GL_EXT(GL_ATI_pn_triangles, 1) \ + USE_GL_EXT(GL_ATI_separate_stencil, 1) \ + USE_GL_EXT(GL_ATI_text_fragment_shader, 1) \ + USE_GL_EXT(GL_ATI_texture_env_combine3, 1) \ + USE_GL_EXT(GL_ATI_texture_float, 1) \ + USE_GL_EXT(GL_ATI_texture_mirror_once, 1) \ + USE_GL_EXT(GL_ATI_vertex_array_object, 1) \ + USE_GL_EXT(GL_ATI_vertex_attrib_array_object, 1) \ + USE_GL_EXT(GL_ATI_vertex_streams, 1) \ + USE_GL_EXT(GL_EXT_422_pixels, 1) \ + USE_GL_EXT(GL_EXT_EGL_image_array, 1) \ + USE_GL_EXT(GL_EXT_EGL_image_external_wrap_modes, 1) \ + USE_GL_EXT(GL_EXT_EGL_image_storage, 1) \ + USE_GL_EXT(GL_EXT_EGL_image_storage_compression, 1) \ + USE_GL_EXT(GL_EXT_EGL_sync, 1) \ + USE_GL_EXT(GL_EXT_YUV_target, 1) \ + USE_GL_EXT(GL_EXT_abgr, 1) \ + USE_GL_EXT(GL_EXT_bgra, 1) \ + USE_GL_EXT(GL_EXT_bindable_uniform, 1) \ + USE_GL_EXT(GL_EXT_blend_color, 1) \ + USE_GL_EXT(GL_EXT_blend_equation_separate, 1) \ + USE_GL_EXT(GL_EXT_blend_func_separate, 1) \ + USE_GL_EXT(GL_EXT_blend_logic_op, 1) \ + USE_GL_EXT(GL_EXT_blend_minmax, 1) \ + USE_GL_EXT(GL_EXT_blend_subtract, 1) \ + USE_GL_EXT(GL_EXT_clip_cull_distance, 1) \ + USE_GL_EXT(GL_EXT_clip_volume_hint, 1) \ + USE_GL_EXT(GL_EXT_cmyka, 1) \ + USE_GL_EXT(GL_EXT_color_buffer_float, 1) \ + USE_GL_EXT(GL_EXT_color_buffer_half_float, 1) \ + USE_GL_EXT(GL_EXT_color_subtable, 1) \ + USE_GL_EXT(GL_EXT_compiled_vertex_array, 1) \ + USE_GL_EXT(GL_EXT_compressed_ETC1_RGB8_sub_texture, 1) \ + USE_GL_EXT(GL_EXT_conservative_depth, 1) \ + USE_GL_EXT(GL_EXT_convolution, 1) \ + USE_GL_EXT(GL_EXT_coordinate_frame, 1) \ + USE_GL_EXT(GL_EXT_copy_buffer, 1) \ + USE_GL_EXT(GL_EXT_copy_texture, 1) \ + USE_GL_EXT(GL_EXT_cull_vertex, 1) \ + USE_GL_EXT(GL_EXT_debug_label, 1) \ + USE_GL_EXT(GL_EXT_debug_marker, 1) \ + USE_GL_EXT(GL_EXT_depth_bounds_test, 1) \ + USE_GL_EXT(GL_EXT_depth_clamp, 1) \ + USE_GL_EXT(GL_EXT_direct_state_access, 1) \ + USE_GL_EXT(GL_EXT_draw_buffers2, 1) \ + USE_GL_EXT(GL_EXT_draw_instanced, 1) \ + USE_GL_EXT(GL_EXT_draw_range_elements, 1) \ + USE_GL_EXT(GL_EXT_external_buffer, 1) \ + USE_GL_EXT(GL_EXT_float_blend, 1) \ + USE_GL_EXT(GL_EXT_fog_coord, 1) \ + USE_GL_EXT(GL_EXT_frag_depth, 1) \ + USE_GL_EXT(GL_EXT_fragment_lighting, 1) \ + USE_GL_EXT(GL_EXT_fragment_shading_rate, 1) \ + USE_GL_EXT(GL_EXT_fragment_shading_rate_attachment, 1) \ + USE_GL_EXT(GL_EXT_fragment_shading_rate_primitive, 1) \ + USE_GL_EXT(GL_EXT_framebuffer_blit, 1) \ + USE_GL_EXT(GL_EXT_framebuffer_blit_layers, 1) \ + USE_GL_EXT(GL_EXT_framebuffer_multisample, 1) \ + USE_GL_EXT(GL_EXT_framebuffer_multisample_blit_scaled, 1) \ + USE_GL_EXT(GL_EXT_framebuffer_object, 1) \ + USE_GL_EXT(GL_EXT_framebuffer_sRGB, 1) \ + USE_GL_EXT(GL_EXT_geometry_point_size, 1) \ + USE_GL_EXT(GL_EXT_geometry_shader4, 1) \ + USE_GL_EXT(GL_EXT_gpu_program_parameters, 1) \ + USE_GL_EXT(GL_EXT_gpu_shader4, 1) \ + USE_GL_EXT(GL_EXT_gpu_shader5, 1) \ + USE_GL_EXT(GL_EXT_histogram, 1) \ + USE_GL_EXT(GL_EXT_index_array_formats, 1) \ + USE_GL_EXT(GL_EXT_index_func, 1) \ + USE_GL_EXT(GL_EXT_index_material, 1) \ + USE_GL_EXT(GL_EXT_index_texture, 1) \ + USE_GL_EXT(GL_EXT_light_texture, 1) \ + USE_GL_EXT(GL_EXT_memory_object, 1) \ + USE_GL_EXT(GL_EXT_memory_object_fd, 0) \ + USE_GL_EXT(GL_EXT_memory_object_win32, 1) \ + USE_GL_EXT(GL_EXT_mesh_shader, 1) \ + USE_GL_EXT(GL_EXT_misc_attribute, 1) \ + USE_GL_EXT(GL_EXT_multi_draw_arrays, 1) \ + USE_GL_EXT(GL_EXT_multisample, 1) \ + USE_GL_EXT(GL_EXT_multisample_compatibility, 1) \ + USE_GL_EXT(GL_EXT_multisampled_compatibility, 1) \ + USE_GL_EXT(GL_EXT_multisampled_render_to_texture2, 1) \ + USE_GL_EXT(GL_EXT_multiview_tessellation_geometry_shader, 1) \ + USE_GL_EXT(GL_EXT_multiview_texture_multisample, 1) \ + USE_GL_EXT(GL_EXT_multiview_timer_query, 1) \ + USE_GL_EXT(GL_EXT_packed_depth_stencil, 1) \ + USE_GL_EXT(GL_EXT_packed_float, 1) \ + USE_GL_EXT(GL_EXT_packed_pixels, 1) \ + USE_GL_EXT(GL_EXT_paletted_texture, 1) \ + USE_GL_EXT(GL_EXT_pixel_buffer_object, 1) \ + USE_GL_EXT(GL_EXT_pixel_transform, 1) \ + USE_GL_EXT(GL_EXT_pixel_transform_color_table, 1) \ + USE_GL_EXT(GL_EXT_point_parameters, 1) \ + USE_GL_EXT(GL_EXT_polygon_offset, 1) \ + USE_GL_EXT(GL_EXT_polygon_offset_clamp, 1) \ + USE_GL_EXT(GL_EXT_post_depth_coverage, 1) \ + USE_GL_EXT(GL_EXT_protected_textures, 1) \ + USE_GL_EXT(GL_EXT_provoking_vertex, 1) \ + USE_GL_EXT(GL_EXT_pvrtc_sRGB, 1) \ + USE_GL_EXT(GL_EXT_raster_multisample, 1) \ + USE_GL_EXT(GL_EXT_read_format_bgra, 1) \ + USE_GL_EXT(GL_EXT_render_snorm, 1) \ + USE_GL_EXT(GL_EXT_rescale_normal, 1) \ + USE_GL_EXT(GL_EXT_sRGB, 1) \ + USE_GL_EXT(GL_EXT_sRGB_write_control, 1) \ + USE_GL_EXT(GL_EXT_scene_marker, 1) \ + USE_GL_EXT(GL_EXT_secondary_color, 1) \ + USE_GL_EXT(GL_EXT_semaphore, 1) \ + USE_GL_EXT(GL_EXT_semaphore_fd, 0) \ + USE_GL_EXT(GL_EXT_semaphore_win32, 1) \ + USE_GL_EXT(GL_EXT_separate_depth_stencil, 1) \ + USE_GL_EXT(GL_EXT_separate_shader_objects, 1) \ + USE_GL_EXT(GL_EXT_separate_specular_color, 1) \ + USE_GL_EXT(GL_EXT_shader_clock, 1) \ + USE_GL_EXT(GL_EXT_shader_framebuffer_fetch, 1) \ + USE_GL_EXT(GL_EXT_shader_framebuffer_fetch_non_coherent, 1) \ + USE_GL_EXT(GL_EXT_shader_group_vote, 1) \ + USE_GL_EXT(GL_EXT_shader_image_load_formatted, 1) \ + USE_GL_EXT(GL_EXT_shader_image_load_store, 1) \ + USE_GL_EXT(GL_EXT_shader_implicit_conversions, 1) \ + USE_GL_EXT(GL_EXT_shader_integer_mix, 1) \ + USE_GL_EXT(GL_EXT_shader_io_blocks, 1) \ + USE_GL_EXT(GL_EXT_shader_non_constant_global_initializers, 1) \ + USE_GL_EXT(GL_EXT_shader_pixel_local_storage, 1) \ + USE_GL_EXT(GL_EXT_shader_realtime_clock, 1) \ + USE_GL_EXT(GL_EXT_shader_samples_identical, 1) \ + USE_GL_EXT(GL_EXT_shader_texture_lod, 1) \ + USE_GL_EXT(GL_EXT_shader_texture_samples, 1) \ + USE_GL_EXT(GL_EXT_shadow_funcs, 1) \ + USE_GL_EXT(GL_EXT_shadow_samplers, 1) \ + USE_GL_EXT(GL_EXT_shared_texture_palette, 1) \ + USE_GL_EXT(GL_EXT_sparse_texture2, 1) \ + USE_GL_EXT(GL_EXT_stencil_clear_tag, 1) \ + USE_GL_EXT(GL_EXT_stencil_two_side, 1) \ + USE_GL_EXT(GL_EXT_stencil_wrap, 1) \ + USE_GL_EXT(GL_EXT_subtexture, 1) \ + USE_GL_EXT(GL_EXT_swap_control, 1) \ + USE_GL_EXT(GL_EXT_tessellation_point_size, 1) \ + USE_GL_EXT(GL_EXT_texgen_reflection, 1) \ + USE_GL_EXT(GL_EXT_texture, 1) \ + USE_GL_EXT(GL_EXT_texture3D, 1) \ + USE_GL_EXT(GL_EXT_texture_array, 1) \ + USE_GL_EXT(GL_EXT_texture_buffer_object, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_astc_decode_mode, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_astc_decode_mode_rgb9e5, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_bptc, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_dxt1, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_latc, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_rgtc, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_s3tc, 1) \ + USE_GL_EXT(GL_EXT_texture_compression_s3tc_srgb, 1) \ + USE_GL_EXT(GL_EXT_texture_cube_map, 1) \ + USE_GL_EXT(GL_EXT_texture_cube_map_array, 1) \ + USE_GL_EXT(GL_EXT_texture_env, 1) \ + USE_GL_EXT(GL_EXT_texture_env_add, 1) \ + USE_GL_EXT(GL_EXT_texture_env_combine, 1) \ + USE_GL_EXT(GL_EXT_texture_env_dot3, 1) \ + USE_GL_EXT(GL_EXT_texture_filter_anisotropic, 1) \ + USE_GL_EXT(GL_EXT_texture_filter_minmax, 1) \ + USE_GL_EXT(GL_EXT_texture_format_BGRA8888, 1) \ + USE_GL_EXT(GL_EXT_texture_format_sRGB_override, 1) \ + USE_GL_EXT(GL_EXT_texture_integer, 1) \ + USE_GL_EXT(GL_EXT_texture_lod, 1) \ + USE_GL_EXT(GL_EXT_texture_lod_bias, 1) \ + USE_GL_EXT(GL_EXT_texture_mirror_clamp, 1) \ + USE_GL_EXT(GL_EXT_texture_mirror_clamp_to_edge, 1) \ + USE_GL_EXT(GL_EXT_texture_norm16, 1) \ + USE_GL_EXT(GL_EXT_texture_object, 1) \ + USE_GL_EXT(GL_EXT_texture_perturb_normal, 1) \ + USE_GL_EXT(GL_EXT_texture_query_lod, 1) \ + USE_GL_EXT(GL_EXT_texture_rg, 1) \ + USE_GL_EXT(GL_EXT_texture_sRGB, 1) \ + USE_GL_EXT(GL_EXT_texture_sRGB_R8, 1) \ + USE_GL_EXT(GL_EXT_texture_sRGB_RG8, 1) \ + USE_GL_EXT(GL_EXT_texture_sRGB_decode, 1) \ + USE_GL_EXT(GL_EXT_texture_shadow_lod, 1) \ + USE_GL_EXT(GL_EXT_texture_shared_exponent, 1) \ + USE_GL_EXT(GL_EXT_texture_snorm, 1) \ + USE_GL_EXT(GL_EXT_texture_storage, 1) \ + USE_GL_EXT(GL_EXT_texture_swizzle, 1) \ + USE_GL_EXT(GL_EXT_texture_type_2_10_10_10_REV, 1) \ + USE_GL_EXT(GL_EXT_timer_query, 1) \ + USE_GL_EXT(GL_EXT_transform_feedback, 1) \ + USE_GL_EXT(GL_EXT_unpack_subimage, 1) \ + USE_GL_EXT(GL_EXT_vertex_array, 1) \ + USE_GL_EXT(GL_EXT_vertex_array_bgra, 1) \ + USE_GL_EXT(GL_EXT_vertex_attrib_64bit, 1) \ + USE_GL_EXT(GL_EXT_vertex_shader, 1) \ + USE_GL_EXT(GL_EXT_vertex_weighting, 1) \ + USE_GL_EXT(GL_EXT_win32_keyed_mutex, 1) \ + USE_GL_EXT(GL_EXT_window_rectangles, 1) \ + USE_GL_EXT(GL_EXT_x11_sync_object, 1) \ + USE_GL_EXT(GL_GREMEDY_frame_terminator, 1) \ + USE_GL_EXT(GL_GREMEDY_string_marker, 1) \ + USE_GL_EXT(GL_HP_convolution_border_modes, 1) \ + USE_GL_EXT(GL_HP_image_transform, 1) \ + USE_GL_EXT(GL_HP_occlusion_test, 1) \ + USE_GL_EXT(GL_HP_texture_lighting, 1) \ + USE_GL_EXT(GL_IBM_cull_vertex, 1) \ + USE_GL_EXT(GL_IBM_multimode_draw_arrays, 1) \ + USE_GL_EXT(GL_IBM_rasterpos_clip, 1) \ + USE_GL_EXT(GL_IBM_static_data, 1) \ + USE_GL_EXT(GL_IBM_texture_mirrored_repeat, 1) \ + USE_GL_EXT(GL_IBM_vertex_array_lists, 1) \ + USE_GL_EXT(GL_IMG_program_binary, 1) \ + USE_GL_EXT(GL_IMG_read_format, 1) \ + USE_GL_EXT(GL_IMG_shader_binary, 1) \ + USE_GL_EXT(GL_IMG_texture_compression_pvrtc, 1) \ + USE_GL_EXT(GL_IMG_texture_compression_pvrtc2, 1) \ + USE_GL_EXT(GL_IMG_texture_env_enhanced_fixed_function, 1) \ + USE_GL_EXT(GL_IMG_texture_filter_cubic, 1) \ + USE_GL_EXT(GL_INGR_blend_func_separate, 1) \ + USE_GL_EXT(GL_INGR_color_clamp, 1) \ + USE_GL_EXT(GL_INGR_interlace_read, 1) \ + USE_GL_EXT(GL_INTEL_blackhole_render, 1) \ + USE_GL_EXT(GL_INTEL_conservative_rasterization, 1) \ + USE_GL_EXT(GL_INTEL_fragment_shader_ordering, 1) \ + USE_GL_EXT(GL_INTEL_framebuffer_CMAA, 1) \ + USE_GL_EXT(GL_INTEL_map_texture, 1) \ + USE_GL_EXT(GL_INTEL_parallel_arrays, 1) \ + USE_GL_EXT(GL_INTEL_performance_query, 1) \ + USE_GL_EXT(GL_INTEL_shader_integer_functions2, 1) \ + USE_GL_EXT(GL_INTEL_texture_scissor, 1) \ + USE_GL_EXT(GL_KHR_blend_equation_advanced, 1) \ + USE_GL_EXT(GL_KHR_blend_equation_advanced_coherent, 1) \ + USE_GL_EXT(GL_KHR_context_flush_control, 1) \ + USE_GL_EXT(GL_KHR_debug, 1) \ + USE_GL_EXT(GL_KHR_no_error, 1) \ + USE_GL_EXT(GL_KHR_parallel_shader_compile, 1) \ + USE_GL_EXT(GL_KHR_robust_buffer_access_behavior, 1) \ + USE_GL_EXT(GL_KHR_robustness, 1) \ + USE_GL_EXT(GL_KHR_shader_subgroup, 1) \ + USE_GL_EXT(GL_KHR_texture_compression_astc_hdr, 1) \ + USE_GL_EXT(GL_KHR_texture_compression_astc_ldr, 1) \ + USE_GL_EXT(GL_KHR_texture_compression_astc_sliced_3d, 1) \ + USE_GL_EXT(GL_KTX_buffer_region, 1) \ + USE_GL_EXT(GL_MESAX_texture_stack, 1) \ + USE_GL_EXT(GL_MESA_bgra, 1) \ + USE_GL_EXT(GL_MESA_framebuffer_flip_x, 1) \ + USE_GL_EXT(GL_MESA_framebuffer_flip_y, 1) \ + USE_GL_EXT(GL_MESA_framebuffer_swap_xy, 1) \ + USE_GL_EXT(GL_MESA_pack_invert, 1) \ + USE_GL_EXT(GL_MESA_program_binary_formats, 1) \ + USE_GL_EXT(GL_MESA_resize_buffers, 1) \ + USE_GL_EXT(GL_MESA_shader_integer_functions, 1) \ + USE_GL_EXT(GL_MESA_texture_const_bandwidth, 1) \ + USE_GL_EXT(GL_MESA_tile_raster_order, 1) \ + USE_GL_EXT(GL_MESA_window_pos, 1) \ + USE_GL_EXT(GL_MESA_ycbcr_texture, 1) \ + USE_GL_EXT(GL_NVX_blend_equation_advanced_multi_draw_buffers, 1) \ + USE_GL_EXT(GL_NVX_conditional_render, 1) \ + USE_GL_EXT(GL_NVX_gpu_memory_info, 1) \ + USE_GL_EXT(GL_NVX_gpu_multicast2, 1) \ + USE_GL_EXT(GL_NVX_linked_gpu_multicast, 1) \ + USE_GL_EXT(GL_NVX_progress_fence, 1) \ + USE_GL_EXT(GL_NV_3dvision_settings, 1) \ + USE_GL_EXT(GL_NV_EGL_stream_consumer_external, 1) \ + USE_GL_EXT(GL_NV_ES1_1_compatibility, 1) \ + USE_GL_EXT(GL_NV_ES3_1_compatibility, 1) \ + USE_GL_EXT(GL_NV_alpha_to_coverage_dither_control, 1) \ + USE_GL_EXT(GL_NV_bgr, 1) \ + USE_GL_EXT(GL_NV_bindless_multi_draw_indirect, 1) \ + USE_GL_EXT(GL_NV_bindless_multi_draw_indirect_count, 1) \ + USE_GL_EXT(GL_NV_bindless_texture, 1) \ + USE_GL_EXT(GL_NV_blend_equation_advanced, 1) \ + USE_GL_EXT(GL_NV_blend_equation_advanced_coherent, 1) \ + USE_GL_EXT(GL_NV_blend_minmax_factor, 1) \ + USE_GL_EXT(GL_NV_blend_square, 1) \ + USE_GL_EXT(GL_NV_clip_space_w_scaling, 1) \ + USE_GL_EXT(GL_NV_command_list, 1) \ + USE_GL_EXT(GL_NV_compute_program5, 1) \ + USE_GL_EXT(GL_NV_compute_shader_derivatives, 1) \ + USE_GL_EXT(GL_NV_conditional_render, 1) \ + USE_GL_EXT(GL_NV_conservative_raster, 1) \ + USE_GL_EXT(GL_NV_conservative_raster_dilate, 1) \ + USE_GL_EXT(GL_NV_conservative_raster_pre_snap, 1) \ + USE_GL_EXT(GL_NV_conservative_raster_pre_snap_triangles, 1) \ + USE_GL_EXT(GL_NV_conservative_raster_underestimation, 1) \ + USE_GL_EXT(GL_NV_copy_depth_to_color, 1) \ + USE_GL_EXT(GL_NV_copy_image, 1) \ + USE_GL_EXT(GL_NV_deep_texture3D, 1) \ + USE_GL_EXT(GL_NV_depth_buffer_float, 1) \ + USE_GL_EXT(GL_NV_depth_clamp, 1) \ + USE_GL_EXT(GL_NV_depth_nonlinear, 1) \ + USE_GL_EXT(GL_NV_draw_texture, 1) \ + USE_GL_EXT(GL_NV_draw_vulkan_image, 1) \ + USE_GL_EXT(GL_NV_evaluators, 1) \ + USE_GL_EXT(GL_NV_explicit_attrib_location, 1) \ + USE_GL_EXT(GL_NV_explicit_multisample, 1) \ + USE_GL_EXT(GL_NV_fbo_color_attachments, 1) \ + USE_GL_EXT(GL_NV_fence, 1) \ + USE_GL_EXT(GL_NV_fill_rectangle, 1) \ + USE_GL_EXT(GL_NV_float_buffer, 1) \ + USE_GL_EXT(GL_NV_fog_distance, 1) \ + USE_GL_EXT(GL_NV_fragment_coverage_to_color, 1) \ + USE_GL_EXT(GL_NV_fragment_program, 1) \ + USE_GL_EXT(GL_NV_fragment_program2, 1) \ + USE_GL_EXT(GL_NV_fragment_program4, 1) \ + USE_GL_EXT(GL_NV_fragment_program_option, 1) \ + USE_GL_EXT(GL_NV_fragment_shader_barycentric, 1) \ + USE_GL_EXT(GL_NV_fragment_shader_interlock, 1) \ + USE_GL_EXT(GL_NV_framebuffer_mixed_samples, 1) \ + USE_GL_EXT(GL_NV_framebuffer_multisample_coverage, 1) \ + USE_GL_EXT(GL_NV_generate_mipmap_sRGB, 1) \ + USE_GL_EXT(GL_NV_geometry_program4, 1) \ + USE_GL_EXT(GL_NV_geometry_shader4, 1) \ + USE_GL_EXT(GL_NV_geometry_shader_passthrough, 1) \ + USE_GL_EXT(GL_NV_gpu_multicast, 1) \ + USE_GL_EXT(GL_NV_gpu_program4, 1) \ + USE_GL_EXT(GL_NV_gpu_program5, 1) \ + USE_GL_EXT(GL_NV_gpu_program5_mem_extended, 1) \ + USE_GL_EXT(GL_NV_gpu_program_fp64, 1) \ + USE_GL_EXT(GL_NV_gpu_shader5, 1) \ + USE_GL_EXT(GL_NV_half_float, 1) \ + USE_GL_EXT(GL_NV_image_formats, 1) \ + USE_GL_EXT(GL_NV_internalformat_sample_query, 1) \ + USE_GL_EXT(GL_NV_light_max_exponent, 1) \ + USE_GL_EXT(GL_NV_memory_attachment, 1) \ + USE_GL_EXT(GL_NV_memory_object_sparse, 1) \ + USE_GL_EXT(GL_NV_mesh_shader, 1) \ + USE_GL_EXT(GL_NV_multisample_coverage, 1) \ + USE_GL_EXT(GL_NV_multisample_filter_hint, 1) \ + USE_GL_EXT(GL_NV_occlusion_query, 1) \ + USE_GL_EXT(GL_NV_pack_subimage, 1) \ + USE_GL_EXT(GL_NV_packed_depth_stencil, 1) \ + USE_GL_EXT(GL_NV_packed_float, 1) \ + USE_GL_EXT(GL_NV_packed_float_linear, 1) \ + USE_GL_EXT(GL_NV_parameter_buffer_object, 1) \ + USE_GL_EXT(GL_NV_parameter_buffer_object2, 1) \ + USE_GL_EXT(GL_NV_path_rendering, 1) \ + USE_GL_EXT(GL_NV_path_rendering_shared_edge, 1) \ + USE_GL_EXT(GL_NV_pixel_buffer_object, 1) \ + USE_GL_EXT(GL_NV_pixel_data_range, 1) \ + USE_GL_EXT(GL_NV_platform_binary, 1) \ + USE_GL_EXT(GL_NV_point_sprite, 1) \ + USE_GL_EXT(GL_NV_present_video, 1) \ + USE_GL_EXT(GL_NV_primitive_restart, 1) \ + USE_GL_EXT(GL_NV_primitive_shading_rate, 1) \ + USE_GL_EXT(GL_NV_query_resource, 1) \ + USE_GL_EXT(GL_NV_query_resource_tag, 1) \ + USE_GL_EXT(GL_NV_read_buffer_front, 1) \ + USE_GL_EXT(GL_NV_read_depth, 1) \ + USE_GL_EXT(GL_NV_read_depth_stencil, 1) \ + USE_GL_EXT(GL_NV_read_stencil, 1) \ + USE_GL_EXT(GL_NV_register_combiners, 1) \ + USE_GL_EXT(GL_NV_register_combiners2, 1) \ + USE_GL_EXT(GL_NV_representative_fragment_test, 1) \ + USE_GL_EXT(GL_NV_robustness_video_memory_purge, 1) \ + USE_GL_EXT(GL_NV_sRGB_formats, 1) \ + USE_GL_EXT(GL_NV_sample_locations, 1) \ + USE_GL_EXT(GL_NV_sample_mask_override_coverage, 1) \ + USE_GL_EXT(GL_NV_scissor_exclusive, 1) \ + USE_GL_EXT(GL_NV_shader_atomic_counters, 1) \ + USE_GL_EXT(GL_NV_shader_atomic_float, 1) \ + USE_GL_EXT(GL_NV_shader_atomic_float64, 1) \ + USE_GL_EXT(GL_NV_shader_atomic_fp16_vector, 1) \ + USE_GL_EXT(GL_NV_shader_atomic_int64, 1) \ + USE_GL_EXT(GL_NV_shader_buffer_load, 1) \ + USE_GL_EXT(GL_NV_shader_buffer_store, 1) \ + USE_GL_EXT(GL_NV_shader_noperspective_interpolation, 1) \ + USE_GL_EXT(GL_NV_shader_storage_buffer_object, 1) \ + USE_GL_EXT(GL_NV_shader_subgroup_partitioned, 1) \ + USE_GL_EXT(GL_NV_shader_texture_footprint, 1) \ + USE_GL_EXT(GL_NV_shader_thread_group, 1) \ + USE_GL_EXT(GL_NV_shader_thread_shuffle, 1) \ + USE_GL_EXT(GL_NV_shading_rate_image, 1) \ + USE_GL_EXT(GL_NV_shadow_samplers_array, 1) \ + USE_GL_EXT(GL_NV_shadow_samplers_cube, 1) \ + USE_GL_EXT(GL_NV_stereo_view_rendering, 1) \ + USE_GL_EXT(GL_NV_tessellation_program5, 1) \ + USE_GL_EXT(GL_NV_texgen_emboss, 1) \ + USE_GL_EXT(GL_NV_texgen_reflection, 1) \ + USE_GL_EXT(GL_NV_texture_array, 1) \ + USE_GL_EXT(GL_NV_texture_barrier, 1) \ + USE_GL_EXT(GL_NV_texture_border_clamp, 1) \ + USE_GL_EXT(GL_NV_texture_compression_latc, 1) \ + USE_GL_EXT(GL_NV_texture_compression_s3tc, 1) \ + USE_GL_EXT(GL_NV_texture_compression_s3tc_update, 1) \ + USE_GL_EXT(GL_NV_texture_compression_vtc, 1) \ + USE_GL_EXT(GL_NV_texture_env_combine4, 1) \ + USE_GL_EXT(GL_NV_texture_expand_normal, 1) \ + USE_GL_EXT(GL_NV_texture_multisample, 1) \ + USE_GL_EXT(GL_NV_texture_npot_2D_mipmap, 1) \ + USE_GL_EXT(GL_NV_texture_rectangle, 1) \ + USE_GL_EXT(GL_NV_texture_rectangle_compressed, 1) \ + USE_GL_EXT(GL_NV_texture_shader, 1) \ + USE_GL_EXT(GL_NV_texture_shader2, 1) \ + USE_GL_EXT(GL_NV_texture_shader3, 1) \ + USE_GL_EXT(GL_NV_timeline_semaphore, 1) \ + USE_GL_EXT(GL_NV_transform_feedback, 1) \ + USE_GL_EXT(GL_NV_transform_feedback2, 1) \ + USE_GL_EXT(GL_NV_uniform_buffer_std430_layout, 1) \ + USE_GL_EXT(GL_NV_uniform_buffer_unified_memory, 1) \ + USE_GL_EXT(GL_NV_vdpau_interop, 1) \ + USE_GL_EXT(GL_NV_vdpau_interop2, 1) \ + USE_GL_EXT(GL_NV_vertex_array_range, 1) \ + USE_GL_EXT(GL_NV_vertex_array_range2, 1) \ + USE_GL_EXT(GL_NV_vertex_attrib_integer_64bit, 1) \ + USE_GL_EXT(GL_NV_vertex_buffer_unified_memory, 1) \ + USE_GL_EXT(GL_NV_vertex_program, 1) \ + USE_GL_EXT(GL_NV_vertex_program1_1, 1) \ + USE_GL_EXT(GL_NV_vertex_program2, 1) \ + USE_GL_EXT(GL_NV_vertex_program2_option, 1) \ + USE_GL_EXT(GL_NV_vertex_program3, 1) \ + USE_GL_EXT(GL_NV_vertex_program4, 1) \ + USE_GL_EXT(GL_NV_video_capture, 1) \ + USE_GL_EXT(GL_NV_viewport_array2, 1) \ + USE_GL_EXT(GL_NV_viewport_swizzle, 1) \ + USE_GL_EXT(GL_OES_EGL_image_external_essl3, 1) \ + USE_GL_EXT(GL_OES_EGL_sync, 1) \ + USE_GL_EXT(GL_OES_byte_coordinates, 1) \ + USE_GL_EXT(GL_OES_compressed_ETC1_RGB8_sub_texture, 1) \ + USE_GL_EXT(GL_OES_compressed_ETC1_RGB8_texture, 1) \ + USE_GL_EXT(GL_OES_compressed_paletted_texture, 1) \ + USE_GL_EXT(GL_OES_depth24, 1) \ + USE_GL_EXT(GL_OES_depth32, 1) \ + USE_GL_EXT(GL_OES_depth_texture, 1) \ + USE_GL_EXT(GL_OES_depth_texture_cube_map, 1) \ + USE_GL_EXT(GL_OES_element_index_uint, 1) \ + USE_GL_EXT(GL_OES_extended_matrix_palette, 1) \ + USE_GL_EXT(GL_OES_fbo_render_mipmap, 1) \ + USE_GL_EXT(GL_OES_fixed_point, 1) \ + USE_GL_EXT(GL_OES_fragment_precision_high, 1) \ + USE_GL_EXT(GL_OES_geometry_point_size, 1) \ + USE_GL_EXT(GL_OES_gpu_shader5, 1) \ + USE_GL_EXT(GL_OES_matrix_get, 1) \ + USE_GL_EXT(GL_OES_packed_depth_stencil, 1) \ + USE_GL_EXT(GL_OES_point_sprite, 1) \ + USE_GL_EXT(GL_OES_query_matrix, 1) \ + USE_GL_EXT(GL_OES_read_format, 1) \ + USE_GL_EXT(GL_OES_required_internalformat, 1) \ + USE_GL_EXT(GL_OES_rgb8_rgba8, 1) \ + USE_GL_EXT(GL_OES_sample_variables, 1) \ + USE_GL_EXT(GL_OES_shader_image_atomic, 1) \ + USE_GL_EXT(GL_OES_shader_io_blocks, 1) \ + USE_GL_EXT(GL_OES_shader_multisample_interpolation, 1) \ + USE_GL_EXT(GL_OES_single_precision, 1) \ + USE_GL_EXT(GL_OES_standard_derivatives, 1) \ + USE_GL_EXT(GL_OES_stencil1, 1) \ + USE_GL_EXT(GL_OES_stencil4, 1) \ + USE_GL_EXT(GL_OES_stencil8, 1) \ + USE_GL_EXT(GL_OES_stencil_wrap, 1) \ + USE_GL_EXT(GL_OES_surfaceless_context, 1) \ + USE_GL_EXT(GL_OES_tessellation_point_size, 1) \ + USE_GL_EXT(GL_OES_texture_compression_astc, 1) \ + USE_GL_EXT(GL_OES_texture_cube_map_array, 1) \ + USE_GL_EXT(GL_OES_texture_env_crossbar, 1) \ + USE_GL_EXT(GL_OES_texture_float, 1) \ + USE_GL_EXT(GL_OES_texture_float_linear, 1) \ + USE_GL_EXT(GL_OES_texture_half_float, 1) \ + USE_GL_EXT(GL_OES_texture_half_float_linear, 1) \ + USE_GL_EXT(GL_OES_texture_mirrored_repeat, 1) \ + USE_GL_EXT(GL_OES_texture_npot, 1) \ + USE_GL_EXT(GL_OES_texture_stencil8, 1) \ + USE_GL_EXT(GL_OES_vertex_half_float, 1) \ + USE_GL_EXT(GL_OES_vertex_type_10_10_10_2, 1) \ + USE_GL_EXT(GL_OML_interlace, 1) \ + USE_GL_EXT(GL_OML_resample, 1) \ + USE_GL_EXT(GL_OML_subsample, 1) \ + USE_GL_EXT(GL_OVR_multiview, 1) \ + USE_GL_EXT(GL_OVR_multiview2, 1) \ + USE_GL_EXT(GL_PGI_misc_hints, 1) \ + USE_GL_EXT(GL_PGI_vertex_hints, 1) \ + USE_GL_EXT(GL_REND_screen_coordinates, 1) \ + USE_GL_EXT(GL_S3_s3tc, 1) \ + USE_GL_EXT(GL_SGIS_detail_texture, 1) \ + USE_GL_EXT(GL_SGIS_fog_function, 1) \ + USE_GL_EXT(GL_SGIS_generate_mipmap, 1) \ + USE_GL_EXT(GL_SGIS_multisample, 1) \ + USE_GL_EXT(GL_SGIS_multitexture, 1) \ + USE_GL_EXT(GL_SGIS_pixel_texture, 1) \ + USE_GL_EXT(GL_SGIS_point_line_texgen, 1) \ + USE_GL_EXT(GL_SGIS_point_parameters, 1) \ + USE_GL_EXT(GL_SGIS_sharpen_texture, 1) \ + USE_GL_EXT(GL_SGIS_texture4D, 1) \ + USE_GL_EXT(GL_SGIS_texture_border_clamp, 1) \ + USE_GL_EXT(GL_SGIS_texture_color_mask, 1) \ + USE_GL_EXT(GL_SGIS_texture_edge_clamp, 1) \ + USE_GL_EXT(GL_SGIS_texture_filter4, 1) \ + USE_GL_EXT(GL_SGIS_texture_lod, 1) \ + USE_GL_EXT(GL_SGIS_texture_select, 1) \ + USE_GL_EXT(GL_SGIX_async, 1) \ + USE_GL_EXT(GL_SGIX_async_histogram, 1) \ + USE_GL_EXT(GL_SGIX_async_pixel, 1) \ + USE_GL_EXT(GL_SGIX_blend_alpha_minmax, 1) \ + USE_GL_EXT(GL_SGIX_calligraphic_fragment, 1) \ + USE_GL_EXT(GL_SGIX_clipmap, 1) \ + USE_GL_EXT(GL_SGIX_convolution_accuracy, 1) \ + USE_GL_EXT(GL_SGIX_depth_pass_instrument, 1) \ + USE_GL_EXT(GL_SGIX_depth_texture, 1) \ + USE_GL_EXT(GL_SGIX_flush_raster, 1) \ + USE_GL_EXT(GL_SGIX_fog_offset, 1) \ + USE_GL_EXT(GL_SGIX_fragment_lighting, 1) \ + USE_GL_EXT(GL_SGIX_framezoom, 1) \ + USE_GL_EXT(GL_SGIX_igloo_interface, 1) \ + USE_GL_EXT(GL_SGIX_instruments, 1) \ + USE_GL_EXT(GL_SGIX_interlace, 1) \ + USE_GL_EXT(GL_SGIX_ir_instrument1, 1) \ + USE_GL_EXT(GL_SGIX_list_priority, 1) \ + USE_GL_EXT(GL_SGIX_pixel_texture, 1) \ + USE_GL_EXT(GL_SGIX_pixel_texture_bits, 1) \ + USE_GL_EXT(GL_SGIX_pixel_tiles, 1) \ + USE_GL_EXT(GL_SGIX_polynomial_ffd, 1) \ + USE_GL_EXT(GL_SGIX_reference_plane, 1) \ + USE_GL_EXT(GL_SGIX_resample, 1) \ + USE_GL_EXT(GL_SGIX_scalebias_hint, 1) \ + USE_GL_EXT(GL_SGIX_shadow, 1) \ + USE_GL_EXT(GL_SGIX_shadow_ambient, 1) \ + USE_GL_EXT(GL_SGIX_sprite, 1) \ + USE_GL_EXT(GL_SGIX_subsample, 1) \ + USE_GL_EXT(GL_SGIX_tag_sample_buffer, 1) \ + USE_GL_EXT(GL_SGIX_texture_add_env, 1) \ + USE_GL_EXT(GL_SGIX_texture_coordinate_clamp, 1) \ + USE_GL_EXT(GL_SGIX_texture_lod_bias, 1) \ + USE_GL_EXT(GL_SGIX_texture_multi_buffer, 1) \ + USE_GL_EXT(GL_SGIX_texture_range, 1) \ + USE_GL_EXT(GL_SGIX_texture_scale_bias, 1) \ + USE_GL_EXT(GL_SGIX_vertex_preclip, 1) \ + USE_GL_EXT(GL_SGIX_vertex_preclip_hint, 1) \ + USE_GL_EXT(GL_SGIX_ycrcb, 1) \ + USE_GL_EXT(GL_SGIX_ycrcb_subsample, 1) \ + USE_GL_EXT(GL_SGIX_ycrcba, 1) \ + USE_GL_EXT(GL_SGI_color_matrix, 1) \ + USE_GL_EXT(GL_SGI_color_table, 1) \ + USE_GL_EXT(GL_SGI_texture_color_table, 1) \ + USE_GL_EXT(GL_SUNX_constant_data, 1) \ + USE_GL_EXT(GL_SUN_convolution_border_modes, 1) \ + USE_GL_EXT(GL_SUN_global_alpha, 1) \ + USE_GL_EXT(GL_SUN_mesh_array, 1) \ + USE_GL_EXT(GL_SUN_multi_draw_arrays, 1) \ + USE_GL_EXT(GL_SUN_slice_accum, 1) \ + USE_GL_EXT(GL_SUN_triangle_list, 1) \ + USE_GL_EXT(GL_SUN_vertex, 1) \ + USE_GL_EXT(GL_WIN_phong_shading, 1) \ + USE_GL_EXT(GL_WIN_specular_fog, 1) #define ALL_GL_FUNCS \ USE_GL_FUNC(glAccum) \ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10019