summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConnor Abbott <cwabbott0@gmail.com>2017-11-03 20:40:23 -0400
committerConnor Abbott <cwabbott0@gmail.com>2017-11-03 20:40:23 -0400
commit4826cc13d24027c266f4bc4c767c3cf2ebb24fc2 (patch)
tree88848ad422d5f3e1fb271d5e9e053da2a064c186
parent8d4470263a2157484450b8ca619f1df2ba6e627d (diff)
lima: make the cmdline compiler compile again
-rw-r--r--src/gallium/drivers/lima/lima_compiler_cmdline.c27
-rw-r--r--src/gallium/drivers/lima/lima_program.c4
-rw-r--r--src/gallium/drivers/lima/lima_program.h6
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