[Mesa-dev] [RFC PATCH 2/3] mesa/main/extensions: first attempt to get the context levels right
Benedikt Schemmer
ben at besd.de
Sat May 19 13:18:52 UTC 2018
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
More information about the mesa-dev
mailing list