From 135c9fa7b68986918faae98aa120887c8ce936bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Tue, 24 Dec 2024 14:09:17 -0500 Subject: [PATCH] st/mesa: unlower IO for internal shaders if needed This will be required because all internal shaders will be converted to IO intrinsics. Reviewed-by: Alyssa Rosenzweig Part-of: --- src/mesa/state_tracker/st_nir_builtins.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mesa/state_tracker/st_nir_builtins.c b/src/mesa/state_tracker/st_nir_builtins.c index 1a44ae20965..a1c91dcc01c 100644 --- a/src/mesa/state_tracker/st_nir_builtins.c +++ b/src/mesa/state_tracker/st_nir_builtins.c @@ -73,6 +73,12 @@ st_nir_finish_builtin_nir(struct st_context *st, nir_shader *nir) if (!screen->get_param(screen, PIPE_CAP_NIR_IMAGES_AS_DEREF)) NIR_PASS(_, nir, gl_nir_lower_images, false); + if (nir->info.io_lowered && + !(nir->options->io_options & nir_io_has_intrinsics)) { + NIR_PASS(_, nir, st_nir_unlower_io_to_vars); + gl_nir_opts(nir); + } + if (screen->finalize_nir) { char *msg = screen->finalize_nir(screen, nir); free(msg);