diff options
author | Connor Abbott <cwabbott0@gmail.com> | 2017-11-03 20:40:23 -0400 |
---|---|---|
committer | Connor Abbott <cwabbott0@gmail.com> | 2017-11-03 20:40:23 -0400 |
commit | 4826cc13d24027c266f4bc4c767c3cf2ebb24fc2 (patch) | |
tree | 88848ad422d5f3e1fb271d5e9e053da2a064c186 | |
parent | 8d4470263a2157484450b8ca619f1df2ba6e627d (diff) |
lima: make the cmdline compiler compile again
-rw-r--r-- | src/gallium/drivers/lima/lima_compiler_cmdline.c | 27 | ||||
-rw-r--r-- | src/gallium/drivers/lima/lima_program.c | 4 | ||||
-rw-r--r-- | src/gallium/drivers/lima/lima_program.h | 6 |
3 files changed, 28 insertions, 9 deletions
diff --git a/src/gallium/drivers/lima/lima_compiler_cmdline.c b/src/gallium/drivers/lima/lima_compiler_cmdline.c index 2535cf6900..4cc114df76 100644 --- a/src/gallium/drivers/lima/lima_compiler_cmdline.c +++ b/src/gallium/drivers/lima/lima_compiler_cmdline.c @@ -33,7 +33,7 @@ #include "lima_program.h" #include "lima_context.h" -#include "ir/gp/nir.h" +#include "ir/lima_ir.h" static void print_usage(void) @@ -214,14 +214,27 @@ main(int argc, char **argv) //nir_print_shader(nir, stdout); //*/ - lima_program_optimize_nir(nir); - printf("\nlima_optimize_nir\n"); - //nir_print_shader(nir, stdout); + switch (stage) { + case MESA_SHADER_VERTEX: + lima_program_optimize_vs_nir(nir); - nir_print_shader(nir, stdout); + nir_print_shader(nir, stdout); + + struct lima_vs_shader_state *vs = ralloc(nir, struct lima_vs_shader_state); + gpir_compile_nir(vs, nir); + break; + case MESA_SHADER_FRAGMENT: + lima_program_optimize_fs_nir(nir); - struct lima_vs_shader_state *vs = ralloc(nir, struct lima_vs_shader_state); - gpir_compile_nir(vs, nir); + nir_print_shader(nir, stdout); + + struct lima_fs_shader_state *so = rzalloc(NULL, struct lima_fs_shader_state); + struct ra_regs *ra = ppir_regalloc_init(NULL); + ppir_compile_nir(so, nir, ra); + break; + default: + errx(1, "unhandled shader stage: %d", stage); + } ralloc_free(nir); return 0; diff --git a/src/gallium/drivers/lima/lima_program.c b/src/gallium/drivers/lima/lima_program.c index 7669a0d438..09d670733d 100644 --- a/src/gallium/drivers/lima/lima_program.c +++ b/src/gallium/drivers/lima/lima_program.c @@ -64,7 +64,7 @@ lima_program_get_compiler_options(enum pipe_shader_type shader) } } -static void +void lima_program_optimize_vs_nir(struct nir_shader *s) { bool progress; @@ -100,7 +100,7 @@ lima_program_optimize_vs_nir(struct nir_shader *s) nir_sweep(s); } -static void +void lima_program_optimize_fs_nir(struct nir_shader *s) { bool progress; diff --git a/src/gallium/drivers/lima/lima_program.h b/src/gallium/drivers/lima/lima_program.h index 53bc1ecd55..409f97a17c 100644 --- a/src/gallium/drivers/lima/lima_program.h +++ b/src/gallium/drivers/lima/lima_program.h @@ -29,4 +29,10 @@ const void *lima_program_get_compiler_options(enum pipe_shader_type shader); +struct nir_shader; + +void lima_program_optimize_vs_nir(struct nir_shader *s); + +void lima_program_optimize_fs_nir(struct nir_shader *s); + #endif |