Mesa (master): glsl: do not call link_xfb_stride_layout_qualifiers() for fragment shaders

Juan Antonio Suárez Romero jasuarez at kemper.freedesktop.org
Mon Jun 26 10:04:57 UTC 2017


Module: Mesa
Branch: master
Commit: 860919a3b237386cba5b2951ae520bf6734fd17e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=860919a3b237386cba5b2951ae520bf6734fd17e

Author: Juan A. Suarez Romero <jasuarez at igalia.com>
Date:   Thu Jun 22 12:47:57 2017 +0200

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 <tarceri at itsqueeze.com>
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 adfa3b7b1d..73ab8ff73c 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-commit mailing list