[Mesa-dev] [PATCH] mesa: set GLSL 1.20 for the fixed-function fragment shader

Roland Scheidegger sroland at vmware.com
Sat Jan 7 16:23:32 UTC 2017


Am 07.01.2017 um 15:51 schrieb Marek Olšák:
> From: Marek Olšák <marek.olsak at amd.com>
> 
> This fixes broken depth texturing after:
> 
> commit 22639a6e19f95902aef23474ad672bf489231ea7
> Author: Timothy Arceri <timothy.arceri at collabora.com>
> Date:   Mon Nov 21 00:29:29 2016 +1100
> 
>     st/mesa: get Version from gl_program rather than gl_shader_program
> ---
>  src/mesa/main/ff_fragment_shader.cpp | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/src/mesa/main/ff_fragment_shader.cpp b/src/mesa/main/ff_fragment_shader.cpp
> index 48b84e8..a13a5de 100644
> --- a/src/mesa/main/ff_fragment_shader.cpp
> +++ b/src/mesa/main/ff_fragment_shader.cpp
> @@ -1215,21 +1215,22 @@ create_new_program(struct gl_context *ctx, struct state_key *key)
>     p.shader_program = _mesa_new_shader_program(0);
>  
>     /* Tell the linker to ignore the fact that we're building a
>      * separate shader, in case we're in a GLES2 context that would
>      * normally reject that.  The real problem is that we're building a
>      * fixed function program in a GLES2 context at all, but that's a
>      * big mess to clean up.
>      */
>     p.shader_program->SeparateShader = GL_TRUE;
>  
> -   state->language_version = 130;
> +   /* Don't use 1.30, because depth texturing behaves differently there. */
Could you elaborate on this?

Roland

> +   state->language_version = 120;
>     state->es_shader = false;
>     if (_mesa_is_gles(ctx) && ctx->Extensions.OES_EGL_image_external)
>        state->OES_EGL_image_external_enable = true;
>     _mesa_glsl_initialize_types(state);
>     _mesa_glsl_initialize_variables(p.instructions, state);
>  
>     for (unit = 0; unit < ctx->Const.MaxTextureUnits; unit++) {
>        p.src_texture[unit] = NULL;
>        p.texcoord_tex[unit] = NULL;
>     }
> 



More information about the mesa-dev mailing list