mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2024-11-26 19:54:33 +08:00
docs: Add documentation for gpuvis.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22505>
This commit is contained in:
parent
4eb57ab97a
commit
c2d3d655b8
@ -8,3 +8,4 @@ TODO: Add general tips for performance measurement.
|
||||
|
||||
u_trace
|
||||
perfetto
|
||||
gpuvis
|
||||
|
67
docs/gpuvis.rst
Normal file
67
docs/gpuvis.rst
Normal file
@ -0,0 +1,67 @@
|
||||
Gpuvis Tracing Annotations
|
||||
==========================
|
||||
|
||||
`Gpuvis <https://github.com/mikesart/gpuvis>`__ is a tool to visualize ftrace
|
||||
traces, with support for most GPU drivers to show GPU activity.
|
||||
|
||||
Mesa can emit trace markers to be displayed in Gpuvis, which is useful for
|
||||
figuring out why e.g. stalls are happening.
|
||||
|
||||
Run on Linux
|
||||
------------
|
||||
|
||||
Any traces can be made with trace-cmd. The Gpuvis repository contains
|
||||
`scripts <https://github.com/mikesart/gpuvis/tree/master/sample>`__ for
|
||||
configuring the markers needed for GPU events. To start tracing:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sh trace-cmd-setup.sh && sh trace-cmd-start-tracing.sh
|
||||
# Start your game etc. Then to capture a trace
|
||||
sh trace-cmd-capture.sh
|
||||
# and to finally stop
|
||||
sh trace-cmd-stop-tracing.sh
|
||||
|
||||
The resulting trace file can be opened with Gpuvis.
|
||||
|
||||
Run on Steamos
|
||||
--------------
|
||||
|
||||
Steamos includes a script (`gpu-trace <https://github.com/lostgoat/gpu-trace>`__)
|
||||
to capture traces.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo gpu-trace
|
||||
# Press Ctrl+C to stop capture and open report in gpuvis
|
||||
|
||||
Note that on Steamos gpuvis is actually not installed by default, but the
|
||||
script does write a gpu-trace.zip file in the current working directory. To
|
||||
open it you'll want to do the following on your development machine:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
scp sd-host:gpu-trace.zip ./
|
||||
unzip gpu-trace.zip
|
||||
./trace-cmd convert -i *.dat -o converted.dat --compression none --file-version 6
|
||||
gpuvis *.json converted.dat
|
||||
|
||||
The main advantage of the gpu-trace script is that it has an integration with
|
||||
perf, so Gpuvis can also visualize perf samples in the timeline. Note that the
|
||||
perf file is preprocessed before being put into the zip file, so the trace is
|
||||
portable between machines.
|
||||
|
||||
|
||||
Annotations in Steam games
|
||||
--------------------------
|
||||
|
||||
Steam games are run in a container, and need the environment variable
|
||||
PRESSURE_VESSEL_DEVEL=1 to set up the tracing filesystem so the trace marker
|
||||
can be written. This can e.g. be done by going to the game properties in
|
||||
Steam and setting the command line to
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
PRESSURE_VESSEL_DEVEL=1 %command%
|
||||
|
||||
Then you can run the game as usual, and the driver will write trace annotations.
|
Loading…
Reference in New Issue
Block a user