diff options
author | Juan A. Suarez Romero <[email protected]> | 2017-06-22 12:47:57 +0200 |
---|---|---|
committer | Juan A. Suarez Romero <[email protected]> | 2017-06-26 12:00:22 +0200 |
commit | 860919a3b237386cba5b2951ae520bf6734fd17e (patch) | |
tree | f589654eac5b2b165aa55a7476038a2209c0b183 /src/compiler/glsl/linker.cpp | |
parent | abc7b110b6f6dbd00db3633a68cc836170465d91 (diff) |
glsl: do not call link_xfb_stride_layout_qualifiers() for fragment shaders
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)
Reviewed-by: Timothy Arceri <[email protected]>
Signed-off-by: Juan A. Suarez Romero <[email protected]>
Diffstat (limited to 'src/compiler/glsl/linker.cpp')
-rw-r--r-- | src/compiler/glsl/linker.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index adfa3b7b1de..73ab8ff73cb 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); |