From ef0c9231a75e78fcf49436d2cfa20dbfb9968e85 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 22 Apr 2024 09:22:07 -0400 Subject: [PATCH] mesa/st: don't use serialized_nir for cached shaders MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit serialized_nir doesn't exist here, so just use the cached nir Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11051 Fixes: 5eb0136a3c5 ("mesa/st: when creating draw shader variants, use the base nir and skip driver opts") Acked-by: Marek Olšák Part-of: --- src/mesa/state_tracker/st_program.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index ba0ba41d80acd..32ed4a4702f17 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -646,7 +646,7 @@ get_nir_shader(struct st_context *st, struct gl_program *prog, bool is_draw) const struct nir_shader_compiler_options *options = is_draw ? &draw_nir_options : st_get_nir_compiler_options(st, prog->info.stage); - if (is_draw) { + if (is_draw && (!prog->shader_program || prog->shader_program->data->LinkStatus != LINKING_SKIPPED)) { assert(prog->base_serialized_nir); blob_reader_init(&blob_reader, prog->base_serialized_nir, prog->base_serialized_nir_size); } else {