[Mesa-dev] [PATCH 2/3] state_tracker: allow to utilize GLSL workaround for broken apps in Gallium

Vadim Girlin vadimgirlin at gmail.com
Wed Aug 22 08:54:29 PDT 2012


On Wed, 2012-08-22 at 11:31 -0400, Alex Deucher wrote:
> On Wed, Aug 22, 2012 at 11:24 AM, Vadim Girlin <vadimgirlin at gmail.com> wrote:
> > On Wed, 2012-08-22 at 11:23 +0300, Maxim Levitsky wrote:
> >> Currently Gallium has no way to activate the
> >> 'force_glsl_extensions_warn' workaround that allows
> >> buggy apps that use GLSL extensions without asking for them to work.
> >>
> >> Since gallium mesa state tracker is essentially split into two,
> >> (dri (src/gallium/state_trackers/dri) and mesa (src/mesa/state_tracker))
> >> and only former has access to driconf options while later knows nothing
> >> about dri, I added this support by reading an environment variable.
> >>
> >> export force_glsl_extensions_warn=true
> >>
> >
> > I just remembered that I sent some patches for passing the driconf
> > options to the state tracker but then forgot about them completely.
> >
> > Feel free to reuse anything from that series if it might help:
> >
> > http://lists.freedesktop.org/archives/mesa-dev/2012-April/020729.html
> 
> Series looks good to me.  Looks like Michel added his reviewed-by at
> the time as well.  

Yes, it was reviewed, but then I found that it breaks swrast build due
to missing driver descriptor, so I asked if it's OK to simply add the
descriptor to swrast and it seems I'm still waiting for the answer... :)

> If it still applies, I'd say go ahead and commit it.

I'll check if it still works and if it's enough to run Unigine apps
correctly with current mesa. IIRC it doesn't contain GLSL version hacks
as in Maxim's patch 3, so possibly it should be included too, and maybe
something else.

Vadim


> 
> Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> 
> Alex
> 
> 
> >
> > Vadim
> >
> >>
> >> Signed-off-by: Maxim Levitsky <maximlevitsky at gmail.com>
> >> ---
> >>  src/mesa/state_tracker/st_context.c |    9 +++++++++
> >>  src/mesa/state_tracker/st_context.h |    3 +++
> >>  2 files changed, 12 insertions(+)
> >>
> >> diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c
> >> index 2e14da2..b5786b9 100644
> >> --- a/src/mesa/state_tracker/st_context.c
> >> +++ b/src/mesa/state_tracker/st_context.c
> >> @@ -110,6 +110,13 @@ st_get_msaa(void)
> >>     return 0;
> >>  }
> >>
> >> +bool
> >> +st_get_glsl_warn(void)
> >> +{
> >> +   const char *env = _mesa_getenv("force_glsl_extensions_warn");
> >> +   return env && !strcmp(env, "true");
> >> +}
> >> +
> >>
> >>
> >>
> >> @@ -193,6 +200,8 @@ st_create_context_priv( struct gl_context *ctx, struct pipe_context *pipe )
> >>     st->has_stencil_export =
> >>        screen->get_param(screen, PIPE_CAP_SHADER_STENCIL_EXPORT);
> >>
> >> +   st->ctx->Const.ForceGLSLExtensionsWarn = st_get_glsl_warn();
> >> +
> >>     /* GL limits and extensions */
> >>     st_init_limits(st);
> >>     st_init_extensions(st);
> >> diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h
> >> index 47d3af5..67accd3 100644
> >> --- a/src/mesa/state_tracker/st_context.h
> >> +++ b/src/mesa/state_tracker/st_context.h
> >> @@ -263,6 +263,9 @@ st_fb_orientation(const struct gl_framebuffer *fb)
> >>  extern int
> >>  st_get_msaa(void);
> >>
> >> +extern bool
> >> +st_get_glsl_warn(void);
> >> +
> >>  extern struct st_context *
> >>  st_create_context(gl_api api, struct pipe_context *pipe,
> >>                    const struct gl_config *visual,
> >
> >
> >
> > _______________________________________________
> > 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