[Mesa-dev] [PATCH 12/12] mesa: Drop the blacklisting of new GL enums.

Ian Romanick idr at freedesktop.org
Mon Nov 30 16:57:55 PST 2015


On 11/25/2015 07:10 PM, Eric Anholt wrote:
> Now when people need new extensions, they can skip the entire
> enum-definition process, and we can stop reviewing new extension XML for
> its enum content.

This is only 99% true.  The enums are also used for some GLX protocol
generation.  There isn't a lot of new GLX protocol defined these days,
so that's not likely to be an issue in practice.

> This also brings in a new enum that I wanted to use in enum_strings.cpp
> for testing the code generator.
> ---
>  src/mapi/glapi/gen/gl_enums.py       | 266 -----------------------------------
>  src/mesa/main/tests/enum_strings.cpp |   2 +-
>  2 files changed, 1 insertion(+), 267 deletions(-)
> 
> diff --git a/src/mapi/glapi/gen/gl_enums.py b/src/mapi/glapi/gen/gl_enums.py
> index 05125f5..6e18f15 100644
> --- a/src/mapi/glapi/gen/gl_enums.py
> +++ b/src/mapi/glapi/gen/gl_enums.py
> @@ -179,77 +179,6 @@ _mesa_lookup_prim_by_nr(GLuint nr)
>          return
>  
>      def add_enum_provider(self, name, priority):
> -        # Skip some enums, to reduce the diffs from this commit.
> -        if name in ['GL_NEXT_BUFFER_NV',
> -                    # Mesa was choosing GL_LINES for this, which wasn't great.
> -                    'GL_TRUE',
> -                    # We're blacklisting 4.3, so also blacklist this
> -                    # to keep the 4.3/ARB_ssbo name for it.
> -                    'GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS',
> -                    # GL 2.0 name when Mesa was using GLES 1.0.
> -                    'GL_BLEND_EQUATION_RGB',
> -                    # GL3.x compat names that Mesa was missing.
> -                    'GL_ALPHA_SNORM',
> -                    'GL_LUMINANCE_SNORM',
> -                    'GL_LUMINANCE_ALPHA_SNORM',
> -                    'GL_INTENSITY_SNORM',
> -                    'GL_ALPHA8_SNORM',
> -                    'GL_LUMINANCE8_SNORM',
> -                    'GL_LUMINANCE8_ALPHA8_SNORM',
> -                    'GL_INTENSITY8_SNORM',
> -                    'GL_ALPHA16_SNORM',
> -                    'GL_LUMINANCE16_SNORM',
> -                    'GL_LUMINANCE16_ALPHA16_SNORM',
> -                    'GL_INTENSITY16_SNORM',
> -                    # ARB_imaging names that Mesa was missing.
> -                    'GL_COLOR_INDEX1_EXT',
> -                    'GL_COLOR_INDEX2_EXT',
> -                    'GL_COLOR_INDEX4_EXT',
> -                    'GL_COLOR_INDEX8_EXT',
> -                    'GL_COLOR_INDEX12_EXT',
> -                    'GL_COLOR_INDEX16_EXT',
> -                    'GL_CONSTANT_BORDER',
> -                    'GL_REPLICATE_BORDER',
> -                    'GL_TABLE_TOO_LARGE',
> -                    # ARB_texture_view names that Mesa was missing.
> -                    'GL_TEXTURE_VIEW_MIN_LEVEL',
> -                    'GL_TEXTURE_VIEW_NUM_LEVELS',
> -                    'GL_TEXTURE_VIEW_MIN_LAYER',
> -                    'GL_TEXTURE_VIEW_NUM_LAYERS',
> -                    # GL4.2 BPTC names that Mesa was missing.
> -                    'GL_COMPRESSED_RGBA_BPTC_UNORM',
> -                    'GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM',
> -                    'GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT',
> -                    'GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT',
> -                    # Mesa was choosing the EXT names for these
> -                    # instead of core.
> -                    'GL_ALPHA_INTEGER',
> -                    'GL_PROGRAM_SEPARABLE',
> -                    'GL_PROGRAM_PIPELINE_BINDING',
> -                    'GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS',
> -                    # Mesa was choosing the ARB names for these instead of core.
> -                    'GL_TEXTURE_CUBE_MAP_ARRAY',
> -                    'GL_TEXTURE_BINDING_CUBE_MAP_ARRAY',
> -                    'GL_PROXY_TEXTURE_CUBE_MAP_ARRAY',
> -                    'GL_SAMPLER_CUBE_MAP_ARRAY',
> -                    'GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW',
> -                    'GL_INT_SAMPLER_CUBE_MAP_ARRAY',
> -                    'GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY',
> -                    'GL_TRANSFORM_FEEDBACK_PAUSED',
> -                    'GL_TRANSFORM_FEEDBACK_ACTIVE',
> -                    'GL_VERTEX_ATTRIB_ARRAY_DIVISOR',
> -                    # Mesa was choosing the ANGLE names for these
> -                    # instead of EXT.
> -                    'GL_COMPRESSED_RGBA_S3TC_DXT3_EXT',
> -                    'GL_COMPRESSED_RGBA_S3TC_DXT5_EXT',
> -                    ]:
> -            return
> -
> -        # Mesa didn't know about the second half of this set of enums.
> -        m = re.match('GL_COLOR_ATTACHMENT([0-9]*)', name)
> -        if m and int(m.group(1)) >= 16:
> -            return
> -
>          value = self.string_to_int[name]
>  
>          # We don't want the weird GL_SKIP_COMPONENTS1_NV enums.
> @@ -279,192 +208,6 @@ _mesa_lookup_prim_by_nr(GLuint nr)
>              self.enum_table[value] = (name, priority)
>  
>      def process_extension(self, extension):
> -        # Skip some of the extensions, to reduce the diffs from this commit.
> -        extension_name = extension.get('name')
> -        whitelist = ['GL_ANGLE_texture_compression_dxt3',
> -                     'GL_ANGLE_texture_compression_dxt5',
> -                     'GL_APPLE_flush_buffer_range',
> -                     'GL_APPLE_object_purgeable',
> -                     'GL_APPLE_texture_range',
> -                     'GL_SGIS_texture_color_mask',
> -                     'GL_SGIX_clipmap',
> -                     'GL_SGIX_texture_coordinate_clamp',
> -                     'GL_SGIX_fog_offset',
> -                     'GL_SGIX_texture_scale_bias',
> -                     'GL_SGIX_texture_lod_bias',
> -                     'GL_SGIX_shadow',
> -                     'GL_APPLE_ycbcr_422']
> -        whitelist_only_prefixes = ['GL_APPLE',
> -                                   'GL_ANGLE',
> -                                   'GL_ARM',
> -                                   'GL_DMP',
> -                                   'GL_FJ',
> -                                   'GL_INGR',
> -                                   'GL_IMG_',
> -                                   'GL_MESAX_',
> -                                   'GL_MALI_',
> -                                   'GL_NVX_',
> -                                   'GL_OML_',
> -                                   'GL_OVR_',
> -                                   'GL_PGI_',
> -                                   'GL_QCOM_',
> -                                   'GL_REND_',
> -                                   'GL_SGIS_',
> -                                   'GL_SGIX_',
> -                                   'GL_WIN_',
> -                                   'GL_VIV_']
> -
> -        for prefix in whitelist_only_prefixes:
> -            if extension_name.startswith(prefix):
> -                if extension_name not in whitelist:
> -                    return
> -
> -        if extension_name in ['GL_ATI_element_array',
> -                              'GL_ATI_meminfo',
> -                              'GL_ATI_text_fragment_shader',
> -                              'GL_ATI_pixel_format_float',
> -                              'GL_ATI_pn_triangles',
> -                              'GL_ATI_vertex_array_object',
> -                              'GL_ATI_vertex_streams',
> -                              'GL_AMD_blend_minmax_factor',
> -                              'GL_AMD_compressed_3DC_texture',
> -                              'GL_AMD_compressed_ATC_texture',
> -                              'GL_AMD_debug_output',
> -                              'GL_AMD_depth_clamp_separate',
> -                              'GL_AMD_gpu_shader_int64',
> -                              'GL_AMD_query_buffer_object',
> -                              'GL_AMD_interleaved_elements',
> -                              'GL_AMD_name_gen_delete',
> -                              'GL_AMD_occlusion_query_event',
> -                              'GL_AMD_program_binary_Z400',
> -                              'GL_AMD_sample_positions',
> -                              'GL_AMD_sparse_texture',
> -                              'GL_AMD_stencil_operation_extended',
> -                              'GL_AMD_transform_feedback4',
> -                              'GL_AMD_vertex_shader_tessellator',
> -                              'GL_ARB_bindless_texture',
> -                              'GL_ARB_cl_event',
> -                              'GL_ARB_compute_variable_group_size',
> -                              'GL_ARB_cull_distance',
> -                              'GL_ARB_enhanced_layouts',
> -                              'GL_ARB_indirect_parameters',
> -                              'GL_ARB_internalformat_query2',
> -                              'GL_ARB_query_buffer_object',
> -                              'GL_ARB_shading_language_include',
> -                              'GL_ARB_sparse_buffer',
> -                              'GL_ARB_sparse_texture',
> -                              'GL_ARB_texture_compression_bptc',
> -                              'GL_ARB_texture_mirror_clamp_to_edge',
> -                              'GL_ARB_texture_view',
> -                              'GL_ARB_transform_feedback_overflow_query',
> -                              'GL_EXT_422_pixels',
> -                              'GL_EXT_bindable_uniform',
> -                              'GL_EXT_cmyka',
> -                              'GL_EXT_coordinate_frame',
> -                              'GL_EXT_debug_label',
> -                              'GL_EXT_direct_state_access',
> -                              'GL_EXT_disjoint_timer_query',
> -                              'GL_EXT_geometry_shader',
> -                              'GL_EXT_light_texture',
> -                              'GL_EXT_robustness',
> -                              'GL_EXT_tessellation_shader',
> -                              'GL_EXT_texture_compression_latc',
> -                              'GL_EXT_texture_filter_minmax',
> -                              'GL_EXT_texture_sRGB_R8',
> -                              'GL_EXT_texture_sRGB_RG8',
> -                              'GL_EXT_framebuffer_multisample_blit_scaled',
> -                              'GL_EXT_multisample',
> -                              'GL_EXT_multisampled_render_to_texture',
> -                              'GL_EXT_multiview_draw_buffers',
> -                              'GL_EXT_pixel_transform',
> -                              'GL_EXT_primitive_bounding_box',
> -                              'GL_EXT_pvrtc_sRGB',
> -                              'GL_EXT_raster_multisample',
> -                              'GL_EXT_shader_framebuffer_fetch',
> -                              'GL_EXT_shader_pixel_local_storage',
> -                              'GL_EXT_sparse_texture',
> -                              'GL_EXT_stencil_clear_tag',
> -                              'GL_EXT_tesselation_shader',
> -                              'GL_EXT_texture_perturb_normal',
> -                              'GL_EXT_texture_sRGB',
> -                              'GL_EXT_texture_storage',
> -                              'GL_EXT_texture_view',
> -                              'GL_EXT_vertex_shader',
> -                              'GL_EXT_vertex_weighting',
> -                              'GL_EXT_x11_sync_object',
> -                              'GL_EXT_YUV_target',
> -                              'GL_IBM_cull_vertex',
> -                              'GL_IBM_static_data',
> -                              'GL_IBM_vertex_array_lists',
> -                              'GL_INTEL_map_texture',
> -                              'GL_INTEL_parallel_arrays',
> -                              'GL_HP_image_transform',
> -                              'GL_HP_texture_lighting',
> -                              'GL_KHR_blend_equation_advanced',
> -                              'GL_KHR_blend_equation_advanced_coherent',
> -                              'GL_KHR_robustness',
> -                              'GL_NV_blend_equation_advanced',
> -                              'GL_NV_blend_equation_advanced_coherent',
> -                              'GL_NV_command_list',
> -                              'GL_NV_compute_program5',
> -                              'GL_NV_conservative_raster',
> -                              'GL_NV_coverage_sample',
> -                              'GL_NV_deep_texture3D',
> -                              'GL_NV_depth_buffer_float',
> -                              'GL_NV_depth_nonlinear',
> -                              'GL_NV_evaluators',
> -                              'GL_NV_explicit_multisample',
> -                              'GL_NV_fence',
> -                              'GL_NV_fill_rectangle',
> -                              'GL_NV_float_buffer',
> -                              'GL_NV_fragment_coverage_to_color',
> -                              'GL_NV_framebuffer_mixed_samples',
> -                              'GL_NV_framebuffer_multisample_coverage',
> -                              'GL_NV_geometry_program4',
> -                              'GL_NV_gpu_program4',
> -                              'GL_NV_gpu_program5',
> -                              'GL_NV_gpu_shader5',
> -                              'GL_NV_internalformat_sample_query',
> -                              'GL_NV_multisample_coverage',
> -                              'GL_NV_parameter_buffer_object',
> -                              'GL_NV_path_rendering',
> -                              'GL_NV_path_rendering_shared_edge',
> -                              'GL_NV_pixel_data_range',
> -                              'GL_NV_present_video',
> -                              'GL_NV_register_combiners',
> -                              'GL_NV_register_combiners2',
> -                              'GL_NV_sample_locations',
> -                              'GL_NV_shader_buffer_load',
> -                              'GL_NV_shader_image_load_store',
> -                              'GL_NV_shader_thread_group',
> -                              'GL_NV_sRGB_formats',
> -                              'GL_NV_tessellation_program5',
> -                              'GL_NV_texgen_emboss',
> -                              'GL_NV_texture_multisample',
> -                              'GL_NV_texture_shader',
> -                              'GL_NV_texture_shader2',
> -                              'GL_NV_texture_shader3',
> -                              'GL_NV_transform_feedback',
> -                              'GL_NV_uniform_buffer_unified_memory',
> -                              'GL_NV_vertex_array_range',
> -                              'GL_NV_vertex_array_range2',
> -                              'GL_NV_vertex_attrib_integer_64bit',
> -                              'GL_NV_vertex_buffer_unified_memory',
> -                              'GL_NV_video_capture',
> -                              'GL_OES_geometry_shader',
> -                              'GL_OES_primitive_bounding_box',
> -                              'GL_OES_tessellation_shader',
> -                              'GL_OES_texture_compression_astc',
> -                              'GL_OES_texture_view',
> -                              'GL_SGI_color_table',
> -                              'GL_SUN_global_alpha',
> -                              'GL_SUN_triangle_list',
> -                              'GL_SUNX_constant_data',
> -                              'GL_EXT_index_func',
> -                              'GL_EXT_index_array_formats',
> -                              'GL_EXT_index_material']:
> -            return
> -
>          if extension.get('name').startswith('GL_ARB_'):
>              extension_prio = 400
>          elif extension.get('name').startswith('GL_EXT_'):
> @@ -475,9 +218,6 @@ _mesa_lookup_prim_by_nr(GLuint nr)
>          for enum in extension.findall('require/enum'):
>              self.add_enum_provider(enum.get('name'), extension_prio)
>  
> -        # Part of 4.4, but Mesa added it early.
> -        self.add_enum_provider('GL_MAX_VERTEX_ATTRIB_STRIDE', 44)
> -
>      def process_enums(self, xml):
>          # First, process the XML entries that define the hex values
>          # for all of the enum names.
> @@ -498,12 +238,6 @@ _mesa_lookup_prim_by_nr(GLuint nr)
>          # value.
>          for feature in xml.findall('feature'):
>              feature_name = feature.get('name')
> -            # Skip some of the extensions, to reduce the diffs from this commit.
> -            if feature_name in ['GL_VERSION_4_3',
> -                                'GL_VERSION_4_4',
> -                                'GL_VERSION_4_5',
> -                                'GL_ES_VERSION_3_1']:
> -                continue
>  
>              # When an enum gets renamed in a newer version (generally
>              # because of some generalization of the functionality),
> diff --git a/src/mesa/main/tests/enum_strings.cpp b/src/mesa/main/tests/enum_strings.cpp
> index bff425a..4c89849 100644
> --- a/src/mesa/main/tests/enum_strings.cpp
> +++ b/src/mesa/main/tests/enum_strings.cpp
> @@ -71,7 +71,7 @@ const struct enum_info everything[] = {
>      * see go farther.  Disabled for the moment since Mesa doesn't have the XML
>      * for it yet.
>      */
> -   /* { 0x80a1, "GL_1PASS_EXT" }, */
> +   { 0x80a1, "GL_1PASS_EXT" },
>  
>     /* A vendor-only extension that we never expect to see show up in
>      * EXT/ARB/core.
> 



More information about the mesa-dev mailing list