/* * Copyright 2017-2019 Lyude Paul * Copyright 2017-2019 Alyssa Rosenzweig * SPDX-License-Identifier: MIT * */ #pragma once #include #include "agx_bo.h" void agxdecode_next_frame(void); void agxdecode_close(void); void agxdecode_cmdstream(unsigned cmdbuf_index, unsigned map_index, bool verbose); void agxdecode_dump_file_open(void); void agxdecode_track_alloc(struct agx_bo *alloc); void agxdecode_dump_mappings(unsigned map_index); void agxdecode_track_free(struct agx_bo *bo); struct libagxdecode_config { uint32_t chip_id; size_t (*read_gpu_mem)(uint64_t addr, size_t size, void *data); ssize_t (*stream_write)(const char *buffer, size_t size); }; void libagxdecode_init(struct libagxdecode_config *config); void libagxdecode_vdm(uint64_t addr, const char *label, bool verbose); void libagxdecode_cdm(uint64_t addr, const char *label, bool verbose); void libagxdecode_usc(uint64_t addr, const char *label, bool verbose); void libagxdecode_shutdown(void);