On Tue, Aug 07, 2018 at 06:35:20PM +0100, Lionel Landwerlin wrote: > A graphical user interface version of aubinator. > Allows you to : > > - simultaneously look at multiple points in the aub file (using all > the goodness of the existing decoding in aubinator) > > - edit an aub file > > Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> > --- > src/intel/tools/aubinator_viewer.cpp | 1118 ++++++++++++++++++ > src/intel/tools/aubinator_viewer.h | 71 ++ > src/intel/tools/aubinator_viewer_decoder.cpp | 860 ++++++++++++++ > src/intel/tools/imgui/imgui_memory_editor.h | 704 +++++++++++ > src/intel/tools/meson.build | 12 + > 5 files changed, 2765 insertions(+) > create mode 100644 src/intel/tools/aubinator_viewer.cpp > create mode 100644 src/intel/tools/aubinator_viewer.h > create mode 100644 src/intel/tools/aubinator_viewer_decoder.cpp > create mode 100644 src/intel/tools/imgui/imgui_memory_editor.h >
[...] > +int main(int argc, char *argv[]) > +{ > + int c, i; > + bool help = false; > + const struct option aubinator_opts[] = { > + { "help", no_argument, (int *) &help, > true }, > + { "xml", required_argument, NULL, > 'x' }, > + { NULL, 0, NULL, 0 > } > + }; > + > + memset(&context, 0, sizeof(context)); > + > + i = 0; > + while ((c = getopt_long(argc, argv, "x:s:", aubinator_opts, &i)) != -1) { > + switch (c) { > + case 'x': > + context.xml_path = strdup(optarg); > + break; > + default: > + break; > + } > + } > + > + if (optind < argc) > + context.input_file = argv[optind]; > + > + if (help || !context.input_file) { > + print_help(argv[0], stderr); > + exit(0); > + } > + > + context.file = aub_file_open(context.input_file); > + > + gtk_init(NULL, NULL); > + > + context.gtk_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); > + gtk_window_set_title(GTK_WINDOW(context.gtk_window), "GPUTop"); Ah, I guess this is why I'm seeing "GPUTop" at the title bar :P > + g_signal_connect(context.gtk_window, "delete-event", > G_CALLBACK(gtk_main_quit), NULL); > + gtk_window_resize(GTK_WINDOW(context.gtk_window), 1280, 720); > + > + GtkWidget* gl_area = gtk_gl_area_new(); > + g_signal_connect(gl_area, "render", G_CALLBACK(repaint_area), NULL); > + gtk_container_add(GTK_CONTAINER(context.gtk_window), gl_area); > + > + gtk_widget_show_all(context.gtk_window); > + > + ImGui::CreateContext(); > + ImGui_ImplGtk3_Init(gl_area, true); > + ImGui_ImplOpenGL3_Init("#version 130"); > + > + init_ui(); > + > + gtk_main(); > + > + ImGui_ImplOpenGL3_Shutdown(); > + ImGui_ImplGtk3_Shutdown(); > + ImGui::DestroyContext(); > + > + free(context.xml_path); > + > + return EXIT_SUCCESS; > +} I'm not sure what's going on here, but now when I close the window by clicking on the "x" at the top right I see this message: aubinator_viewer: ../../src/libepoxy/src/dispatch_common.c:863: epoxy_get_proc_address: Assertion `0 && "Couldn't find current GLX or EGL context.\n"' failed. That's the only issue I've seen so far, and since it's only when closing the window, I guess we can fix that later. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev