2.1 KiB
GPU Documentation
Options
General
See the top of src/xenia/gpu/gpu.cc.
--vsync=false
will attempt to render the game as fast as possible instead of
waiting for a fixed 60hz timer.
OpenGL
See the top of src/xenia/gpu/gl4/gl4_gpu.cc.
Buggy GL implementations can benefit from --thread_safe_gl
.
Tools
Shader Dumps
Adding --dump_shaders=path/
will write all translated shaders to the given
path with names based on input hash (so they'll be stable across runs).
xe-gpu-trace-viewer
To quickly iterate on graphical issues, xenia can dump frames (or sequences of frames) while running that can be opened and inspected in a separate app.
The basic workflow is:
- Capture the frame in game (using F4) or a stream of frames.
- Add the file path to the xe-gpu-trace-viewer Debugging command line in Visual Studio.
- Launch xe-gpu-trace-viewer.
- Poke around, find issues, etc.
- Modify code.
- Build and relaunch.
- Goto 4.
Capturing Frames
First, specify a path to capture traces to with
--trace_gpu_prefix=path/file_prefix_
. All files will have a randomish name
based on that.
When running xenia.exe you can hit F4 at any time to capture the next frame the game tries to draw (up until a VdSwap call). The file can be used immediately.
Capturing Sequences
Passing --trace_gpu_stream
will write all frames rendered to a file, allowing
you to seek through them in the trace viewer. These files will get large.
References
Command Buffer/Registers
Shaders
- LLVM R600 Tables ** The opcode formats don't match, but the name->psuedo code is correct.
- xemit
Tools
apitrace
apitrace can be used to capture and replay D3D11
call streams. To disable stdout spew first set XE_OPTION_ENABLE_LOGGING
to 0
in logging.h
.