https://github.com/xboxdev/nv2a-trace
A tracing software like apitrace for the original Xbox GPU
https://github.com/xboxdev/nv2a-trace
debugger gpu graphics nv2a xbox
Last synced: 11 months ago
JSON representation
A tracing software like apitrace for the original Xbox GPU
- Host: GitHub
- URL: https://github.com/xboxdev/nv2a-trace
- Owner: XboxDev
- License: mit
- Created: 2018-06-27T13:18:46.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-04-08T17:17:05.000Z (almost 4 years ago)
- Last Synced: 2025-04-18T06:51:18.904Z (11 months ago)
- Topics: debugger, gpu, graphics, nv2a, xbox
- Language: Python
- Size: 113 KB
- Stars: 27
- Watchers: 8
- Forks: 5
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Warning
This is preliminary software. Don't expect anything to work.
Also see [issues](https://github.com/XboxDev/nv2a-trace/issues).
As this accesses your Xbox hardware directly, it *could* do permanent damage.
Use at your own risk, don't do anything stupid.
It is also known to be unstable and can behave randomly.
## nv2a-trace
nv2a-trace is similar to [apitrace](https://github.com/apitrace/apitrace), but targeting the Xbox GPU instead of desktop graphics APIs.
nv2a-trace runs remotely on a development machine.
It allows you to stop your Xbox GPU command stream and inspect each GPU method before execution.
It uses [xboxpy](https://github.com/XboxDev/xboxpy) to connect to a target Xbox.
nv2a-trace can dump intermediate rendering steps like this:

Currently, most output will be send to PNG files in the "out" folder.
Additionally a "debug.html" will be created which shows the captured commands.
This output format is a temporary solution.
Eventually there'll be one of the following:
* GUI, and tracing and UI will be largely decoupled.
* Parsable output ASCII format which automatically acts as UI.
There is currently no parsable trace-file output, and replaying traces is not possible.
### Usage
This project uses [xboxpy](https://github.com/XboxDev/xboxpy).
Please read its documentation to find out how to install and configure it for your Xbox.
Afterwards, you can run these commands:
```
git clone https://github.com/XboxDev/nv2a-trace.git
cd nv2a-trace
python3 -u nv2a-trace.py
```
The last line will run nv2a-trace and connect to your Xbox.
It will automatically start tracing.
**This tool may also (temporarily) corrupt the state of your Xbox.**
If this tool does not work, please retry a couple of times.
### Contributing
This project uses [Black](https://pypi.org/project/black/) for automatic formatting.
You can use the pre-commit in the `githooks` directory to reformat any changes on commit
or run the tool manually prior to creating a PR. In cases where you feel readability is
significantly better with manual formatting, you may surround the code with
`# fmt: off` / `# fmt: on` comments, but this should be a rare exception.
---
**(C) 2018 XboxDev maintainers**