[Mesa-dev] [PATCH 5/9] glsl: change IR to add UBO information
Matt Turner
mattst88 at gmail.com
Thu Dec 1 08:49:35 PST 2011
On Thu, Dec 1, 2011 at 3:35 PM, Vincent Lejeune <vljn at ovi.com> wrote:
> ---
> src/glsl/ir.cpp | 1 +
> src/glsl/ir.h | 6 ++++++
> src/glsl/ir_clone.cpp | 1 +
> src/glsl/opt_dead_code.cpp | 6 ++++++
> 4 files changed, 14 insertions(+), 0 deletions(-)
>
> diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp
> index a5eca5a..bf11e4f 100644
> --- a/src/glsl/ir.cpp
> +++ b/src/glsl/ir.cpp
> @@ -1335,6 +1335,7 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name,
> this->pixel_center_integer = false;
> this->depth_layout = ir_depth_layout_none;
> this->used = false;
> + this->is_ubo_variable = false;
>
> if (type && type->base_type == GLSL_TYPE_SAMPLER)
> this->read_only = true;
> diff --git a/src/glsl/ir.h b/src/glsl/ir.h
> index 1faae3c..dc77dec 100644
> --- a/src/glsl/ir.h
> +++ b/src/glsl/ir.h
> @@ -398,6 +398,12 @@ public:
> int location;
>
> /**
> + * True if the variable is defined in the scope of a shader range Uniform
> + * Buffer Object.
> + */
> + bool is_ubo_variable;
> +
> + /**
> * Built-in state that backs this uniform
> *
> * Once set at variable creation, \c state_slots must remain invariant.
> diff --git a/src/glsl/ir_clone.cpp b/src/glsl/ir_clone.cpp
> index c63615c..479f258 100644
> --- a/src/glsl/ir_clone.cpp
> +++ b/src/glsl/ir_clone.cpp
> @@ -52,6 +52,7 @@ ir_variable::clone(void *mem_ctx, struct hash_table *ht) const
> var->explicit_location = this->explicit_location;
> var->has_initializer = this->has_initializer;
> var->depth_layout = this->depth_layout;
> + var->is_ubo_variable = this->is_ubo_variable;
>
> var->num_state_slots = this->num_state_slots;
> if (this->state_slots) {
> diff --git a/src/glsl/opt_dead_code.cpp b/src/glsl/opt_dead_code.cpp
> index 5b9546a..58ff534 100644
> --- a/src/glsl/opt_dead_code.cpp
> +++ b/src/glsl/opt_dead_code.cpp
> @@ -27,6 +27,7 @@
> * Eliminates dead assignments and variable declarations from the code.
> */
>
> +#include "../mesa/main/mtypes.h"
> #include "ir.h"
> #include "ir_visitor.h"
> #include "ir_variable_refcount.h"
> @@ -100,6 +101,11 @@ do_dead_code(exec_list *instructions, bool uniform_locations_assigned)
> if (entry->var->mode == ir_var_uniform &&
> (uniform_locations_assigned || entry->var->constant_value))
> continue;
> + /*if(entry->var->mode == ir_var_uniform && entry->var->UBO) {
> + if(entry->var->UBO->UBO->Layout != packed)
> + continue;
> + }*/
> +
Is this meant to be commented-out?
Matt
More information about the mesa-dev
mailing list