On Wednesday, August 13, 2014 12:03:10 PM Ian Romanick wrote:
> On 07/09/2014 12:47 AM, Chia-I Wu wrote:
> > There may be two contexts compiling shaders at the same time, and we want 
> > the
> > anonymous struct id to be globally unique.
> > 
> > Signed-off-by: Chia-I Wu <o...@lunarg.com>
> > ---
> >  src/glsl/glsl_parser_extras.cpp | 10 ++++++++--
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/glsl/glsl_parser_extras.cpp 
> > b/src/glsl/glsl_parser_extras.cpp
> > index b327c2b..ad31469 100644
> > --- a/src/glsl/glsl_parser_extras.cpp
> > +++ b/src/glsl/glsl_parser_extras.cpp
> > @@ -1347,9 +1347,15 @@ ast_struct_specifier::ast_struct_specifier(const 
> > char *identifier,
> >                                        ast_declarator_list *declarator_list)
> >  {
> >     if (identifier == NULL) {
> > +      static mtx_t mutex = _MTX_INITIALIZER_NP;
> >        static unsigned anon_count = 1;
> > -      identifier = ralloc_asprintf(this, "#anon_struct_%04x", anon_count);
> > -      anon_count++;
> > +      unsigned count;
> > +
> > +      mtx_lock(&mutex);
> > +      count = anon_count++;
> > +      mtx_unlock(&mutex);
> 
> My previous feedback on this was to try and use some sort of atomic
> counter when available.  I'm not excited about the performance hit of
> taking a lock here.  Although, this probably isn't hit too much.  After
> this lands, can you submit an enhancement bug for this issue?

Yeah, I don't think this is hit often at all...

--Ken

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to