[Mesa-dev] [PATCH 5/9] glsl: change IR to add UBO information

Eric Anholt eric at anholt.net
Fri Dec 2 12:17:06 PST 2011


On Thu,  1 Dec 2011 16:35:34 +0100, Vincent Lejeune <vljn at ovi.com> wrote:

This commit doesn't appear to "change IR to add UBO information".  It
appears to actually add a member initialized to false and copy it
around.  The commit message is missing the "why and how" part that
should follow that 1-line "what" summary, which I think would have
pointed out that this commit is broken while it was being written.

> ---
>  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;
> +       }*/
> +
>  
>  	 entry->var->remove();
>  	 progress = true;
> -- 
> 1.7.7
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20111202/f5d58fdf/attachment.pgp>


More information about the mesa-dev mailing list