On Sun, Mar 5, 2017 at 1:23 PM, Grazvydas Ignotas <[email protected]> wrote: > There are still some distributions trying to support unfortunate people > with old or exotic CPUs that don't have 64bit atomic operations. The > only thing preventing compile of the Intel driver for them seems to be > initialization of a debug variable. > > v2: use call_once() instead of unsafe code, as suggested by Matt Turner > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93089 > Signed-off-by: Grazvydas Ignotas <[email protected]> > --- > no commit access > > src/intel/common/gen_debug.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/src/intel/common/gen_debug.c b/src/intel/common/gen_debug.c > index 858f04d..96efdab 100644 > --- a/src/intel/common/gen_debug.c > +++ b/src/intel/common/gen_debug.c > @@ -33,8 +33,8 @@ > > #include "common/gen_debug.h" > #include "util/macros.h" > -#include "util/u_atomic.h" /* for p_atomic_cmpxchg */ > #include "util/debug.h" > +#include "c11/threads.h" > > uint64_t INTEL_DEBUG = 0; > > @@ -101,9 +101,17 @@ intel_debug_flag_for_shader_stage(gl_shader_stage stage) > return flags[stage]; > } > > +static void > +brw_process_intel_debug_variable_once(void) > +{ > + INTEL_DEBUG = parse_debug_string(getenv("INTEL_DEBUG"), debug_control); > +} > + > void > brw_process_intel_debug_variable(void) > { > - uint64_t intel_debug = parse_debug_string(getenv("INTEL_DEBUG"), > debug_control); > - (void) p_atomic_cmpxchg(&INTEL_DEBUG, 0, intel_debug); > + static once_flag process_intel_debug_variable_flag = ONCE_FLAG_INIT; > + > + call_once(&process_intel_debug_variable_flag, > + brw_process_intel_debug_variable_once); > }
Thank you. That looks great. Reviewed-by: Matt Turner <[email protected]> I'll commit it tomorrow morning, if there are no further comments. _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
