On Mon, May 7, 2018 at 8:02 PM, Brian Paul <[email protected]> wrote: > > I don't know when this started happening (I'll try bisecting tomorrow) but > we're seeing a crash in ast_type_qualifier::validate_in_qualifier() in -O3 > builds with gcc 5.4.0 on Ubuntu 16.04. > > Specifically, at ast_type.cpp:654: > > if ((this->flags.i & ~valid_in_mask.flags.i) != 0) { > > It seems to be the ~ operator/function which is implemented with an SSE pxor > instruction. > > I found that this patch avoids the issue: > > diff --git a/src/compiler/glsl/ast.h b/src/compiler/glsl/ast.h > index a1ec0d5..2e518ce 100644 > --- a/src/compiler/glsl/ast.h > +++ b/src/compiler/glsl/ast.h > @@ -474,7 +474,7 @@ enum { > > struct ast_type_qualifier { > DECLARE_RALLOC_CXX_OPERATORS(ast_type_qualifier); > - DECLARE_BITSET_T(bitset_t, 128); > + DECLARE_BITSET_T(bitset_t, 96); > > union flags { > struct { > > This probably prevents use of xmm instructions, but I haven't inspected the > code. > > Is anyone else seeing this?
Yes, it's https://bugs.freedesktop.org/show_bug.cgi?id=105497 I was surprised that we decided it's not worth working around. _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
