From 3b6c72fa75ed47f97b9b9572c7935ef899888631 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 12 Apr 2023 12:57:13 -0400 Subject: [PATCH] mesa/st/program: don't init xfb info if there are no outputs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this is almost certainly a failure case, but drivers still shouldn't get xfb info if there are no outputs affects: spec@glsl-1.50@execution@interface-blocks-api-access-members cc: mesa-stable Reviewed-by: Kenneth Graunke Reviewed-by: Marek Olšák Part-of: (cherry picked from commit a86c710ce5869a55fb96498186f7dffc8e12c727) --- .pick_status.json | 2 +- src/mesa/state_tracker/st_program.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 3db2d703fe9..c4dac82479c 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -832,7 +832,7 @@ "description": "mesa/st/program: don't init xfb info if there are no outputs", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index e06e381998d..f2fa21967d5 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -476,6 +476,11 @@ st_translate_stream_output_info(struct gl_program *prog) struct pipe_stream_output_info *so_info = &prog->state.stream_output; + if (!num_outputs) { + so_info->num_outputs = 0; + return; + } + for (unsigned i = 0; i < info->NumOutputs; i++) { so_info->output[i].register_index = output_mapping[info->Outputs[i].OutputRegister];