[Mesa-dev] [PATCH 00/33] intel: UI for aubinator
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Mon Oct 30 16:58:13 UTC 2017
Hi all,
This is a proposal for a tool to help debug intel driver through
aubdumps. Having gone through implementing (& mostly debugging) the
ycbcr extension for anv, I wished I had a better tool than the text
output of aubinator.
This is the current state of about 1 & 1/2 month of experimenting with
a UI toolkit called ImGui (for Immediate Mode Gui). It turned out much
better than the previous attempts I had tried with a html UI.
Some of the commits in this series probably won't make it to the
mailing list. You can find the branch here :
https://github.com/djdeath/mesa/tree/aubinator-imgui
I've already sent some of the commits fixing bits of the decoder.
Others are refactoring/abstractions for allowing a UI that doesn't
print out on stdout.
Some screenshots :
https://i.imgur.com/0JTLkTo.png
https://i.imgur.com/ABq31XD.png
Hopefully people find this interesting.
Cheers,
Lionel Landwerlin (33):
intel: common: expose gen_spec fields
intel: common: silence compiler warning
intel: decoder: build sorted linked lists of fields
intel: common: print out all dword with field spanning multiple dwords
intel: decoder: reorder iterator init function
intel: decoder: move field name copy
intel: decoder: split out getting the next field and decoding it
intel: decoder: don't read qword outside instruction/struct limit
aubinator: print number of dwords per instruction
intel: decoder: expose helper to test header fields
intel: decoder: add destructor for gen_spec
intel: decoder: simplify creation of struct when 0-allocated
intel: decoder: pack iterator variable declarations
intel: decoder: extract instruction/structs length
intel: error-decode: implement a rolling window of programs
intel: decoder: remove unused platform field
intel: common: make intel utils available from C++
intel: decoder: simplify field_is_header()
intel: decoder: rename internal function to free name
intel: decoder: rename field() to field_value()
intel: decoder: extract field value computation
intel: decoder: expose missing find_enum()
intel: decoder: group enum related declarations
intel: decoder: enable decoding a single field
intel: compiler: abstract printing
intel: genxml: add blitter instructions for gen6->10
intel: genxml: be consistent about register offset naming
intel: genxml: rename output urb offset field
intel: decoder: change group_get_length() to take first dword
intel: decoder: change find_instruction() to take first dword
intel: decoder: decouple decoding from memory pointers
intel: decoder: add function to query shader length
intel: add aubinator ui
configure.ac | 16 +
meson.build | 5 +-
meson_options.txt | 6 +
src/intel/Makefile.tools.am | 58 +
src/intel/common/gen_decoder.c | 519 +-
src/intel/common/gen_decoder.h | 75 +-
src/intel/common/gen_device_info.h | 8 +
src/intel/compiler/brw_compile_clip.c | 5 +-
src/intel/compiler/brw_compile_sf.c | 5 +-
src/intel/compiler/brw_disasm.c | 645 +-
src/intel/compiler/brw_eu.c | 39 -
src/intel/compiler/brw_eu.h | 13 +-
src/intel/compiler/brw_eu_compact.c | 9 +-
src/intel/compiler/intel_asm_annotation.c | 5 +-
src/intel/compiler/test_eu_compact.cpp | 7 +-
src/intel/genxml/gen10.xml | 782 +-
src/intel/genxml/gen4.xml | 2 +-
src/intel/genxml/gen45.xml | 2 +-
src/intel/genxml/gen5.xml | 2 +-
src/intel/genxml/gen6.xml | 748 +-
src/intel/genxml/gen7.xml | 750 +-
src/intel/genxml/gen75.xml | 754 +-
src/intel/genxml/gen8.xml | 739 +-
src/intel/genxml/gen9.xml | 782 +-
src/intel/tools/.gitignore | 2 +
src/intel/tools/aubinator.c | 30 +-
src/intel/tools/aubinator_error_decode.c | 28 +-
src/intel/tools/aubinator_imgui_widgets.cpp | 183 +
src/intel/tools/aubinator_imgui_widgets.h | 12 +
src/intel/tools/aubinator_ui.cpp | 3116 +++++++
src/intel/tools/disasm.c | 97 +-
src/intel/tools/gen_disasm.h | 17 +-
src/intel/tools/imgui/LICENSE.txt | 21 +
src/intel/tools/imgui/imconfig.h | 57 +
src/intel/tools/imgui/imgui.cpp | 10725 +++++++++++++++++++++++
src/intel/tools/imgui/imgui.h | 1516 ++++
src/intel/tools/imgui/imgui_demo.cpp | 2827 ++++++
src/intel/tools/imgui/imgui_draw.cpp | 2673 ++++++
src/intel/tools/imgui/imgui_impl_gtk3_cogl.cpp | 784 ++
src/intel/tools/imgui/imgui_impl_gtk3_cogl.h | 27 +
src/intel/tools/imgui/imgui_internal.h | 864 ++
src/intel/tools/imgui/stb_rect_pack.h | 583 ++
src/intel/tools/imgui/stb_textedit.h | 1322 +++
src/intel/tools/imgui/stb_truetype.h | 4018 +++++++++
src/intel/tools/memory.c | 545 ++
src/intel/tools/memory.h | 55 +
src/intel/tools/meson.build | 37 +
src/intel/vulkan/genX_cmd_buffer.c | 6 +-
src/intel/vulkan/genX_gpu_memcpy.c | 4 +-
src/intel/vulkan/genX_query.c | 20 +-
src/mesa/drivers/dri/i965/genX_state_upload.c | 2 +-
src/mesa/drivers/dri/i965/intel_batchbuffer.c | 30 +-
52 files changed, 34936 insertions(+), 641 deletions(-)
create mode 100644 src/intel/tools/aubinator_imgui_widgets.cpp
create mode 100644 src/intel/tools/aubinator_imgui_widgets.h
create mode 100644 src/intel/tools/aubinator_ui.cpp
create mode 100644 src/intel/tools/imgui/LICENSE.txt
create mode 100644 src/intel/tools/imgui/imconfig.h
create mode 100644 src/intel/tools/imgui/imgui.cpp
create mode 100644 src/intel/tools/imgui/imgui.h
create mode 100644 src/intel/tools/imgui/imgui_demo.cpp
create mode 100644 src/intel/tools/imgui/imgui_draw.cpp
create mode 100644 src/intel/tools/imgui/imgui_impl_gtk3_cogl.cpp
create mode 100644 src/intel/tools/imgui/imgui_impl_gtk3_cogl.h
create mode 100644 src/intel/tools/imgui/imgui_internal.h
create mode 100644 src/intel/tools/imgui/stb_rect_pack.h
create mode 100644 src/intel/tools/imgui/stb_textedit.h
create mode 100644 src/intel/tools/imgui/stb_truetype.h
create mode 100644 src/intel/tools/memory.c
create mode 100644 src/intel/tools/memory.h
--
2.15.0.rc2
More information about the mesa-dev
mailing list