From 521aa2e010b9b1aef5fc63e5896f4d0b49fbd194 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Tue, 15 Jul 2025 14:46:06 +0800 Subject: [PATCH] glsl: no xfb buffer qualifier for mesh shader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Ian Romanick Acked-by: Marek Olšák Part-of: --- src/compiler/glsl/ast_type.cpp | 4 +++- src/compiler/glsl/glsl_parser_extras.cpp | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/compiler/glsl/ast_type.cpp b/src/compiler/glsl/ast_type.cpp index 02ae08ec377..c7f827ab1fa 100644 --- a/src/compiler/glsl/ast_type.cpp +++ b/src/compiler/glsl/ast_type.cpp @@ -398,7 +398,9 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc, } } - if (state->has_enhanced_layouts()) { + /* Not apply to mesh shader */ + if (state->stage <= MESA_SHADER_GEOMETRY && + state->has_enhanced_layouts()) { if (!this->flags.q.explicit_xfb_buffer) { if (q.flags.q.xfb_buffer) { this->flags.q.xfb_buffer = 1; diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp index 5e7cc39787d..37b2da95b01 100644 --- a/src/compiler/glsl/glsl_parser_extras.cpp +++ b/src/compiler/glsl/glsl_parser_extras.cpp @@ -1241,7 +1241,10 @@ _mesa_ast_process_interface_block(YYLTYPE *locp, block->default_layout.stream = state->out_qualifier->stream; } - if (state->has_enhanced_layouts() && block->default_layout.flags.q.out && + /* Not apply to mesh shader. */ + if (state->stage <= MESA_SHADER_GEOMETRY && + state->has_enhanced_layouts() && + block->default_layout.flags.q.out && state->exts->ARB_transform_feedback3) { /* Assign global layout's xfb_buffer value. */ block->default_layout.flags.q.xfb_buffer = 1;