Path: blob/21.2-virgl/src/intel/tools/aubinator_viewer.h
4547 views
#ifndef AUBINATOR_VIEWER_H1#define AUBINATOR_VIEWER_H23#include "imgui/imgui.h"45#include "common/intel_decoder.h"6#include "common/intel_disasm.h"78struct aub_viewer_cfg {9ImColor clear_color;10ImColor dwords_color;11ImColor highlight_color;12ImColor error_color;13ImColor missing_color;14ImColor boolean_color;1516aub_viewer_cfg() :17clear_color(114, 144, 154),18dwords_color(29, 177, 194, 255),19highlight_color(0, 230, 0, 255),20error_color(236, 255, 0, 255),21missing_color(230, 0, 230, 255),22boolean_color(228, 75, 255) {}23};2425struct aub_viewer_decode_cfg {26struct ImGuiTextFilter command_filter;27struct ImGuiTextFilter field_filter;2829bool drop_filtered;30bool show_dwords;3132aub_viewer_decode_cfg() :33drop_filtered(false),34show_dwords(true) {}35};3637enum aub_decode_stage {38AUB_DECODE_STAGE_VS,39AUB_DECODE_STAGE_HS,40AUB_DECODE_STAGE_DS,41AUB_DECODE_STAGE_GS,42AUB_DECODE_STAGE_PS,43AUB_DECODE_STAGE_CS,44AUB_DECODE_N_STAGE,45};4647struct aub_decode_urb_stage_state {48uint32_t start;49uint32_t size;50uint32_t n_entries;5152uint32_t const_rd_length;53uint32_t rd_offset;54uint32_t rd_length;55uint32_t wr_offset;56uint32_t wr_length;57};5859struct aub_viewer_decode_ctx {60struct intel_batch_decode_bo (*get_bo)(void *user_data, bool ppgtt, uint64_t address);61unsigned (*get_state_size)(void *user_data,62uint32_t offset_from_dynamic_state_base_addr);6364void (*display_shader)(void *user_data, const char *shader_desc, uint64_t address);65void (*display_urb)(void *user_data, const struct aub_decode_urb_stage_state *stages);66void (*edit_address)(void *user_data, uint64_t address, uint32_t length);6768void *user_data;6970const struct intel_device_info *devinfo;71struct intel_spec *spec;72enum drm_i915_gem_engine_class engine;7374struct aub_viewer_cfg *cfg;75struct aub_viewer_decode_cfg *decode_cfg;7677uint64_t surface_base;78uint64_t dynamic_base;79uint64_t instruction_base;8081enum aub_decode_stage stage;82uint32_t end_urb_offset;83struct aub_decode_urb_stage_state urb_stages[AUB_DECODE_N_STAGE];8485int n_batch_buffer_start;86};8788void aub_viewer_decode_ctx_init(struct aub_viewer_decode_ctx *ctx,89struct aub_viewer_cfg *cfg,90struct aub_viewer_decode_cfg *decode_cfg,91const struct intel_device_info *devinfo,92struct intel_spec *spec,93struct intel_batch_decode_bo (*get_bo)(void *, bool, uint64_t),94unsigned (*get_state_size)(void *, uint32_t),95void *user_data);9697void aub_viewer_render_batch(struct aub_viewer_decode_ctx *ctx,98const void *batch, uint32_t batch_size,99uint64_t batch_addr, bool from_ring);100101#endif /* AUBINATOR_VIEWER_H */102103104