etnaviv: do register setup only once
[mesa.git] / src / gallium / drivers / etnaviv / etnaviv_compiler.c
index aa6b2c6d29ba4947353a6dec4b0a2986b42996dc..0cb07c03cd783e9ea5a96080075726c4bb11e0b2 100644 (file)
@@ -25,6 +25,8 @@
  */
 
 #include "etnaviv_compiler.h"
+#include "etnaviv_compiler_nir.h"
+#include "etnaviv_debug.h"
 #include "util/ralloc.h"
 
 struct etna_compiler *
@@ -32,6 +34,15 @@ etna_compiler_create(void)
 {
    struct etna_compiler *compiler = rzalloc(NULL, struct etna_compiler);
 
+   if (!DBG_ENABLED(ETNA_DBG_NIR))
+      return compiler;
+
+   compiler->regs = etna_ra_setup(compiler);
+   if (!compiler->regs) {
+      ralloc_free((void *)compiler);
+      compiler = NULL;
+   }
+
    return compiler;
 }