nir: Add options to nir_lower_compute_system_values to control compute ID base lowering
[mesa.git] / src / freedreno / computerator / ir3_asm.c
index fd27212eb1ecabdf0c26341316ddd80903d8dc21..e1e845a9a7c1133af1c7bf2c825506df7b2df8ba 100644 (file)
@@ -21,8 +21,8 @@
  * SOFTWARE.
  */
 
+#include "ir3/ir3_assembler.h"
 #include "ir3/ir3_compiler.h"
-#include "ir3/ir3_parser.h"
 
 #include "ir3_asm.h"
 
@@ -30,32 +30,18 @@ struct ir3_kernel *
 ir3_asm_assemble(struct ir3_compiler *c, FILE *in)
 {
        struct ir3_kernel *kernel = calloc(1, sizeof(*kernel));
+       struct ir3_shader *shader = ir3_parse_asm(c, &kernel->info, in);
+       struct ir3_shader_variant *v = shader->variants;
 
-       struct ir3_shader *shader = calloc(1, sizeof(*shader));
-       shader->compiler = c;
-       shader->type = MESA_SHADER_COMPUTE;
-
-       struct ir3_shader_variant *v = calloc(1, sizeof(*v));
-       v->type = MESA_SHADER_COMPUTE;
-       v->shader = shader;
        v->mergedregs = true;
 
        kernel->v = v;
-
-       kernel->info.numwg = INVALID_REG;
-
-       v->ir = ir3_parse(v, &kernel->info, in);
-       if (!v->ir)
-               errx(-1, "parse failed");
-
-       ir3_debug_print(v->ir, "AFTER PARSING");
+       kernel->bin = v->bin;
 
        memcpy(kernel->base.local_size, kernel->info.local_size, sizeof(kernel->base.local_size));
        kernel->base.num_bufs = kernel->info.num_bufs;
        memcpy(kernel->base.buf_sizes, kernel->info.buf_sizes, sizeof(kernel->base.buf_sizes));
 
-       kernel->bin = ir3_shader_assemble(v);
-
        unsigned sz = v->info.sizedwords * 4;
 
        v->bo = fd_bo_new(c->dev, sz,