I feel like I’m either missing an important amount of vendor-specific extensions, or else I’m fundamentally misunderstanding the way GL extensions are reported. In particular, I’m trying to use GL_NV_texture_barrier. My understanding is that it’s been adopted as core in 4.5 through GL_ARB_texture_barrier. But shouldn’t GL_NV_texture_barrier still be reported when using getStringi(GL_EXTENSIONS)? Looking at different extension reports online for my current GPU (GeForce GTX 1080), I can definitely see both GL_NV and GL_ARB variants.
In fact, I don’t have a single vendor-specific extension in my extensions list, which I find suspicious considering the amount of Nvidia-specific extensions that haven’t been made core. Out of curiosity, I’ve tried both a Core profile or a Compatibility profile but the extensions reported are the same.
For what it’s worth, here’s the extensions I have access to:
"GL_ARB_ES2_compatibility"
"GL_ARB_ES3_1_compatibility"
"GL_ARB_ES3_compatibility"
"GL_ARB_arrays_of_arrays"
"GL_ARB_base_instance"
"GL_ARB_blend_func_extended"
"GL_ARB_buffer_storage"
"GL_ARB_clear_buffer_object"
"GL_ARB_clear_texture"
"GL_ARB_clip_control"
"GL_ARB_color_buffer_float"
"GL_ARB_compressed_texture_pixel_storage"
"GL_ARB_compute_shader"
"GL_ARB_compute_variable_group_size"
"GL_ARB_conditional_render_inverted"
"GL_ARB_conservative_depth"
"GL_ARB_copy_buffer"
"GL_ARB_copy_image"
"GL_ARB_cull_distance"
"GL_ARB_debug_output"
"GL_ARB_depth_buffer_float"
"GL_ARB_depth_clamp"
"GL_ARB_depth_texture"
"GL_ARB_derivative_control"
"GL_ARB_direct_state_access"
"GL_ARB_draw_buffers"
"GL_ARB_draw_buffers_blend"
"GL_ARB_draw_elements_base_vertex"
"GL_ARB_draw_indirect"
"GL_ARB_draw_instanced"
"GL_ARB_enhanced_layouts"
"GL_ARB_explicit_attrib_location"
"GL_ARB_explicit_uniform_location"
"GL_ARB_fragment_coord_conventions"
"GL_ARB_fragment_layer_viewport"
"GL_ARB_fragment_shader_interlock"
"GL_ARB_framebuffer_no_attachments"
"GL_ARB_framebuffer_object"
"GL_ARB_framebuffer_sRGB"
"GL_ARB_geometry_shader4"
"GL_ARB_get_program_binary"
"GL_ARB_get_texture_sub_image"
"GL_ARB_gl_spirv"
"GL_ARB_gpu_shader5"
"GL_ARB_gpu_shader_fp64"
"GL_ARB_half_float_pixel"
"GL_ARB_half_float_vertex"
"GL_ARB_indirect_parameters"
"GL_ARB_instanced_arrays"
"GL_ARB_internalformat_query"
"GL_ARB_internalformat_query2"
"GL_ARB_invalidate_subdata"
"GL_ARB_map_buffer_alignment"
"GL_ARB_map_buffer_range"
"GL_ARB_multi_bind"
"GL_ARB_multi_draw_indirect"
"GL_ARB_multisample"
"GL_ARB_multitexture"
"GL_ARB_occlusion_query"
"GL_ARB_occlusion_query2"
"GL_ARB_parallel_shader_compile"
"GL_ARB_pipeline_statistics_query"
"GL_ARB_pixel_buffer_object"
"GL_ARB_point_parameters"
"GL_ARB_point_sprite"
"GL_ARB_polygon_offset_clamp"
"GL_ARB_post_depth_coverage"
"GL_ARB_program_interface_query"
"GL_ARB_provoking_vertex"
"GL_ARB_query_buffer_object"
"GL_ARB_robust_buffer_access_behavior"
"GL_ARB_robustness"
"GL_ARB_sample_shading"
"GL_ARB_sampler_objects"
"GL_ARB_seamless_cube_map"
"GL_ARB_seamless_cubemap_per_texture"
"GL_ARB_separate_shader_objects"
"GL_ARB_shader_atomic_counter_ops"
"GL_ARB_shader_atomic_counters"
"GL_ARB_shader_ballot"
"GL_ARB_shader_bit_encoding"
"GL_ARB_shader_clock"
"GL_ARB_shader_draw_parameters"
"GL_ARB_shader_group_vote"
"GL_ARB_shader_image_load_store"
"GL_ARB_shader_image_size"
"GL_ARB_shader_precision"
"GL_ARB_shader_storage_buffer_object"
"GL_ARB_shader_subroutine"
"GL_ARB_shader_texture_image_samples"
"GL_ARB_shader_texture_lod"
"GL_ARB_shader_viewport_layer_array"
"GL_ARB_shading_language_100"
"GL_ARB_shading_language_420pack"
"GL_ARB_shading_language_include"
"GL_ARB_shading_language_packing"
"GL_ARB_shadow"
"GL_ARB_spirv_extensions"
"GL_ARB_stencil_texturing"
"GL_ARB_sync"
"GL_ARB_tessellation_shader"
"GL_ARB_texture_barrier"
"GL_ARB_texture_border_clamp"
"GL_ARB_texture_buffer_object"
"GL_ARB_texture_buffer_object_rgb32"
"GL_ARB_texture_buffer_range"
"GL_ARB_texture_compression"
"GL_ARB_texture_compression_bptc"
"GL_ARB_texture_compression_rgtc"
"GL_ARB_texture_cube_map"
"GL_ARB_texture_cube_map_array"
"GL_ARB_texture_filter_anisotropic"
"GL_ARB_texture_float"
"GL_ARB_texture_gather"
"GL_ARB_texture_mirror_clamp_to_edge"
"GL_ARB_texture_mirrored_repeat"
"GL_ARB_texture_multisample"
"GL_ARB_texture_non_power_of_two"
"GL_ARB_texture_query_levels"
"GL_ARB_texture_query_lod"
"GL_ARB_texture_rectangle"
"GL_ARB_texture_rg"
"GL_ARB_texture_rgb10_a2ui"
"GL_ARB_texture_stencil8"
"GL_ARB_texture_storage"
"GL_ARB_texture_storage_multisample"
"GL_ARB_texture_swizzle"
"GL_ARB_texture_view"
"GL_ARB_timer_query"
"GL_ARB_transform_feedback2"
"GL_ARB_transform_feedback3"
"GL_ARB_transform_feedback_instanced"
"GL_ARB_transform_feedback_overflow_query"
"GL_ARB_uniform_buffer_object"
"GL_ARB_vertex_array_bgra"
"GL_ARB_vertex_array_object"
"GL_ARB_vertex_attrib_64bit"
"GL_ARB_vertex_attrib_binding"
"GL_ARB_vertex_buffer_object"
"GL_ARB_vertex_program"
"GL_ARB_vertex_type_10f_11f_11f_rev"
"GL_ARB_vertex_type_2_10_10_10_rev"
"GL_ARB_viewport_array"
"GL_EXT_bgra"
"GL_EXT_blend_color"
"GL_EXT_blend_equation_separate"
"GL_EXT_blend_func_separate"
"GL_EXT_blend_minmax"
"GL_EXT_blend_subtract"
"GL_EXT_depth_bounds_test"
"GL_EXT_direct_state_access"
"GL_EXT_draw_buffers2"
"GL_EXT_draw_instanced"
"GL_EXT_draw_range_elements"
"GL_EXT_framebuffer_blit"
"GL_EXT_framebuffer_multisample"
"GL_EXT_framebuffer_multisample_blit_scaled"
"GL_EXT_framebuffer_object"
"GL_EXT_framebuffer_sRGB"
"GL_EXT_gpu_shader4"
"GL_EXT_memory_object"
"GL_EXT_memory_object_win32"
"GL_EXT_multi_draw_arrays"
"GL_EXT_packed_depth_stencil"
"GL_EXT_packed_float"
"GL_EXT_pixel_buffer_object"
"GL_EXT_point_parameters"
"GL_EXT_polygon_offset_clamp"
"GL_EXT_post_depth_coverage"
"GL_EXT_provoking_vertex"
"GL_EXT_raster_multisample"
"GL_EXT_semaphore"
"GL_EXT_semaphore_win32"
"GL_EXT_shader_image_load_formatted"
"GL_EXT_shader_image_load_store"
"GL_EXT_shader_integer_mix"
"GL_EXT_shadow_funcs"
"GL_EXT_stencil_wrap"
"GL_EXT_texture3D"
"GL_EXT_texture_array"
"GL_EXT_texture_buffer_object"
"GL_EXT_texture_compression_dxt1"
"GL_EXT_texture_compression_rgtc"
"GL_EXT_texture_compression_s3tc"
"GL_EXT_texture_cube_map"
"GL_EXT_texture_edge_clamp"
"GL_EXT_texture_filter_anisotropic"
"GL_EXT_texture_filter_minmax"
"GL_EXT_texture_integer"
"GL_EXT_texture_lod_bias"
"GL_EXT_texture_mirror_clamp"
"GL_EXT_texture_sRGB"
"GL_EXT_texture_sRGB_decode"
"GL_EXT_texture_shared_exponent"
"GL_EXT_texture_swizzle"
"GL_EXT_timer_query"
"GL_EXT_vertex_attrib_64bit"
"GL_EXT_win32_keyed_mutex"
"GL_KHR_blend_equation_advanced"
"GL_KHR_blend_equation_advanced_coherent"
"GL_KHR_context_flush_control"
"GL_KHR_debug"
"GL_KHR_no_error"
"GL_KHR_parallel_shader_compile"
"GL_KHR_robust_buffer_access_behavior"
"GL_KHR_robustness"
"WGL_EXT_swap_control"
"GL_EXT_debug_tool"
"GL_GREMEDY_frame_terminator"
"GL_GREMEDY_string_marker"