[Mesa-dev] [PATCH] st/mesa: small cleanup in st_extensions.c

Edward O'Callaghan edward.ocallaghan at koparo.com
Tue Aug 11 20:48:30 PDT 2015


Reviewed-by: Edward O'Callaghan <eocallaghan at alterapraxis.com>

-- 
  Edward O'Callaghan
  edward.ocallaghan at koparo.com

On Wed, Aug 12, 2015, at 07:34 AM, Ilia Mirkin wrote:
> Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
> 
> On Tue, Aug 11, 2015 at 5:26 PM, Marek Olšák <maraeo at gmail.com> wrote:
> > From: Marek Olšák <marek.olsak at amd.com>
> >
> > ---
> >  src/mesa/state_tracker/st_extensions.c | 40 ++++++++--------------------------
> >  1 file changed, 9 insertions(+), 31 deletions(-)
> >
> > diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
> > index 5459891..77d6201 100644
> > --- a/src/mesa/state_tracker/st_extensions.c
> > +++ b/src/mesa/state_tracker/st_extensions.c
> > @@ -434,12 +434,14 @@ void st_init_extensions(struct pipe_screen *screen,
> >
> >     static const struct st_extension_cap_mapping cap_mapping[] = {
> >        { o(ARB_base_instance),                PIPE_CAP_START_INSTANCE                   },
> > -      { o(ARB_buffer_storage),               PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT },
> > +      { o(ARB_buffer_storage),               PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT   },
> > +      { o(ARB_color_buffer_float),           PIPE_CAP_VERTEX_COLOR_UNCLAMPED           },
> >        { o(ARB_depth_clamp),                  PIPE_CAP_DEPTH_CLIP_DISABLE               },
> >        { o(ARB_depth_texture),                PIPE_CAP_TEXTURE_SHADOW_MAP               },
> >        { o(ARB_draw_buffers_blend),           PIPE_CAP_INDEP_BLEND_FUNC                 },
> >        { o(ARB_draw_instanced),               PIPE_CAP_TGSI_INSTANCEID                  },
> >        { o(ARB_fragment_program_shadow),      PIPE_CAP_TEXTURE_SHADOW_MAP               },
> > +      { o(ARB_framebuffer_object),           PIPE_CAP_MIXED_FRAMEBUFFER_SIZES          },
> >        { o(ARB_instanced_arrays),             PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR  },
> >        { o(ARB_occlusion_query),              PIPE_CAP_OCCLUSION_QUERY                  },
> >        { o(ARB_occlusion_query2),             PIPE_CAP_OCCLUSION_QUERY                  },
> > @@ -449,6 +451,8 @@ void st_init_extensions(struct pipe_screen *screen,
> >        { o(ARB_shader_stencil_export),        PIPE_CAP_SHADER_STENCIL_EXPORT            },
> >        { o(ARB_shader_texture_lod),           PIPE_CAP_SM3                              },
> >        { o(ARB_shadow),                       PIPE_CAP_TEXTURE_SHADOW_MAP               },
> > +      { o(ARB_texture_buffer_object),        PIPE_CAP_TEXTURE_BUFFER_OBJECTS           },
> > +      { o(ARB_texture_gather),               PIPE_CAP_MAX_TEXTURE_GATHER_COMPONENTS    },
> >        { o(ARB_texture_mirror_clamp_to_edge), PIPE_CAP_TEXTURE_MIRROR_CLAMP             },
> >        { o(ARB_texture_non_power_of_two),     PIPE_CAP_NPOT_TEXTURES                    },
> >        { o(ARB_timer_query),                  PIPE_CAP_QUERY_TIMESTAMP                  },
> > @@ -469,6 +473,7 @@ void st_init_extensions(struct pipe_screen *screen,
> >        { o(ATI_separate_stencil),             PIPE_CAP_TWO_SIDED_STENCIL                },
> >        { o(ATI_texture_mirror_once),          PIPE_CAP_TEXTURE_MIRROR_CLAMP             },
> >        { o(NV_conditional_render),            PIPE_CAP_CONDITIONAL_RENDER               },
> > +      { o(NV_primitive_restart),             PIPE_CAP_PRIMITIVE_RESTART                },
> >        { o(NV_texture_barrier),               PIPE_CAP_TEXTURE_BARRIER                  },
> >        /* GL_NV_point_sprite is not supported by gallium because we don't
> >         * support the GL_POINT_SPRITE_R_MODE_NV option. */
> > @@ -579,7 +584,8 @@ void st_init_extensions(struct pipe_screen *screen,
> >            PIPE_FORMAT_R8G8B8A8_UNORM },
> >          GL_TRUE }, /* at least one format must be supported */
> >
> > -      { { o(ARB_stencil_texturing) },
> > +      { { o(ARB_stencil_texturing),
> > +          o(ARB_texture_stencil8) },
> >          { PIPE_FORMAT_X24S8_UINT,
> >            PIPE_FORMAT_S8X24_UINT },
> >          GL_TRUE }, /* at least one format must be supported */
> > @@ -673,9 +679,6 @@ void st_init_extensions(struct pipe_screen *screen,
> >                            ARRAY_SIZE(vertex_mapping), PIPE_BUFFER,
> >                            PIPE_BIND_VERTEX_BUFFER);
> >
> > -   if (extensions->ARB_stencil_texturing)
> > -      extensions->ARB_texture_stencil8 = GL_TRUE;
> > -
> >     if (screen->get_param(screen, PIPE_CAP_TEXTURE_FLOAT_LINEAR)) {
> >        extensions->OES_texture_float_linear = extensions->OES_texture_float;
> >        extensions->OES_texture_half_float_linear =
> > @@ -753,27 +756,11 @@ void st_init_extensions(struct pipe_screen *screen,
> >        extensions->ANGLE_texture_compression_dxt = GL_FALSE;
> >     }
> >
> > -   if (screen->get_shader_param(screen, PIPE_SHADER_GEOMETRY,
> > -                                PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0) {
> > -#if 0 /* XXX re-enable when GLSL compiler again supports geometry shaders */
> > -      extensions->ARB_geometry_shader4 = GL_TRUE;
> > -#endif
> > -   }
> > -
> >     if (screen->get_shader_param(screen, PIPE_SHADER_TESS_CTRL,
> >                                  PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0) {
> >        extensions->ARB_tessellation_shader = GL_TRUE;
> >     }
> >
> > -   if (screen->get_param(screen, PIPE_CAP_PRIMITIVE_RESTART)) {
> > -      extensions->NV_primitive_restart = GL_TRUE;
> > -   }
> > -
> > -   /* ARB_color_buffer_float. */
> > -   if (screen->get_param(screen, PIPE_CAP_VERTEX_COLOR_UNCLAMPED)) {
> > -      extensions->ARB_color_buffer_float = GL_TRUE;
> > -   }
> > -
> >     if (screen->fence_finish) {
> >        extensions->ARB_sync = GL_TRUE;
> >     }
> > @@ -858,9 +845,7 @@ void st_init_extensions(struct pipe_screen *screen,
> >     consts->MinMapBufferAlignment =
> >        screen->get_param(screen, PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT);
> >
> > -   if (screen->get_param(screen, PIPE_CAP_TEXTURE_BUFFER_OBJECTS)) {
> > -      extensions->ARB_texture_buffer_object = GL_TRUE;
> > -
> > +   if (extensions->ARB_texture_buffer_object) {
> >        consts->MaxTextureBufferSize =
> >           _min(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE),
> >                (1u << 31) - 1);
> > @@ -875,10 +860,6 @@ void st_init_extensions(struct pipe_screen *screen,
> >                               PIPE_BIND_SAMPLER_VIEW);
> >     }
> >
> > -   if (screen->get_param(screen, PIPE_CAP_MIXED_FRAMEBUFFER_SIZES)) {
> > -      extensions->ARB_framebuffer_object = GL_TRUE;
> > -   }
> > -
> >     /* Unpacking a varying in the fragment shader costs 1 texture indirection.
> >      * If the number of available texture indirections is very limited, then we
> >      * prefer to disable varying packing rather than run the risk of varying
> > @@ -903,9 +884,6 @@ void st_init_extensions(struct pipe_screen *screen,
> >           extensions->AMD_vertex_shader_viewport_index = GL_TRUE;
> >     }
> >
> > -   if (consts->MaxProgramTextureGatherComponents > 0)
> > -      extensions->ARB_texture_gather = GL_TRUE;
> > -
> >     /* GL_ARB_ES3_compatibility.
> >      *
> >      * Assume that ES3 is supported if GLSL 3.30 is supported.
> > --
> > 2.1.4
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list