[Mesa-dev] [PATCH 1/4] st/mesa: drop dependence on API profile in st_init_extensions
Brian Paul
brianp at vmware.com
Mon Sep 22 08:05:20 PDT 2014
This series looks good too. Reviewed-by: Brian Paul <brianp at vmware.com>
On 09/19/2014 01:08 PM, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> The extensions and limits being set in the conditional block are core-only
> anyway and don't have any effect on other profiles.
> ---
> src/mesa/state_tracker/st_context.c | 2 +-
> src/mesa/state_tracker/st_extensions.c | 20 +++++++++-----------
> src/mesa/state_tracker/st_extensions.h | 1 -
> src/mesa/state_tracker/st_manager.c | 2 +-
> 4 files changed, 11 insertions(+), 14 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c
> index 768a667..1723513 100644
> --- a/src/mesa/state_tracker/st_context.c
> +++ b/src/mesa/state_tracker/st_context.c
> @@ -242,7 +242,7 @@ st_create_context_priv( struct gl_context *ctx, struct pipe_context *pipe,
>
> /* GL limits and extensions */
> st_init_limits(st->pipe->screen, &ctx->Const, &ctx->Extensions);
> - st_init_extensions(st->pipe->screen, ctx->API, &ctx->Const,
> + st_init_extensions(st->pipe->screen, &ctx->Const,
> &ctx->Extensions, &st->options, ctx->Mesa_DXTn);
>
> /* Enable shader-based fallbacks for ARB_color_buffer_float if needed. */
> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
> index c7bc0ca..681723a 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -407,7 +407,6 @@ get_max_samples_for_formats(struct pipe_screen *screen,
> * Some fine tuning may still be needed.
> */
> void st_init_extensions(struct pipe_screen *screen,
> - gl_api api,
> struct gl_constants *consts,
> struct gl_extensions *extensions,
> struct st_config_options *options,
> @@ -844,17 +843,16 @@ void st_init_extensions(struct pipe_screen *screen,
> consts->DisableVaryingPacking = GL_TRUE;
> }
>
> - if (api == API_OPENGL_CORE) {
> - consts->MaxViewports = screen->get_param(screen, PIPE_CAP_MAX_VIEWPORTS);
> - if (consts->MaxViewports >= 16) {
> - consts->ViewportBounds.Min = -16384.0;
> - consts->ViewportBounds.Max = 16384.0;
> - extensions->ARB_viewport_array = GL_TRUE;
> - extensions->ARB_fragment_layer_viewport = GL_TRUE;
> - if (extensions->AMD_vertex_shader_layer)
> - extensions->AMD_vertex_shader_viewport_index = GL_TRUE;
> - }
> + consts->MaxViewports = screen->get_param(screen, PIPE_CAP_MAX_VIEWPORTS);
> + if (consts->MaxViewports >= 16) {
> + consts->ViewportBounds.Min = -16384.0;
> + consts->ViewportBounds.Max = 16384.0;
> + extensions->ARB_viewport_array = GL_TRUE;
> + extensions->ARB_fragment_layer_viewport = GL_TRUE;
> + if (extensions->AMD_vertex_shader_layer)
> + extensions->AMD_vertex_shader_viewport_index = GL_TRUE;
> }
> +
> if (consts->MaxProgramTextureGatherComponents > 0)
> extensions->ARB_texture_gather = GL_TRUE;
>
> diff --git a/src/mesa/state_tracker/st_extensions.h b/src/mesa/state_tracker/st_extensions.h
> index 8d2724d..faff11f 100644
> --- a/src/mesa/state_tracker/st_extensions.h
> +++ b/src/mesa/state_tracker/st_extensions.h
> @@ -38,7 +38,6 @@ extern void st_init_limits(struct pipe_screen *screen,
> struct gl_extensions *extensions);
>
> extern void st_init_extensions(struct pipe_screen *screen,
> - gl_api api,
> struct gl_constants *consts,
> struct gl_extensions *extensions,
> struct st_config_options *options,
> diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c
> index 7bc3326..df6de73 100644
> --- a/src/mesa/state_tracker/st_manager.c
> +++ b/src/mesa/state_tracker/st_manager.c
> @@ -928,7 +928,7 @@ static unsigned get_version(struct pipe_screen *screen,
> _mesa_init_extensions(&extensions);
>
> st_init_limits(screen, &consts, &extensions);
> - st_init_extensions(screen, api, &consts, &extensions, options, GL_TRUE);
> + st_init_extensions(screen, &consts, &extensions, options, GL_TRUE);
>
> return _mesa_get_version(&extensions, &consts, api);
> }
>
More information about the mesa-dev
mailing list