[Mesa-dev] [PATCH 13/21] glsl: Track explicitly set varying locations

Timothy Arceri t_arceri at yahoo.com.au
Wed Apr 30 14:26:03 PDT 2014


Sorry to waste more of your time but this is driving me nuts. For my own
education :) can you tell me how this code works? Maybe I'm making
myself look silly by not understanding some basic concept of c++. But to
me it looks like var->data.location already contains the explicit
location and you are just assigning it the value it already contains. Is
there some weird operator overloading going on here?

On Wed, 2014-04-30 at 07:42 -0700, Ian Romanick wrote:
> On 04/29/2014 10:57 PM, Timothy Arceri wrote:
> > Looks like this patch should have been dropped with the removal of
> > user_location?
> 
> Nope.  We still need to track the location set in the shader.  Now it's
> tracked in the same location field as, say, vertex shader inputs instead
> of having a special field.
> 
> > On Tue, 2014-04-29 at 17:52 -0700, Ian Romanick wrote:
> >> From: Ian Romanick <ian.d.romanick at intel.com>
> >>
> >> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> >> ---
> >>  src/glsl/ast_to_hir.cpp | 2 ++
> >>  1 file changed, 2 insertions(+)
> >>
> >> diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
> >> index 0411bef..e1192ed 100644
> >> --- a/src/glsl/ast_to_hir.cpp
> >> +++ b/src/glsl/ast_to_hir.cpp
> >> @@ -2268,6 +2268,8 @@ validate_explicit_location(const struct ast_type_qualifier *qual,
> >>              assert(!"Unexpected shader type");
> >>              break;
> >>           }
> >> +
> >> +         var->data.location = var->data.location;
> >>        } else {
> >>           var->data.location = qual->location;
> >>        }
> 




More information about the mesa-dev mailing list