[Mesa-dev] [RFC PATCH 2/3] mesa/main/extensions: first attempt to get the context levels right
Marek Olšák
maraeo at gmail.com
Sun May 20 14:14:11 UTC 2018
I'd like to ignore GL version and extension requirements in extensions,
because they are sometimes added due to laziness of extension authors and
the requirements can be unreasonable.
Marek
On Sat, May 19, 2018 at 9:18 AM, Benedikt Schemmer <ben at besd.de> wrote:
> These are just a few extensions for which I had the specifications handy,
> to
> get a feel for what this might look like.
>
> It's already been pointed out that applications might fail because of this.
>
> (I haven't found an application that does yet but I can only test on
> 64-bit)
> The argument for this change would be that its ok if the application fails
> because it does something unexpected and its better to let it explicitly
> fail
> and create a workaround for it than to just silently hope that everything
> is
> going to be alright.
>
> CC: "Marek Olšák" <maraeo at gmail.com>
> CC: Eric Anholt <eric at anholt.net>
> CC: Emil Velikov <emil.l.velikov at gmail.com>
> CC: Timothy Arceri <tarceri at itsqueeze.com>
> CC: Ilia Mirkin <imirkin at alum.mit.edu>
>
> Signed-off-by: Benedikt Schemmer <ben at besd.de>
> ---
> src/mesa/main/extensions_table.h | 98 ++++++++++++++++++++++--------
> ----------
> 1 file changed, 53 insertions(+), 45 deletions(-)
>
> diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_
> table.h
> index 931e0d4d33..6e3bdbe99c 100644
> --- a/src/mesa/main/extensions_table.h
> +++ b/src/mesa/main/extensions_table.h
> @@ -6,7 +6,8 @@
> #define ANYES2 0
> #define x ~0
>
> -//EXT(name_str , driver_cap
> ,GLL_ver,GLC_ver, gles_ver, glES2_ver, yyyy)
> +//highest GLL_ver = 46, lowest GLC_ver = 30
> +//EXT(name_str , driver_cap
> ,GLL_ver,GLC_ver, gles_ver, glES2_ver, year)
> EXT(3DFX_texture_compression_FXT1 ,
> TDFX_texture_compression_FXT1 , ANYGLL, ANYGLC, x , x ,
> 1999)
>
> EXT(AMD_conservative_depth , ARB_conservative_depth
> , ANYGLL, ANYGLC, x , x , 2009)
> @@ -31,60 +32,62 @@ EXT(APPLE_texture_max_level ,
> dummy_true
> EXT(ARB_ES2_compatibility , ARB_ES2_compatibility
> , ANYGLL, ANYGLC, x , x , 2009)
> EXT(ARB_ES3_1_compatibility , ARB_ES3_1_compatibility
> , x , ANYGLC, x , x , 2014)
> EXT(ARB_ES3_2_compatibility , ARB_ES3_2_compatibility
> , x , ANYGLC, x , x , 2015)
> -EXT(ARB_ES3_compatibility , ARB_ES3_compatibility
> , ANYGLL, ANYGLC, x , x , 2012)
> -EXT(ARB_arrays_of_arrays , ARB_arrays_of_arrays
> , ANYGLL, ANYGLC, x , x , 2012)
> +EXT(ARB_ES3_compatibility , ARB_ES3_compatibility
> , 33 , 33 , x , x , 2012) // requires
> ARB_ES2_compatibility, ARB_invalidate_subdata, ARB_texture_storage,
> OES_compressed_*
> +EXT(ARB_arrays_of_arrays , ARB_arrays_of_arrays
> , 12 , 12 , x , x , 2012)
> EXT(ARB_base_instance , ARB_base_instance
> , ANYGLL, ANYGLC, x , x , 2011)
> EXT(ARB_bindless_texture , ARB_bindless_texture
> , ANYGLL, ANYGLC, x , x , 2013)
> EXT(ARB_blend_func_extended , ARB_blend_func_extended
> , ANYGLL, ANYGLC, x , x , 2009)
> EXT(ARB_buffer_storage , ARB_buffer_storage
> , ANYGLL, ANYGLC, x , x , 2013)
> +//EXT(ARB_cl_event , ARB_cl_event
> , 31 , 31 , x , x , 2013) // requires GL_ARB_sync
> EXT(ARB_clear_buffer_object , dummy_true
> , ANYGLL, ANYGLC, x , x , 2012)
> EXT(ARB_clear_texture , ARB_clear_texture
> , ANYGLL, ANYGLC, x , x , 2013)
> EXT(ARB_clip_control , ARB_clip_control
> , ANYGLL, ANYGLC, x , x , 2014)
> EXT(ARB_color_buffer_float , ARB_color_buffer_float
> , ANYGLL, ANYGLC, x , x , 2004)
> EXT(ARB_compatibility , ARB_compatibility
> , ANYGLL, x , x , x , 2009)
> EXT(ARB_compressed_texture_pixel_storage , dummy_true
> , ANYGLL, ANYGLC, x , x , 2011)
> -EXT(ARB_compute_shader , ARB_compute_shader
> , ANYGLL, ANYGLC, x , x , 2012)
> -EXT(ARB_compute_variable_group_size , ARB_compute_variable_group_size
> , ANYGLL, ANYGLC, x , x , 2013)
> +EXT(ARB_compute_shader , ARB_compute_shader
> , 42 , 42 , x , x , 2012)
> +EXT(ARB_compute_variable_group_size , ARB_compute_variable_group_size
> , 42 , 42 , x , x , 2013) //or ARB compute shader
> EXT(ARB_conditional_render_inverted , ARB_conditional_render_inverted
> , ANYGLL, ANYGLC, x , x , 2014)
> EXT(ARB_conservative_depth , ARB_conservative_depth
> , ANYGLL, ANYGLC, x , x , 2011)
> EXT(ARB_copy_buffer , dummy_true
> , ANYGLL, ANYGLC, x , x , 2008)
> -EXT(ARB_copy_image , ARB_copy_image
> , ANYGLL, ANYGLC, x , x , 2012)
> -EXT(ARB_cull_distance , ARB_cull_distance
> , ANYGLL, ANYGLC, x , x , 2014)
> -EXT(ARB_debug_output , dummy_true
> , ANYGLL, ANYGLC, x , x , 2009)
> +EXT(ARB_copy_image , ARB_copy_image
> , 11 , 11 , x , x , 2012)
> +EXT(ARB_cull_distance , ARB_cull_distance
> , 30 , 30 , x , x , 2014)
> +EXT(ARB_debug_output , dummy_true
> , 11 , 11 , x , x , 2009)
> EXT(ARB_depth_buffer_float , ARB_depth_buffer_float
> , ANYGLL, ANYGLC, x , x , 2008)
> EXT(ARB_depth_clamp , ARB_depth_clamp
> , ANYGLL, ANYGLC, x , x , 2003)
> -EXT(ARB_depth_texture , ARB_depth_texture
> , ANYGLL, x , x , x , 2001)
> -EXT(ARB_derivative_control , ARB_derivative_control
> , ANYGLL, ANYGLC, x , x , 2014)
> -EXT(ARB_direct_state_access , dummy_true
> , x , ANYGLC, x , x , 2014)
> +EXT(ARB_depth_texture , ARB_depth_texture
> , 11 , x , x , x , 2001)
> +EXT(ARB_derivative_control , ARB_derivative_control
> , 40 , 40 , x , x , 2014)
> +EXT(ARB_direct_state_access , dummy_true
> , x , 20 , x , x , 2014)
> EXT(ARB_draw_buffers , dummy_true
> , ANYGLL, ANYGLC, x , x , 2002)
> EXT(ARB_draw_buffers_blend , ARB_draw_buffers_blend
> , ANYGLL, ANYGLC, x , x , 2009)
> EXT(ARB_draw_elements_base_vertex ,
> ARB_draw_elements_base_vertex , ANYGLL, ANYGLC, x , x ,
> 2009)
> EXT(ARB_draw_indirect , ARB_draw_indirect
> , x , ANYGLC, x , x , 2010)
> -EXT(ARB_draw_instanced , ARB_draw_instanced
> , ANYGLL, ANYGLC, x , x , 2008)
> -EXT(ARB_enhanced_layouts , ARB_enhanced_layouts
> , ANYGLL, ANYGLC, x , x , 2013)
> -EXT(ARB_explicit_attrib_location ,
> ARB_explicit_attrib_location , ANYGLL, ANYGLC, x , x ,
> 2009)
> +EXT(ARB_draw_instanced , ARB_draw_instanced
> , 20 , 20 , x , x , 2008) // EXT_gpu_shader4 or
> NV_vertex_program4 or OpenGL 3.0 is required
> +EXT(ARB_enhanced_layouts , ARB_enhanced_layouts
> , 31 , 31 , x , x , 2013)
> +EXT(ARB_explicit_attrib_location ,
> ARB_explicit_attrib_location , ANYGLL, ANYGLC, x , x ,
> 2009) //GL_ARB_vertex_shader is always available
> EXT(ARB_explicit_uniform_location ,
> ARB_explicit_uniform_location , ANYGLL, ANYGLC, x , x ,
> 2012)
> EXT(ARB_fragment_coord_conventions ,
> ARB_fragment_coord_conventions , ANYGLL, ANYGLC, x , x ,
> 2009)
> EXT(ARB_fragment_layer_viewport ,
> ARB_fragment_layer_viewport , x , ANYGLC, x , x ,
> 2012)
> EXT(ARB_fragment_program , ARB_fragment_program
> , ANYGLL, x , x , x , 2002)
> EXT(ARB_fragment_program_shadow ,
> ARB_fragment_program_shadow , ANYGLL, x , x , x ,
> 2003)
> EXT(ARB_fragment_shader , ARB_fragment_shader
> , ANYGLL, ANYGLC, x , x , 2002)
> -EXT(ARB_framebuffer_no_attachments ,
> ARB_framebuffer_no_attachments , ANYGLL, ANYGLC, x , x ,
> 2012)
> -EXT(ARB_framebuffer_object , ARB_framebuffer_object
> , ANYGLL, ANYGLC, x , x , 2005)
> +//EXT(ARB_fragment_shader_interlock ,
> ARB_fragment_shader_interlock , 42 , 42 , x , x ,
> 2015)
> +EXT(ARB_framebuffer_no_attachments ,
> ARB_framebuffer_no_attachments , 11 , 11 , x , x ,
> 2012) // requires ARB_framebuffer_object
> +EXT(ARB_framebuffer_object , ARB_framebuffer_object
> , 11 , 11 , x , x , 2005)
> EXT(ARB_framebuffer_sRGB , EXT_framebuffer_sRGB
> , ANYGLL, ANYGLC, x , x , 1998)
> EXT(ARB_get_program_binary , dummy_true
> , ANYGLL, ANYGLC, x , x , 2010)
> -EXT(ARB_get_texture_sub_image , dummy_true
> , ANYGLL, ANYGLC, x , x , 2014)
> -EXT(ARB_gl_spirv , ARB_gl_spirv
> , x , ANYGLC, x , x , 2016)
> -EXT(ARB_gpu_shader5 , ARB_gpu_shader5
> , 32 , 40 , x , x , 2010)
> -EXT(ARB_gpu_shader_fp64 , ARB_gpu_shader_fp64
> , x , ANYGLC, x , x , 2010)
> -EXT(ARB_gpu_shader_int64 , ARB_gpu_shader_int64
> , x , ANYGLC, x , x , 2015)
> -EXT(ARB_half_float_pixel , dummy_true
> , ANYGLL, ANYGLC, x , x , 2003)
> +EXT(ARB_get_texture_sub_image , dummy_true
> , 20 , 20 , x , x , 2014)
> +EXT(ARB_gl_spirv , ARB_gl_spirv
> , x , 33 , x , x , 2016)
> +EXT(ARB_gpu_shader5 , ARB_gpu_shader5
> , 30 , 30 , x , x , 2010)
> +EXT(ARB_gpu_shader_fp64 , ARB_gpu_shader_fp64
> , 32 , 32 , x , x , 2010)
> +EXT(ARB_gpu_shader_int64 , ARB_gpu_shader_int64
> , x , 40 , x , x , 2015)
> +EXT(ARB_half_float_pixel , dummy_true
> , 15 , 15 , x , x , 2003)
> EXT(ARB_half_float_vertex , ARB_half_float_vertex
> , ANYGLL, ANYGLC, x , x , 2008)
> -EXT(ARB_indirect_parameters , ARB_indirect_parameters
> , x , ANYGLC, x , x , 2013)
> +EXT(ARB_indirect_parameters , ARB_indirect_parameters
> , x , 42 , x , x , 2013)
> EXT(ARB_instanced_arrays , ARB_instanced_arrays
> , ANYGLL, ANYGLC, x , x , 2008)
> EXT(ARB_internalformat_query , ARB_internalformat_query
> , ANYGLL, ANYGLC, x , x , 2011)
> EXT(ARB_internalformat_query2 , ARB_internalformat_query2
> , ANYGLL, ANYGLC, x , x , 2013)
> -EXT(ARB_invalidate_subdata , dummy_true
> , ANYGLL, ANYGLC, x , x , 2012)
> +EXT(ARB_invalidate_subdata , dummy_true
> , 20 , 20 , x , x , 2012)
> EXT(ARB_map_buffer_alignment , dummy_true
> , ANYGLL, ANYGLC, x , x , 2011)
> EXT(ARB_map_buffer_range , ARB_map_buffer_range
> , ANYGLL, ANYGLC, x , x , 2008)
> EXT(ARB_multi_bind , dummy_true
> , ANYGLL, ANYGLC, x , x , 2013)
> @@ -97,27 +100,28 @@ EXT(ARB_pipeline_statistics_query ,
> ARB_pipeline_statistics_query
> EXT(ARB_pixel_buffer_object , EXT_pixel_buffer_object
> , ANYGLL, ANYGLC, x , x , 2004)
> EXT(ARB_point_parameters , EXT_point_parameters
> , ANYGLL, x , x , x , 1997)
> EXT(ARB_point_sprite , ARB_point_sprite
> , ANYGLL, ANYGLC, x , x , 2003)
> -EXT(ARB_polygon_offset_clamp , ARB_polygon_offset_clamp
> , ANYGLL, ANYGLC, x , x , 2017)
> +EXT(ARB_polygon_offset_clamp , ARB_polygon_offset_clamp
> , 33 , 33 , x , x , 2017)
> EXT(ARB_post_depth_coverage , ARB_post_depth_coverage
> , x , ANYGLC, x , x , 2015)
> EXT(ARB_program_interface_query , dummy_true
> , ANYGLL, ANYGLC, x , x , 2012)
> EXT(ARB_provoking_vertex , EXT_provoking_vertex
> , ANYGLL, ANYGLC, x , x , 2009)
> EXT(ARB_query_buffer_object , ARB_query_buffer_object
> , ANYGLL, ANYGLC, x , x , 2013)
> -EXT(ARB_robust_buffer_access_behavior , ARB_robust_buffer_access_behavior
> , ANYGLL, ANYGLC, x , x , 2012)
> +EXT(ARB_robust_buffer_access_behavior , ARB_robust_buffer_access_behavior
> , ANYGLL, ANYGLC, x , x , 2012) // requires ARB_robustness
> extension
> EXT(ARB_robustness , dummy_true
> , ANYGLL, ANYGLC, x , x , 2010)
> -EXT(ARB_sample_shading , ARB_sample_shading
> , ANYGLL, ANYGLC, x , x , 2009)
> +EXT(ARB_sample_shading , ARB_sample_shading
> , 20 , 20 , x , x , 2009)
> +//EXT(ARB_sample_locations , ARB_sample_locations
> , x , x , x , x , 2009
> EXT(ARB_sampler_objects , dummy_true
> , ANYGLL, ANYGLC, x , x , 2009)
> -EXT(ARB_seamless_cube_map , ARB_seamless_cube_map
> , ANYGLL, ANYGLC, x , x , 2009)
> +EXT(ARB_seamless_cube_map , ARB_seamless_cube_map
> , 11 , 11 , x , x , 2009) // requires
> ARB_texture_cube_map
> EXT(ARB_seamless_cubemap_per_texture , AMD_seamless_cubemap_per_texture
> , ANYGLL, ANYGLC, x , x , 2013)
> -EXT(ARB_separate_shader_objects , dummy_true
> , ANYGLL, ANYGLC, x , x , 2010)
> +EXT(ARB_separate_shader_objects , dummy_true
> , ANYGLL, ANYGLC, x , x , 2010) // requires
> ARB_shader_objects
> EXT(ARB_shader_atomic_counter_ops ,
> ARB_shader_atomic_counter_ops , ANYGLL, ANYGLC, x , x ,
> 2015)
> EXT(ARB_shader_atomic_counters , ARB_shader_atomic_counters
> , ANYGLL, ANYGLC, x , x , 2011)
> EXT(ARB_shader_ballot , ARB_shader_ballot
> , ANYGLL, ANYGLC, x , x , 2015)
> EXT(ARB_shader_bit_encoding , ARB_shader_bit_encoding
> , ANYGLL, ANYGLC, x , x , 2010)
> EXT(ARB_shader_clock , ARB_shader_clock
> , ANYGLL, ANYGLC, x , x , 2015)
> EXT(ARB_shader_draw_parameters , ARB_shader_draw_parameters
> , ANYGLL, ANYGLC, x , x , 2013)
> -EXT(ARB_shader_group_vote , ARB_shader_group_vote
> , ANYGLL, ANYGLC, x , x , 2013)
> -EXT(ARB_shader_image_load_store ,
> ARB_shader_image_load_store , ANYGLL, ANYGLC, x , x ,
> 2011)
> -EXT(ARB_shader_image_size , ARB_shader_image_size
> , ANYGLL, ANYGLC, x , x , 2012)
> +EXT(ARB_shader_group_vote , ARB_shader_group_vote
> , 42 , 42 , x , x , 2013)
> +EXT(ARB_shader_image_load_store ,
> ARB_shader_image_load_store , 30 , 30 , x , x ,
> 2011)
> +EXT(ARB_shader_image_size , ARB_shader_image_size
> , 42 , 42 , x , x , 2012)
> EXT(ARB_shader_objects , dummy_true
> , ANYGLL, ANYGLC, x , x , 2002)
> EXT(ARB_shader_precision , ARB_shader_precision
> , ANYGLL, ANYGLC, x , x , 2010)
> EXT(ARB_shader_stencil_export , ARB_shader_stencil_export
> , ANYGLL, ANYGLC, x , x , 2009)
> @@ -130,55 +134,59 @@ EXT(ARB_shading_language_100 ,
> dummy_true
> EXT(ARB_shading_language_420pack ,
> ARB_shading_language_420pack , ANYGLL, ANYGLC, x , x ,
> 2011)
> EXT(ARB_shading_language_packing ,
> ARB_shading_language_packing , ANYGLL, ANYGLC, x , x ,
> 2011)
> EXT(ARB_shadow , ARB_shadow
> , ANYGLL, x , x , x , 2001)
> +//EXT(ARB_shadow_ambient , ARB_shadow_ambient
> , 11 , x , x , x , 2001) //requires ARB_shadow
> EXT(ARB_sparse_buffer , ARB_sparse_buffer
> , ANYGLL, ANYGLC, x , x , 2014)
> +//EXT(ARB_sparse_texture , ARB_sparse_texture
> , 11 , 11 , x , x , 2014)
> +//EXT(ARB_sparse_texture2 , ARB_sparse_texture2
> , 11 , 11 , x , x , 2014) // requires
> ARB_sparse_texture
> +//EXT(ARB_sparse_texture_clamp ,
> ARB_sparse_texture_clamp , 11 , 11 , x , x ,
> 2014) // requires ARB_sparse_texture2
> EXT(ARB_stencil_texturing , ARB_stencil_texturing
> , ANYGLL, ANYGLC, x , x , 2012)
> -EXT(ARB_sync , ARB_sync
> , ANYGLL, ANYGLC, x , x , 2003)
> +EXT(ARB_sync , ARB_sync
> , 31 , 31 , x , x , 2003)
> EXT(ARB_tessellation_shader , ARB_tessellation_shader
> , x , ANYGLC, x , x , 2009)
> EXT(ARB_texture_barrier , NV_texture_barrier
> , ANYGLL, ANYGLC, x , x , 2014)
> EXT(ARB_texture_border_clamp , ARB_texture_border_clamp
> , ANYGLL, x , x , x , 2000)
> EXT(ARB_texture_buffer_object , ARB_texture_buffer_object
> , ANYGLL, ANYGLC, x , x , 2008)
> EXT(ARB_texture_buffer_object_rgb32 , ARB_texture_buffer_object_rgb32
> , ANYGLL, ANYGLC, x , x , 2009)
> EXT(ARB_texture_buffer_range , ARB_texture_buffer_range
> , ANYGLL, ANYGLC, x , x , 2012)
> -EXT(ARB_texture_compression , dummy_true
> , ANYGLL, x , x , x , 2000)
> -EXT(ARB_texture_compression_bptc ,
> ARB_texture_compression_bptc , ANYGLL, ANYGLC, x , x ,
> 2010)
> -EXT(ARB_texture_compression_rgtc ,
> ARB_texture_compression_rgtc , ANYGLL, ANYGLC, x , x ,
> 2004)
> +EXT(ARB_texture_compression , dummy_true
> , 11 , x , x , x , 2000)
> +EXT(ARB_texture_compression_bptc ,
> ARB_texture_compression_bptc , 11 , 11 , x , x ,
> 2010)
> +EXT(ARB_texture_compression_rgtc ,
> ARB_texture_compression_rgtc , 11 , 11 , x , x ,
> 2004) // requires ARB_texture_compression
> EXT(ARB_texture_cube_map , ARB_texture_cube_map
> , ANYGLL, x , x , x , 1999)
> EXT(ARB_texture_cube_map_array , ARB_texture_cube_map_array
> , ANYGLL, ANYGLC, x , x , 2009)
> EXT(ARB_texture_env_add , dummy_true
> , ANYGLL, x , x , x , 1999)
> EXT(ARB_texture_env_combine , ARB_texture_env_combine
> , ANYGLL, x , x , x , 2001)
> -EXT(ARB_texture_env_crossbar , ARB_texture_env_crossbar
> , ANYGLL, x , x , x , 2001)
> +EXT(ARB_texture_env_crossbar , ARB_texture_env_crossbar
> , 11 , x , x , x , 2001) //why not core?
> EXT(ARB_texture_env_dot3 , ARB_texture_env_dot3
> , ANYGLL, x , x , x , 2001)
> EXT(ARB_texture_filter_anisotropic ,
> ARB_texture_filter_anisotropic , ANYGLL, ANYGLC, x , x ,
> 2017)
> EXT(ARB_texture_float , ARB_texture_float
> , ANYGLL, ANYGLC, x , x , 2004)
> EXT(ARB_texture_gather , ARB_texture_gather
> , ANYGLL, ANYGLC, x , x , 2009)
> -EXT(ARB_texture_mirror_clamp_to_edge ,
> ARB_texture_mirror_clamp_to_edge , ANYGLL, ANYGLC, x , x ,
> 2013)
> +EXT(ARB_texture_mirror_clamp_to_edge ,
> ARB_texture_mirror_clamp_to_edge , 14 , 14 , x , x ,
> 2013)
> EXT(ARB_texture_mirrored_repeat , dummy_true
> , ANYGLL, x , x , x , 2001)
> EXT(ARB_texture_multisample , ARB_texture_multisample
> , ANYGLL, ANYGLC, x , x , 2009)
> EXT(ARB_texture_non_power_of_two ,
> ARB_texture_non_power_of_two , ANYGLL, ANYGLC, x , x ,
> 2003)
> -EXT(ARB_texture_query_levels , ARB_texture_query_levels
> , ANYGLL, ANYGLC, x , x , 2012)
> +EXT(ARB_texture_query_levels , ARB_texture_query_levels
> , 30 , 30 , x , x , 2012)
> EXT(ARB_texture_query_lod , ARB_texture_query_lod
> , ANYGLL, ANYGLC, x , x , 2009)
> -EXT(ARB_texture_rectangle , NV_texture_rectangle
> , ANYGLL, ANYGLC, x , x , 2004)
> +EXT(ARB_texture_rectangle , NV_texture_rectangle
> , 11 , 11 , x , x , 2004)
> EXT(ARB_texture_rg , ARB_texture_rg
> , ANYGLL, ANYGLC, x , x , 2008)
> EXT(ARB_texture_rgb10_a2ui , ARB_texture_rgb10_a2ui
> , ANYGLL, ANYGLC, x , x , 2009)
> EXT(ARB_texture_stencil8 , ARB_texture_stencil8
> , ANYGLL, ANYGLC, x , x , 2013)
> -EXT(ARB_texture_storage , dummy_true
> , ANYGLL, ANYGLC, x , x , 2011)
> +EXT(ARB_texture_storage , dummy_true
> , 12 , 12 , x , x , 2011)
> EXT(ARB_texture_storage_multisample , ARB_texture_multisample
> , ANYGLL, ANYGLC, x , x , 2012)
> EXT(ARB_texture_swizzle , EXT_texture_swizzle
> , ANYGLL, ANYGLC, x , x , 2008)
> EXT(ARB_texture_view , ARB_texture_view
> , ANYGLL, ANYGLC, x , x , 2012)
> EXT(ARB_timer_query , ARB_timer_query
> , ANYGLL, ANYGLC, x , x , 2010)
> EXT(ARB_transform_feedback2 , ARB_transform_feedback2
> , ANYGLL, ANYGLC, x , x , 2010)
> EXT(ARB_transform_feedback3 , ARB_transform_feedback3
> , ANYGLL, ANYGLC, x , x , 2010)
> -EXT(ARB_transform_feedback_instanced , ARB_transform_feedback_instanced
> , ANYGLL, ANYGLC, x , x , 2011)
> +EXT(ARB_transform_feedback_instanced , ARB_transform_feedback_instanced
> , 20 , 20 , x , x , 2011) // OpenGL 4.0 or the
> ARB_transform_feedback2 extension is required, OpenGL 3.1 or the
> ARB_draw_instanced extension is required
> EXT(ARB_transform_feedback_overflow_query , ARB_transform_feedback_overflow_query
> , ANYGLL, ANYGLC, x , x , 2014)
> EXT(ARB_transpose_matrix , dummy_true
> , ANYGLL, x , x , x , 1999)
> EXT(ARB_uniform_buffer_object , ARB_uniform_buffer_object
> , ANYGLL, ANYGLC, x , x , 2009)
> -EXT(ARB_vertex_array_bgra , EXT_vertex_array_bgra
> , ANYGLL, ANYGLC, x , x , 2008)
> +EXT(ARB_vertex_array_bgra , EXT_vertex_array_bgra
> , 11 , 11 , x , x , 2008)
> EXT(ARB_vertex_array_object , dummy_true
> , ANYGLL, ANYGLC, x , x , 2006)
> EXT(ARB_vertex_attrib_64bit , ARB_vertex_attrib_64bit
> , x , ANYGLC, x , x , 2010)
> EXT(ARB_vertex_attrib_binding , dummy_true
> , ANYGLL, ANYGLC, x , x , 2012)
> EXT(ARB_vertex_buffer_object , dummy_true
> , ANYGLL, x , x , x , 2003)
> -EXT(ARB_vertex_program , ARB_vertex_program
> , ANYGLL, x , x , x , 2002)
> -EXT(ARB_vertex_shader , ARB_vertex_shader
> , ANYGLL, ANYGLC, x , x , 2002)
> +EXT(ARB_vertex_program , ARB_vertex_program
> , 13 , x , x , x , 2002)
> +EXT(ARB_vertex_shader , ARB_vertex_shader
> , ANYGLL, ANYGLC, x , x , 2002) // requires
> ARB_shader_objects
> EXT(ARB_vertex_type_10f_11f_11f_rev ,
> ARB_vertex_type_10f_11f_11f_rev , ANYGLL, ANYGLC, x , x ,
> 2013)
> EXT(ARB_vertex_type_2_10_10_10_rev ,
> ARB_vertex_type_2_10_10_10_rev , ANYGLL, ANYGLC, x , x ,
> 2009)
> EXT(ARB_viewport_array , ARB_viewport_array
> , x , ANYGLC, x , x , 2010)
> --
> 2.14.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180520/5238ebe3/attachment-0001.html>
More information about the mesa-dev
mailing list