diff options
author | Ian Romanick <[email protected]> | 2011-07-18 10:07:24 -0700 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2011-07-23 01:24:18 -0700 |
commit | d2296e784aa8fad81c4910dcbbf61e826ce9a06a (patch) | |
tree | d471e7a32c93d783073f39181897dfba06555fa8 | |
parent | 8d5f3cef795428d7a95120416122a39c10cff11c (diff) |
glsl: Split out part of variable_index_to_cond_assign_visitor::needs_lowering
Other code will soon need to know if an array needs lowering based
exclusively on the storage mode.
Reviewed-by: Eric Anholt <[email protected]>
-rw-r--r-- | src/glsl/lower_variable_index_to_cond_assign.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/glsl/lower_variable_index_to_cond_assign.cpp b/src/glsl/lower_variable_index_to_cond_assign.cpp index 45adb267f2c..c0b69c8f0b1 100644 --- a/src/glsl/lower_variable_index_to_cond_assign.cpp +++ b/src/glsl/lower_variable_index_to_cond_assign.cpp @@ -239,12 +239,8 @@ public: bool lower_temps; bool lower_uniforms; - bool needs_lowering(ir_dereference_array *deref) const + bool storage_type_needs_lowering(ir_dereference_array *deref) const { - if (deref == NULL || deref->array_index->as_constant() - || !is_array_or_matrix(deref->array)) - return false; - if (deref->array->ir_type == ir_type_constant) return this->lower_temps; @@ -268,6 +264,15 @@ public: return false; } + bool needs_lowering(ir_dereference_array *deref) const + { + if (deref == NULL || deref->array_index->as_constant() + || !is_array_or_matrix(deref->array)) + return false; + + return this->storage_type_needs_lowering(deref); + } + ir_variable *convert_dereference_array(ir_dereference_array *orig_deref, ir_assignment* orig_assign) { |