radeonsi: add aco debug option

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22573>
This commit is contained in:
Qiang Yu 2023-04-05 19:50:43 +08:00 committed by Marge Bot
parent 5bc6c62486
commit ad33ff4de2
4 changed files with 11 additions and 1 deletions

View file

@ -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"},

View file

@ -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
};

View file

@ -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),
};

View file

@ -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,
};