diff --git a/src/panfrost/lib/pan_shader.h b/src/panfrost/lib/pan_shader.h index 8aaafc8cb11..203ae4af73e 100644 --- a/src/panfrost/lib/pan_shader.h +++ b/src/panfrost/lib/pan_shader.h @@ -26,6 +26,9 @@ #define __PAN_SHADER_H__ #include "compiler/nir/nir.h" +#include "panfrost/compiler/bifrost/disassemble.h" +#include "panfrost/compiler/valhall/disassemble.h" +#include "panfrost/midgard/disassemble.h" #include "panfrost/util/pan_ir.h" #include "panfrost/util/pan_lower_framebuffer.h" @@ -43,6 +46,18 @@ pan_shader_preprocess(nir_shader *nir, unsigned gpu_id) midgard_preprocess_nir(nir, gpu_id); } +static inline void +pan_shader_disassemble(FILE *fp, const void *code, size_t size, unsigned gpu_id, + bool verbose) +{ + if (pan_arch(gpu_id) >= 9) + disassemble_valhall(fp, (const uint64_t *)code, size, verbose); + else if (pan_arch(gpu_id) >= 6) + disassemble_bifrost(fp, code, size, verbose); + else + disassemble_midgard(fp, code, size, gpu_id, verbose); +} + uint8_t pan_raw_format_mask_midgard(enum pipe_format *formats); #ifdef PAN_ARCH