From 1f69258fb442a488a04d579874a917a1f0fb4ff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 1 Dec 2024 13:44:17 -0500 Subject: [PATCH] st/mesa: replace EmitNoIndirectInput / EmitNoIndirectOutput with NIR options Acked-by: Alyssa Rosenzweig Part-of: --- src/mesa/main/consts_exts.h | 2 -- src/mesa/state_tracker/st_extensions.c | 4 ---- src/mesa/state_tracker/st_glsl_to_nir.cpp | 7 ++++--- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/mesa/main/consts_exts.h b/src/mesa/main/consts_exts.h index c013112f627..84af77a7a6d 100644 --- a/src/mesa/main/consts_exts.h +++ b/src/mesa/main/consts_exts.h @@ -344,8 +344,6 @@ struct gl_shader_compiler_options * \name Forms of indirect addressing the driver cannot do. */ /*@{*/ - GLboolean EmitNoIndirectInput; /**< No indirect addressing of inputs */ - GLboolean EmitNoIndirectOutput; /**< No indirect addressing of outputs */ GLboolean EmitNoIndirectTemp; /**< No indirect addressing of temps */ GLboolean EmitNoIndirectUniform; /**< No indirect addressing of constants */ /*@}*/ diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index f4e58f51919..0d7d5a24549 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -351,10 +351,6 @@ void st_init_limits(struct pipe_screen *screen, !screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_CONT_SUPPORTED); - options->EmitNoIndirectInput = - !(options->NirOptions->support_indirect_inputs & BITFIELD_BIT(sh)); - options->EmitNoIndirectOutput = - !(options->NirOptions->support_indirect_outputs & BITFIELD_BIT(sh)); options->EmitNoIndirectTemp = !screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR); diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp b/src/mesa/state_tracker/st_glsl_to_nir.cpp index c804ff604c5..5e80a61cc15 100644 --- a/src/mesa/state_tracker/st_glsl_to_nir.cpp +++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp @@ -599,14 +599,15 @@ st_link_glsl_to_nir(struct gl_context *ctx, /* If there are forms of indirect addressing that the driver * cannot handle, perform the lowering pass. */ - if (options->EmitNoIndirectInput || options->EmitNoIndirectOutput || + if (!(nir->options->support_indirect_inputs & BITFIELD_BIT(stage)) || + !(nir->options->support_indirect_outputs & BITFIELD_BIT(stage)) || options->EmitNoIndirectTemp || options->EmitNoIndirectUniform) { nir_variable_mode mode = (nir_variable_mode)0; if (!nir->info.io_lowered) { - mode |= options->EmitNoIndirectInput ? + mode |= !(nir->options->support_indirect_inputs & BITFIELD_BIT(stage)) ? nir_var_shader_in : (nir_variable_mode)0; - mode |= options->EmitNoIndirectOutput ? + mode |= !(nir->options->support_indirect_outputs & BITFIELD_BIT(stage)) ? nir_var_shader_out : (nir_variable_mode)0; } mode |= options->EmitNoIndirectTemp ?