diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index af41d453314..4e47b5c9a6b 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -61,6 +61,8 @@ static const struct debug_named_value radeonsi_debug_options[] = { {"nir", DBG(NIR), "Print final NIR after lowering when shader variants are created"}, {"initllvm", DBG(INIT_LLVM), "Print initial LLVM IR before optimizations"}, {"llvm", DBG(LLVM), "Print final LLVM IR"}, + {"initaco", DBG(INIT_ACO), "Print initial ACO IR before optimizations"}, + {"aco", DBG(ACO), "Print final ACO IR"}, {"asm", DBG(ASM), "Print final shaders in asm"}, /* Shader compiler options the shader cache should be aware of: */ @@ -76,6 +78,7 @@ static const struct debug_named_value radeonsi_debug_options[] = { {"checkir", DBG(CHECK_IR), "Enable additional sanity checks on shader IR"}, {"mono", DBG(MONOLITHIC_SHADERS), "Use old-style monolithic shaders compiled on demand"}, {"nooptvariant", DBG(NO_OPT_VARIANT), "Disable compiling optimized shader variants."}, + {"useaco", DBG(USE_ACO), "Use ACO as shader compiler when possible"}, /* Information logging options: */ {"info", DBG(INFO), "Print driver information"}, diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 2e58236b463..00e656971f5 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -196,6 +196,8 @@ enum DBG_NIR, DBG_INIT_LLVM, DBG_LLVM, + DBG_INIT_ACO, + DBG_ACO, DBG_ASM, /* Shader compiler options the shader cache should be aware of: */ @@ -260,6 +262,7 @@ enum DBG_TMZ, DBG_SQTT, + DBG_USE_ACO, DBG_COUNT }; diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index a7bfee2f926..8036015323d 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -1122,11 +1122,13 @@ bool si_can_dump_shader(struct si_screen *sscreen, gl_shader_stage stage, enum si_shader_dump_type dump_type) { static uint64_t filter[] = { - [SI_DUMP_SHADER_KEY] = DBG(NIR) | DBG(INIT_LLVM) | DBG(LLVM) | DBG(ASM), + [SI_DUMP_SHADER_KEY] = DBG(NIR) | DBG(INIT_LLVM) | DBG(LLVM) | DBG(INIT_ACO) | DBG(ACO) | DBG(ASM), [SI_DUMP_INIT_NIR] = DBG(INIT_NIR), [SI_DUMP_NIR] = DBG(NIR), [SI_DUMP_INIT_LLVM_IR] = DBG(INIT_LLVM), [SI_DUMP_LLVM_IR] = DBG(LLVM), + [SI_DUMP_INIT_ACO_IR] = DBG(INIT_ACO), + [SI_DUMP_ACO_IR] = DBG(ACO), [SI_DUMP_ASM] = DBG(ASM), [SI_DUMP_ALWAYS] = DBG(VS) | DBG(TCS) | DBG(TES) | DBG(GS) | DBG(PS) | DBG(CS), }; diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index f732f0817e3..3397df9a1de 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h +++ b/src/gallium/drivers/radeonsi/si_shader.h @@ -331,6 +331,8 @@ enum si_shader_dump_type { SI_DUMP_NIR, /* final NIR after lowering when shader variants are created */ SI_DUMP_INIT_LLVM_IR, /* initial LLVM IR before optimizations */ SI_DUMP_LLVM_IR, /* final LLVM IR */ + SI_DUMP_INIT_ACO_IR, /* initial ACO IR before optimizations */ + SI_DUMP_ACO_IR, /* final ACO IR */ SI_DUMP_ASM, /* final asm shaders */ SI_DUMP_ALWAYS, };