aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/amd/compiler/aco_print_ir.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/amd/compiler/aco_print_ir.cpp b/src/amd/compiler/aco_print_ir.cpp
index 9324632d433..fb771aafa37 100644
--- a/src/amd/compiler/aco_print_ir.cpp
+++ b/src/amd/compiler/aco_print_ir.cpp
@@ -693,6 +693,50 @@ static void print_block_kind(uint16_t kind, FILE *output)
fprintf(output, "export_end, ");
}
+static void print_stage(Stage stage, FILE *output)
+{
+ fprintf(output, "ACO shader stage: ");
+
+ if (stage == compute_cs)
+ fprintf(output, "compute_cs");
+ else if (stage == fragment_fs)
+ fprintf(output, "fragment_fs");
+ else if (stage == gs_copy_vs)
+ fprintf(output, "gs_copy_vs");
+ else if (stage == vertex_ls)
+ fprintf(output, "vertex_ls");
+ else if (stage == vertex_es)
+ fprintf(output, "vertex_es");
+ else if (stage == vertex_vs)
+ fprintf(output, "vertex_vs");
+ else if (stage == tess_control_hs)
+ fprintf(output, "tess_control_hs");
+ else if (stage == vertex_tess_control_hs)
+ fprintf(output, "vertex_tess_control_hs");
+ else if (stage == tess_eval_es)
+ fprintf(output, "tess_eval_es");
+ else if (stage == tess_eval_vs)
+ fprintf(output, "tess_eval_vs");
+ else if (stage == geometry_gs)
+ fprintf(output, "geometry_gs");
+ else if (stage == vertex_geometry_gs)
+ fprintf(output, "vertex_geometry_gs");
+ else if (stage == tess_eval_geometry_gs)
+ fprintf(output, "tess_eval_geometry_gs");
+ else if (stage == ngg_vertex_gs)
+ fprintf(output, "ngg_vertex_gs");
+ else if (stage == ngg_tess_eval_gs)
+ fprintf(output, "ngg_tess_eval_gs");
+ else if (stage == ngg_vertex_geometry_gs)
+ fprintf(output, "ngg_vertex_geometry_gs");
+ else if (stage == ngg_tess_eval_geometry_gs)
+ fprintf(output, "ngg_tess_eval_geometry_gs");
+ else
+ fprintf(output, "unknown");
+
+ fprintf(output, "\n");
+}
+
void aco_print_block(const struct Block* block, FILE *output)
{
fprintf(output, "BB%d\n", block->index);
@@ -714,6 +758,8 @@ void aco_print_block(const struct Block* block, FILE *output)
void aco_print_program(Program *program, FILE *output)
{
+ print_stage(program->stage, output);
+
for (Block const& block : program->blocks)
aco_print_block(&block, output);