summaryrefslogtreecommitdiff
path: root/src/gallium/docs/source/debugging.rst
blob: f29bf53dfec1f25162d20a9e9cda6a6b3d35e54d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
Debugging
=========

Debugging utilities in gallium.

Debug Variables
^^^^^^^^^^^^^^^

All drivers respond to a couple of debug enviromental variables. Below is
a collection of them. Set them as you would any normal enviromental variable
for the platform/operating system you are running. For linux this can be
done by typing "export var=value" into a console and then running the
program from that console.

Common
""""""

.. envvar:: GALLIUM_PRINT_OPTIONS <bool> (false)

This options controls if the debug variables should be printed to stderr.
This is probably the most usefull variable since it allows you to find
which variables a driver responds to.

.. envvar:: GALLIUM_RBUG <bool> (false)

Controls if the :ref:`rbug` should be used.

.. envvar:: GALLIUM_TRACE <string> ("")

If not set tracing is not used, if set it will write the output to the file
specifed by the variable. So setting it to "trace.xml" will write the output
to the file "trace.xml".

.. envvar:: GALLIUM_DUMP_CPU <bool> (false)

Dump information about the current cpu that the driver is running on.

.. envvar:: TGSI_PRINT_SANITY <bool> (false)

Gallium has a inbuilt shader sanity checker, this option controls if results
from it should be printed. This include warnings such as unused variables.

.. envvar:: DRAW_USE_LLVM <bool> (false)

Should the :ref:`draw` module use llvm for vertex and geometry shaders.

.. envvar:: ST_DEBUG <flags> (0x0)

Debug :ref:`flags` for the GL state tracker.


Driver specific
"""""""""""""""

.. envvar:: I915_DEBUG <flags> (0x0)

Debug :ref:`flags` for the i915 driver.

.. envvar:: I915_NO_HW <bool> (false)

Stop the i915 driver from submitting commands to the hardware.

.. envvar:: I915_DUMP_CMD <bool> (false)

Dump all commands going to the hardware.

.. envvar:: LP_DEBUG <flags> (0x0)

Debug :ref:`flags` for the llvmpipe driver.

.. envvar:: LP_NUM_THREADS <int> (num cpus)

Number of threads that the llvmpipe driver should use.


.. _flags:

Flags
"""""

The variables of type <flags> all take a string with comma seperated
flags to enable different debugging for different parts of the drivers
or state tracker. If set to "help" the driver will print a list of flags
to which the variable can be set to. Order does not matter.


.. _rbug:

Remote Debugger
^^^^^^^^^^^^^^^

Or rbug for short allows for runtime inspections of :ref:`Context`,
:ref:`Screen`, Resources and Shaders; pauseing and stepping of draw calls;
and runtime disable and replacement of shaders. Is used with rbug-gui which
is hosted outside of the main mesa repositor. Rbug is can be used over a
network connection so the debbuger does not need to be on the same machine.