From 8683404fa1343d34a7b4250e7a2161621421526b 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) Conflicts: src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt --- .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 28db2834bb2..5c379f06929 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3204,7 +3204,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, "notes": null diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index 75c00ae1fce..b4908d433da 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];