diff --git a/src/intel/tools/aubinator_viewer.h b/src/intel/tools/aubinator_viewer.h index 5ec941b4922..c872f2a31c4 100644 --- a/src/intel/tools/aubinator_viewer.h +++ b/src/intel/tools/aubinator_viewer.h @@ -3,7 +3,6 @@ #include "imgui/imgui.h" -#include "compiler/brw/brw_disasm.h" #include "decoder/intel_decoder.h" struct aub_viewer_cfg { diff --git a/src/intel/tools/intel_tools.c b/src/intel/tools/intel_tools.c index d32b145aee4..fc346c9dc1f 100644 --- a/src/intel/tools/intel_tools.c +++ b/src/intel/tools/intel_tools.c @@ -5,8 +5,8 @@ #include "intel_tools.h" -#include "compiler/brw/brw_disasm.h" #include "compiler/brw/brw_isa_info.h" +#include "compiler/gen/gen.h" #ifdef INTEL_USE_ELK #include "compiler/elk/elk_disasm.h" #include "compiler/elk/elk_isa_info.h" @@ -25,19 +25,29 @@ void intel_disassemble(const struct intel_device_info *devinfo, const void *assembly, int start, FILE *out) { - if (devinfo->ver >= 9) { - struct brw_isa_info isa; - brw_init_isa_info(&isa, devinfo); - brw_disassemble_with_errors(&isa, assembly, start, NULL, out); - } else { + if (devinfo->ver >= 9) { + const uint8_t *shader = (const uint8_t *)assembly + start; + const int size = gen_find_shader_size(devinfo, shader, 0, 0); + if (size <= 0) + return; + + gen_print_params print = { + .devinfo = devinfo, + .fp = out, + .raw_bytes = shader, + .raw_bytes_size = size, + .validate = true, + }; + gen_print(&print); + } else { #ifdef INTEL_USE_ELK struct elk_isa_info isa; elk_init_isa_info(&isa, devinfo); elk_disassemble_with_errors(&isa, assembly, start, out); #else - not_supported(devinfo); + not_supported(devinfo); #endif - } + } } void