[Mesa-dev] [PATCH v2 3/5] nir: add can_replace_varying() helper
Timothy Arceri
tarceri at itsqueeze.com
Wed Dec 19 10:03:34 UTC 2018
This will be reused by the following patch.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
---
src/compiler/nir/nir_linking_helpers.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/compiler/nir/nir_linking_helpers.c b/src/compiler/nir/nir_linking_helpers.c
index 4f25c09d00..f3125a9880 100644
--- a/src/compiler/nir/nir_linking_helpers.c
+++ b/src/compiler/nir/nir_linking_helpers.c
@@ -700,8 +700,7 @@ nir_link_xfb_varyings(nir_shader *producer, nir_shader *consumer)
}
static bool
-try_replace_constant_input(nir_shader *shader,
- nir_intrinsic_instr *store_intr)
+can_replace_varying(nir_intrinsic_instr *store_intr)
{
nir_deref_instr *out_deref = nir_src_as_deref(store_intr->src[0]);
if (out_deref->mode != nir_var_shader_out)
@@ -728,11 +727,24 @@ try_replace_constant_input(nir_shader *shader,
out_var->data.location - VARYING_SLOT_VAR0 >= MAX_VARYING)
return false;
+ return true;
+}
+
+static bool
+try_replace_constant_input(nir_shader *shader,
+ nir_intrinsic_instr *store_intr)
+{
+ if (!can_replace_varying(store_intr))
+ return false;
+
nir_function_impl *impl = nir_shader_get_entrypoint(shader);
nir_builder b;
nir_builder_init(&b, impl);
+ nir_variable *out_var =
+ nir_deref_instr_get_variable(nir_src_as_deref(store_intr->src[0]));
+
bool progress = false;
nir_foreach_block(block, impl) {
nir_foreach_instr(instr, block) {
--
2.19.2
More information about the mesa-dev
mailing list