i965: Move brw_init_compaction_tables() to brw_create_compiler().
authorMatt Turner <mattst88@gmail.com>
Fri, 10 Mar 2017 00:01:30 +0000 (16:01 -0800)
committerMatt Turner <mattst88@gmail.com>
Sat, 11 Mar 2017 01:58:11 +0000 (17:58 -0800)
... so that we can avoid threading complications or unnecessary
compaction table initializations (which just consists of setting some
pointers based on devinfo->gen).

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/brw_compiler.c
src/mesa/drivers/dri/i965/brw_eu.c
src/mesa/drivers/dri/i965/brw_eu_compact.c

index fcad570edff760ce79a525961ce83207700d0b33..cd9473f9a3bfb7db99d6a6c5ec7e871f312cce1c 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "brw_compiler.h"
 #include "brw_shader.h"
+#include "brw_eu.h"
 #include "common/gen_debug.h"
 #include "compiler/nir/nir.h"
 #include "main/errors.h"
@@ -107,6 +108,7 @@ brw_compiler_create(void *mem_ctx, const struct gen_device_info *devinfo)
 
    brw_fs_alloc_reg_sets(compiler);
    brw_vec4_alloc_reg_set(compiler);
+   brw_init_compaction_tables(devinfo);
 
    compiler->precise_trig = env_var_as_boolean("INTEL_PRECISE_TRIG", false);
 
index 1344f2b18e1ba7cd64f89e11c05ab811fee3bccc..d280ffd7e15da1aa5ca09a75b3b1e5b6a4b340c2 100644 (file)
@@ -354,8 +354,6 @@ brw_init_codegen(const struct gen_device_info *devinfo,
    p->loop_stack_array_size = 16;
    p->loop_stack = rzalloc_array(mem_ctx, int, p->loop_stack_array_size);
    p->if_depth_in_loop = rzalloc_array(mem_ctx, int, p->loop_stack_array_size);
-
-   brw_init_compaction_tables(devinfo);
 }
 
 
index 5b8e9b2b4163051a1b2490f905d6f13e7a340403..b2af76d533ad47a5bd0bbcd937ac67186f0df67c 100644 (file)
@@ -76,7 +76,6 @@
 #include "brw_shader.h"
 #include "intel_asm_annotation.h"
 #include "common/gen_debug.h"
-#include "util/u_atomic.h" /* for p_atomic_cmpxchg */
 
 static const uint32_t g45_control_index_table[32] = {
    0b00000000000000000,
@@ -1345,10 +1344,6 @@ update_gen4_jump_count(const struct gen_device_info *devinfo, brw_inst *insn,
 void
 brw_init_compaction_tables(const struct gen_device_info *devinfo)
 {
-   static bool initialized;
-   if (initialized || p_atomic_cmpxchg(&initialized, false, true) != false)
-      return;
-
    assert(g45_control_index_table[ARRAY_SIZE(g45_control_index_table) - 1] != 0);
    assert(g45_datatype_table[ARRAY_SIZE(g45_datatype_table) - 1] != 0);
    assert(g45_subreg_table[ARRAY_SIZE(g45_subreg_table) - 1] != 0);