[Mesa-dev] [PATCH v3] glsl: do not call link_xfb_stride_layout_qualifiers() for fragment shaders

Timothy Arceri tarceri at itsqueeze.com
Thu Jun 22 22:18:32 UTC 2017


Thanks!

Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>

On 23/06/17 01:13, Juan A. Suarez Romero wrote:
> xfb only applies to the latest stage before the fragment shader, so
> there is no need to invoke it in the fragment shader.
> 
> Fixes:
> KHR-GL45.enhanced_layouts.xfb_stride_of_empty_list
> KHR-GL45.enhanced_layouts.xfb_stride_of_empty_list_and_api
> 
> v2: do reset only if shaders provide an explicit stride
> 
> v3: do not call link_xfb_stride_layout_qualifiers() for fragment shaders
> (Timothy)
> 
> Signed-off-by: Juan A. Suarez Romero <jasuarez at igalia.com>
> ---
>   src/compiler/glsl/linker.cpp | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
> index adfa3b7..73ab8ff 100644
> --- a/src/compiler/glsl/linker.cpp
> +++ b/src/compiler/glsl/linker.cpp
> @@ -2251,8 +2251,11 @@ link_intrastage_shaders(void *mem_ctx,
>      link_tes_in_layout_qualifiers(prog, gl_prog, shader_list, num_shaders);
>      link_gs_inout_layout_qualifiers(prog, gl_prog, shader_list, num_shaders);
>      link_cs_input_layout_qualifiers(prog, gl_prog, shader_list, num_shaders);
> -   link_xfb_stride_layout_qualifiers(ctx, prog, linked, shader_list,
> -                                     num_shaders);
> +
> +   if (linked->Stage != MESA_SHADER_FRAGMENT)
> +      link_xfb_stride_layout_qualifiers(ctx, prog, linked, shader_list,
> +                                        num_shaders);
> +
>      link_bindless_layout_qualifiers(prog, gl_prog, shader_list, num_shaders);
>   
>      populate_symbol_table(linked);
> 


More information about the mesa-dev mailing list