[Mesa-dev] [PATCH 1/2] nir: NULL check lower_copies_to_load_store()

Timothy Arceri tarceri at itsqueeze.com
Thu May 25 02:29:19 UTC 2017


Allows us to disable array spliting for arrays of arrays without
regressing tests such as:

ES31-CTS.functional.shaders.arrays_of_arrays.return.explicit.struct_3x1x3_fragment
---
 src/compiler/nir/nir_lower_vars_to_ssa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_lower_vars_to_ssa.c b/src/compiler/nir/nir_lower_vars_to_ssa.c
index e5a12eb..31f7e7a 100644
--- a/src/compiler/nir/nir_lower_vars_to_ssa.c
+++ b/src/compiler/nir/nir_lower_vars_to_ssa.c
@@ -434,21 +434,21 @@ register_variable_uses_block(nir_block *block,
    return true;
 }
 
 /* Walks over all of the copy instructions to or from the given deref_node
  * and lowers them to load/store intrinsics.
  */
 static bool
 lower_copies_to_load_store(struct deref_node *node,
                            struct lower_variables_state *state)
 {
-   if (!node->copies)
+   if (!node || !node->copies)
       return true;
 
    struct set_entry *copy_entry;
    set_foreach(node->copies, copy_entry) {
       nir_intrinsic_instr *copy = (void *)copy_entry->key;
 
       nir_lower_var_copy_instr(copy, state->shader);
 
       for (unsigned i = 0; i < 2; ++i) {
          struct deref_node *arg_node =
-- 
2.9.4



More information about the mesa-dev mailing list