<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 26, 2014 at 10:39 AM, Matt Turner <span dir="ltr"><<a href="mailto:mattst88@gmail.com" target="_blank">mattst88@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">---<br>
 src/mesa/drivers/dri/i965/brw_eu_compact.c | 5 +++++<br>
 1 file changed, 5 insertions(+)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/brw_eu_compact.c b/src/mesa/drivers/dri/i965/brw_eu_compact.c<br>
index 7117890..8e33bcb 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_eu_compact.c<br>
+++ b/src/mesa/drivers/dri/i965/brw_eu_compact.c<br>
@@ -75,6 +75,7 @@<br>
 #include "brw_context.h"<br>
 #include "brw_eu.h"<br>
 #include "intel_asm_annotation.h"<br>
+#include "util/u_atomic.h" /* for p_atomic_cmpxchg */<br>
<br>
 static const uint32_t g45_control_index_table[32] = {<br>
    0b00000000000000000,<br>
@@ -1247,6 +1248,10 @@ update_gen4_jump_count(struct brw_context *brw, brw_inst *insn,<br>
 void<br>
 brw_init_compaction_tables(struct brw_context *brw)<br>
 {<br>
+   static bool initialized;<br>
+   if (initialized || p_atomic_cmpxchg(&initialized, false, true) != false)<br>
+      return;<br>
+<br></blockquote><div><br></div><div>Sure, this protects the initialized flag, but what happens if a thread tries to use compaction after someone else starts initializing but before they've finished?  Same comment for the other two patches that do more-or-less the same thing.<br></div><div>--Jason<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
    assert(g45_control_index_table[ARRAY_SIZE(g45_control_index_table) - 1] != 0);<br>
    assert(g45_datatype_table[ARRAY_SIZE(g45_datatype_table) - 1] != 0);<br>
    assert(g45_subreg_table[ARRAY_SIZE(g45_subreg_table) - 1] != 0);<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.0.4<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div></div>