From: Ian Romanick <ian.d.roman...@intel.com> The way a variable is tested for this property is about to change, and this makes the code easier to modify.
Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> --- src/glsl/ir.h | 8 ++++++++ src/glsl/link_uniforms.cpp | 4 ++-- src/glsl/linker.cpp | 2 +- src/glsl/lower_ubo_reference.cpp | 2 +- src/glsl/opt_dead_code.cpp | 2 +- src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 2 +- src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 2 +- src/mesa/program/ir_to_mesa.cpp | 2 +- 8 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/glsl/ir.h b/src/glsl/ir.h index 85fc5ce..a7eb9c1 100644 --- a/src/glsl/ir.h +++ b/src/glsl/ir.h @@ -348,6 +348,14 @@ public: glsl_interp_qualifier determine_interpolation_mode(bool flat_shade); /** + * Determine whether or not a variable is part of a uniform block. + */ + inline bool is_in_uniform_block() const + { + return this->mode == ir_var_uniform && this->uniform_block != -1; + } + + /** * Declared type of the variable */ const struct glsl_type *type; diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp index 25bba15..c639a3d 100644 --- a/src/glsl/link_uniforms.cpp +++ b/src/glsl/link_uniforms.cpp @@ -228,7 +228,7 @@ public: ir_variable *var) { ubo_var = NULL; - if (var->uniform_block != -1) { + if (var->is_in_uniform_block()) { struct gl_uniform_block *block = &shader->UniformBlocks[var->uniform_block]; @@ -442,7 +442,7 @@ link_update_uniform_buffer_variables(struct gl_shader *shader) foreach_list(node, shader->ir) { ir_variable *const var = ((ir_instruction *) node)->as_variable(); - if ((var == NULL) || (var->uniform_block == -1)) + if ((var == NULL) || !var->is_in_uniform_block()) continue; assert(var->mode == ir_var_uniform); diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp index 63548e0..ffb476e 100644 --- a/src/glsl/linker.cpp +++ b/src/glsl/linker.cpp @@ -1078,7 +1078,7 @@ update_array_sizes(struct gl_shader_program *prog) * will not be eliminated. Since we always do std140, just * don't resize arrays in UBOs. */ - if (var->uniform_block != -1) + if (var->is_in_uniform_block()) continue; unsigned int size = var->max_array_access; diff --git a/src/glsl/lower_ubo_reference.cpp b/src/glsl/lower_ubo_reference.cpp index e8d2c47..1d08009 100644 --- a/src/glsl/lower_ubo_reference.cpp +++ b/src/glsl/lower_ubo_reference.cpp @@ -78,7 +78,7 @@ lower_ubo_reference_visitor::handle_rvalue(ir_rvalue **rvalue) return; ir_variable *var = deref->variable_referenced(); - if (!var || var->uniform_block == -1) + if (!var || !var->is_in_uniform_block()) return; mem_ctx = ralloc_parent(*rvalue); diff --git a/src/glsl/opt_dead_code.cpp b/src/glsl/opt_dead_code.cpp index 47247e2..ac0ffc3 100644 --- a/src/glsl/opt_dead_code.cpp +++ b/src/glsl/opt_dead_code.cpp @@ -105,7 +105,7 @@ do_dead_code(exec_list *instructions, bool uniform_locations_assigned) if (entry->var->mode == ir_var_uniform && (uniform_locations_assigned || entry->var->constant_value || - entry->var->uniform_block != -1)) + entry->var->is_in_uniform_block())) continue; entry->var->remove(); diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index 1186291..98006a3 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -107,7 +107,7 @@ fs_visitor::visit(ir_variable *ir) * ir_binop_ubo_load expressions and not ir_dereference_variable for UBO * variables, so no need for them to be in variable_ht. */ - if (ir->uniform_block != -1) + if (ir->is_in_uniform_block()) return; if (dispatch_width == 16) { diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp index 8aa67c2..f9d00c8 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp @@ -937,7 +937,7 @@ vec4_visitor::visit(ir_variable *ir) * ir_binop_ubo_load expressions and not ir_dereference_variable for UBO * variables, so no need for them to be in variable_ht. */ - if (ir->uniform_block != -1) + if (ir->is_in_uniform_block()) return; /* Track how big the whole uniform variable is, in case we need to put a diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index 637ab07..36d0bdc 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -2463,7 +2463,7 @@ _mesa_generate_parameters_list_for_uniforms(struct gl_shader_program ir_variable *var = ((ir_instruction *) node)->as_variable(); if ((var == NULL) || (var->mode != ir_var_uniform) - || var->uniform_block != -1 || (strncmp(var->name, "gl_", 3) == 0)) + || var->is_in_uniform_block() || (strncmp(var->name, "gl_", 3) == 0)) continue; add.process(var); -- 1.7.11.7 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev