link_xfb_stride_layout_qualifiers() can be called multiple times, and each time we call prog->TransformFeedback.BufferStride is reset to 0.
But we should only reset it if the shaders provide an explicit stride. 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 Signed-off-by: Juan A. Suarez Romero <jasua...@igalia.com> --- src/compiler/glsl/linker.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index adfa3b7b1d..5a261a64f5 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -1623,8 +1623,14 @@ link_xfb_stride_layout_qualifiers(struct gl_context *ctx, struct gl_shader **shader_list, unsigned num_shaders) { - for (unsigned i = 0; i < MAX_FEEDBACK_BUFFERS; i++) { - prog->TransformFeedback.BufferStride[i] = 0; + for (unsigned s = 0; s < num_shaders; s++) { + struct gl_shader *shader = shader_list[s]; + + for (unsigned i = 0; i < MAX_FEEDBACK_BUFFERS; i++) { + if (shader->TransformFeedbackBufferStride[i]) { + prog->TransformFeedback.BufferStride[i] = 0; + } + } } for (unsigned i = 0; i < num_shaders; i++) { -- 2.11.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev