-
This commit introduces 2 features: - "umr --server url": starts a long running umr instance, accessible remotely It exposes a json based interface over a nanomsg transmission layer. See https://nanomsg.org/documentation.html. - "umr --gui [url]": a gui frontend. It can either connect to the GPU on the machine, or connect remotely to a "umr --server" instance. The features available from the GUI are (and their equivalent CLI switch): * --enumerate: to discover available GPUs and their config. Each GPU is accessible in its own tab. * --list-blocks: list IP blocks * --list-regs: list blocks registers. The registers can be filtered by name (a fuzzy search/match is used, so e.g. the filter "SDCNL" will match mmSDMA0_CNTL) or/and by bitfield names. * --vm-read/--vm-decode: read vmid or linear VRAM. When reading vmid memory the page table information will be displayed too. * --waves: dump waves. Waves information are parsed, so sgpr/vgpr are viewable (as int, uint, hex or float) and the shader disassembly is also available in the same view. * --ring: dump a given ring and display its disassembly. * --read: read a register and display its raw value and the individual bits. Register can also be auto-refreshed with a configurable frequency (default: 5 sec). * --write: update a register value, by modifing the raw 32 bits value or individual bits Limitations: * mostly tested on Navi10 * lacks most error checking in the GUI
6ab5ab10This commit introduces 2 features: - "umr --server url": starts a long running umr instance, accessible remotely It exposes a json based interface over a nanomsg transmission layer. See https://nanomsg.org/documentation.html. - "umr --gui [url]": a gui frontend. It can either connect to the GPU on the machine, or connect remotely to a "umr --server" instance. The features available from the GUI are (and their equivalent CLI switch): * --enumerate: to discover available GPUs and their config. Each GPU is accessible in its own tab. * --list-blocks: list IP blocks * --list-regs: list blocks registers. The registers can be filtered by name (a fuzzy search/match is used, so e.g. the filter "SDCNL" will match mmSDMA0_CNTL) or/and by bitfield names. * --vm-read/--vm-decode: read vmid or linear VRAM. When reading vmid memory the page table information will be displayed too. * --waves: dump waves. Waves information are parsed, so sgpr/vgpr are viewable (as int, uint, hex or float) and the shader disassembly is also available in the same view. * --ring: dump a given ring and display its disassembly. * --read: read a register and display its raw value and the individual bits. Register can also be auto-refreshed with a configurable frequency (default: 5 sec). * --write: update a register value, by modifing the raw 32 bits value or individual bits Limitations: * mostly tested on Navi10 * lacks most error checking in the GUI
Loading