xref: /aosp_15_r20/external/mesa3d/docs/envvars.rst (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard WorkerEnvironment Variables
2*61046927SAndroid Build Coastguard Worker=====================
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard WorkerNormally, no environment variables need to be set. Most of the
5*61046927SAndroid Build Coastguard Workerenvironment variables used by Mesa/Gallium are for debugging purposes,
6*61046927SAndroid Build Coastguard Workerbut they can sometimes be useful for debugging end-user issues.
7*61046927SAndroid Build Coastguard Worker
8*61046927SAndroid Build Coastguard WorkerLibGL environment variables
9*61046927SAndroid Build Coastguard Worker---------------------------
10*61046927SAndroid Build Coastguard Worker
11*61046927SAndroid Build Coastguard Worker.. envvar:: LIBGL_DEBUG
12*61046927SAndroid Build Coastguard Worker
13*61046927SAndroid Build Coastguard Worker   If defined debug information will be printed to stderr. If set to
14*61046927SAndroid Build Coastguard Worker   ``verbose`` additional information will be printed.
15*61046927SAndroid Build Coastguard Worker
16*61046927SAndroid Build Coastguard Worker.. envvar:: LIBGL_ALWAYS_INDIRECT
17*61046927SAndroid Build Coastguard Worker
18*61046927SAndroid Build Coastguard Worker   if set to ``true``, forces an indirect rendering context/connection.
19*61046927SAndroid Build Coastguard Worker
20*61046927SAndroid Build Coastguard Worker.. envvar:: LIBGL_ALWAYS_SOFTWARE
21*61046927SAndroid Build Coastguard Worker
22*61046927SAndroid Build Coastguard Worker   if set to ``true``, always use software rendering
23*61046927SAndroid Build Coastguard Worker
24*61046927SAndroid Build Coastguard Worker.. envvar:: LIBGL_NO_DRAWARRAYS
25*61046927SAndroid Build Coastguard Worker
26*61046927SAndroid Build Coastguard Worker   if set to ``true``, do not use DrawArrays GLX protocol (for
27*61046927SAndroid Build Coastguard Worker   debugging)
28*61046927SAndroid Build Coastguard Worker
29*61046927SAndroid Build Coastguard Worker.. envvar:: LIBGL_DRI2_DISABLE
30*61046927SAndroid Build Coastguard Worker
31*61046927SAndroid Build Coastguard Worker   disable DRI2 if set to ``true``.
32*61046927SAndroid Build Coastguard Worker
33*61046927SAndroid Build Coastguard Worker.. envvar:: LIBGL_DRI3_DISABLE
34*61046927SAndroid Build Coastguard Worker
35*61046927SAndroid Build Coastguard Worker   disable DRI3 if set to ``true``.
36*61046927SAndroid Build Coastguard Worker
37*61046927SAndroid Build Coastguard Worker.. envvar:: LIBGL_KOPPER_DISABLE
38*61046927SAndroid Build Coastguard Worker
39*61046927SAndroid Build Coastguard Worker   disable Vulkan swapchains with Zink if set to ``true``.
40*61046927SAndroid Build Coastguard Worker   In general, this should not be used unless you know what you are
41*61046927SAndroid Build Coastguard Worker   doing. Some examples of "knowing what you are doing" include:
42*61046927SAndroid Build Coastguard Worker   - using a VK driver which has no WSI implementation for your display server
43*61046927SAndroid Build Coastguard Worker   - profiling the DRI frontend against your VK driver's WSI implementation
44*61046927SAndroid Build Coastguard Worker
45*61046927SAndroid Build Coastguard Worker.. envvar:: LIBGL_KOPPER_DRI2
46*61046927SAndroid Build Coastguard Worker
47*61046927SAndroid Build Coastguard Worker   disable DRI3 with Zink if set to ``true``.
48*61046927SAndroid Build Coastguard Worker   In general, this should not be used unless you know what you are
49*61046927SAndroid Build Coastguard Worker   doing. Some examples of "knowing what you are doing" include:
50*61046927SAndroid Build Coastguard Worker   - running xrdp
51*61046927SAndroid Build Coastguard Worker   - using a VK driver which doesn't support modifiers
52*61046927SAndroid Build Coastguard Worker
53*61046927SAndroid Build Coastguard WorkerCore Mesa environment variables
54*61046927SAndroid Build Coastguard Worker-------------------------------
55*61046927SAndroid Build Coastguard Worker
56*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_NO_ERROR
57*61046927SAndroid Build Coastguard Worker
58*61046927SAndroid Build Coastguard Worker   if set to 1, error checking is disabled as per :ext:`GL_KHR_no_error`.
59*61046927SAndroid Build Coastguard Worker   This will result in undefined behavior for invalid use of the API, but
60*61046927SAndroid Build Coastguard Worker   can reduce CPU use for apps that are known to be error free.
61*61046927SAndroid Build Coastguard Worker
62*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_DEBUG
63*61046927SAndroid Build Coastguard Worker
64*61046927SAndroid Build Coastguard Worker   if set, error messages are printed to stderr. For example, if the
65*61046927SAndroid Build Coastguard Worker   application generates a ``GL_INVALID_ENUM`` error, a corresponding
66*61046927SAndroid Build Coastguard Worker   error message indicating where the error occurred, and possibly why,
67*61046927SAndroid Build Coastguard Worker   will be printed to stderr. For release builds, :envvar:`MESA_DEBUG`
68*61046927SAndroid Build Coastguard Worker   defaults to off (no debug output). :envvar:`MESA_DEBUG` accepts the
69*61046927SAndroid Build Coastguard Worker   following comma-separated list of named flags, which adds extra
70*61046927SAndroid Build Coastguard Worker   behavior to just set :envvar:`MESA_DEBUG` to ``1``:
71*61046927SAndroid Build Coastguard Worker
72*61046927SAndroid Build Coastguard Worker   ``silent``
73*61046927SAndroid Build Coastguard Worker      turn off debug messages. Only useful for debug builds.
74*61046927SAndroid Build Coastguard Worker   ``flush``
75*61046927SAndroid Build Coastguard Worker      flush after each drawing command
76*61046927SAndroid Build Coastguard Worker   ``incomplete_tex``
77*61046927SAndroid Build Coastguard Worker      extra debug messages when a texture is incomplete
78*61046927SAndroid Build Coastguard Worker   ``incomplete_fbo``
79*61046927SAndroid Build Coastguard Worker      extra debug messages when a FBO is incomplete
80*61046927SAndroid Build Coastguard Worker   ``context``
81*61046927SAndroid Build Coastguard Worker      create a debug context (see ``GLX_CONTEXT_DEBUG_BIT_ARB``) and
82*61046927SAndroid Build Coastguard Worker      print error and performance messages to stderr (or
83*61046927SAndroid Build Coastguard Worker      ``MESA_LOG_FILE``).
84*61046927SAndroid Build Coastguard Worker
85*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_PROCESS_NAME
86*61046927SAndroid Build Coastguard Worker
87*61046927SAndroid Build Coastguard Worker   if set, overrides the process name string used internally for various
88*61046927SAndroid Build Coastguard Worker   purposes (e.g. for driconf option matching, logging, artifact storage,
89*61046927SAndroid Build Coastguard Worker   etc.).
90*61046927SAndroid Build Coastguard Worker
91*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_LOG_FILE
92*61046927SAndroid Build Coastguard Worker
93*61046927SAndroid Build Coastguard Worker   specifies a file name for logging all errors, warnings, etc., rather
94*61046927SAndroid Build Coastguard Worker   than stderr
95*61046927SAndroid Build Coastguard Worker
96*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_EXTENSION_OVERRIDE
97*61046927SAndroid Build Coastguard Worker
98*61046927SAndroid Build Coastguard Worker   can be used to enable/disable extensions. A value such as
99*61046927SAndroid Build Coastguard Worker   ``GL_EXT_foo -GL_EXT_bar`` will enable the ``GL_EXT_foo`` extension
100*61046927SAndroid Build Coastguard Worker   and disable the ``GL_EXT_bar`` extension. Note that this will override
101*61046927SAndroid Build Coastguard Worker   extensions override configured using driconf.
102*61046927SAndroid Build Coastguard Worker
103*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_EXTENSION_MAX_YEAR
104*61046927SAndroid Build Coastguard Worker
105*61046927SAndroid Build Coastguard Worker   The ``GL_EXTENSIONS`` string returned by Mesa is sorted by extension
106*61046927SAndroid Build Coastguard Worker   year. If this variable is set to year X, only extensions defined on
107*61046927SAndroid Build Coastguard Worker   or before year X will be reported. This is to work-around a bug in
108*61046927SAndroid Build Coastguard Worker   some games where the extension string is copied into a fixed-size
109*61046927SAndroid Build Coastguard Worker   buffer without truncating. If the extension string is too long, the
110*61046927SAndroid Build Coastguard Worker   buffer overrun can cause the game to crash. This is a work-around for
111*61046927SAndroid Build Coastguard Worker   that.
112*61046927SAndroid Build Coastguard Worker
113*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_GL_VERSION_OVERRIDE
114*61046927SAndroid Build Coastguard Worker
115*61046927SAndroid Build Coastguard Worker   changes the value returned by ``glGetString(GL_VERSION)`` and
116*61046927SAndroid Build Coastguard Worker   possibly the GL API type.
117*61046927SAndroid Build Coastguard Worker
118*61046927SAndroid Build Coastguard Worker   -  The format should be ``MAJOR.MINOR[FC|COMPAT]``
119*61046927SAndroid Build Coastguard Worker   -  ``FC`` is an optional suffix that indicates a forward compatible
120*61046927SAndroid Build Coastguard Worker      context. This is only valid for versions >= 3.0.
121*61046927SAndroid Build Coastguard Worker   -  ``COMPAT`` is an optional suffix that indicates a compatibility
122*61046927SAndroid Build Coastguard Worker      context or :ext:`GL_ARB_compatibility` support. This is only valid
123*61046927SAndroid Build Coastguard Worker      for versions >= 3.1.
124*61046927SAndroid Build Coastguard Worker   -  GL versions <= 3.0 are set to a compatibility (non-Core) profile
125*61046927SAndroid Build Coastguard Worker   -  GL versions = 3.1, depending on the driver, it may or may not have
126*61046927SAndroid Build Coastguard Worker      the :ext:`GL_ARB_compatibility` extension enabled.
127*61046927SAndroid Build Coastguard Worker   -  GL versions >= 3.2 are set to a Core profile
128*61046927SAndroid Build Coastguard Worker   -  Examples:
129*61046927SAndroid Build Coastguard Worker
130*61046927SAndroid Build Coastguard Worker      ``2.1``
131*61046927SAndroid Build Coastguard Worker         select a compatibility (non-Core) profile with GL version 2.1.
132*61046927SAndroid Build Coastguard Worker      ``3.0``
133*61046927SAndroid Build Coastguard Worker         select a compatibility (non-Core) profile with GL version 3.0.
134*61046927SAndroid Build Coastguard Worker      ``3.0FC``
135*61046927SAndroid Build Coastguard Worker         select a Core+Forward Compatible profile with GL version 3.0.
136*61046927SAndroid Build Coastguard Worker      ``3.1``
137*61046927SAndroid Build Coastguard Worker         select GL version 3.1 with :ext:`GL_ARB_compatibility` enabled
138*61046927SAndroid Build Coastguard Worker         per the driver default.
139*61046927SAndroid Build Coastguard Worker      ``3.1FC``
140*61046927SAndroid Build Coastguard Worker         select GL version 3.1 with forward compatibility and
141*61046927SAndroid Build Coastguard Worker         :ext:`GL_ARB_compatibility` disabled.
142*61046927SAndroid Build Coastguard Worker      ``3.1COMPAT``
143*61046927SAndroid Build Coastguard Worker         select GL version 3.1 with :ext:`GL_ARB_compatibility` enabled.
144*61046927SAndroid Build Coastguard Worker      ``X.Y``
145*61046927SAndroid Build Coastguard Worker         override GL version to X.Y without changing the profile.
146*61046927SAndroid Build Coastguard Worker      ``X.YFC``
147*61046927SAndroid Build Coastguard Worker         select a Core+Forward Compatible profile with GL version X.Y.
148*61046927SAndroid Build Coastguard Worker      ``X.YCOMPAT``
149*61046927SAndroid Build Coastguard Worker         select a Compatibility profile with GL version X.Y.
150*61046927SAndroid Build Coastguard Worker
151*61046927SAndroid Build Coastguard Worker   -  Mesa may not really implement all the features of the given
152*61046927SAndroid Build Coastguard Worker      version. (for developers only)
153*61046927SAndroid Build Coastguard Worker
154*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_GLES_VERSION_OVERRIDE
155*61046927SAndroid Build Coastguard Worker
156*61046927SAndroid Build Coastguard Worker   changes the value returned by ``glGetString(GL_VERSION)`` for OpenGL
157*61046927SAndroid Build Coastguard Worker   ES.
158*61046927SAndroid Build Coastguard Worker
159*61046927SAndroid Build Coastguard Worker   -  The format should be ``MAJOR.MINOR``
160*61046927SAndroid Build Coastguard Worker   -  Examples: ``2.0``, ``3.0``, ``3.1``
161*61046927SAndroid Build Coastguard Worker   -  Mesa may not really implement all the features of the given
162*61046927SAndroid Build Coastguard Worker      version. (for developers only)
163*61046927SAndroid Build Coastguard Worker
164*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_GLSL_VERSION_OVERRIDE
165*61046927SAndroid Build Coastguard Worker
166*61046927SAndroid Build Coastguard Worker   changes the value returned by
167*61046927SAndroid Build Coastguard Worker   ``glGetString(GL_SHADING_LANGUAGE_VERSION)``. Valid values are
168*61046927SAndroid Build Coastguard Worker   integers, such as ``130``. Mesa will not really implement all the
169*61046927SAndroid Build Coastguard Worker   features of the given language version if it's higher than what's
170*61046927SAndroid Build Coastguard Worker   normally reported. (for developers only)
171*61046927SAndroid Build Coastguard Worker
172*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_DRICONF_EXECUTABLE_OVERRIDE
173*61046927SAndroid Build Coastguard Worker
174*61046927SAndroid Build Coastguard Worker   if set, overrides the "executable" string used specifically for driconf
175*61046927SAndroid Build Coastguard Worker   option matching. This takes higher precedence over more general process
176*61046927SAndroid Build Coastguard Worker   name override (e.g. MESA_PROCESS_NAME).
177*61046927SAndroid Build Coastguard Worker
178*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_SHADER_CACHE_DISABLE
179*61046927SAndroid Build Coastguard Worker
180*61046927SAndroid Build Coastguard Worker   if set to ``true``, disables the on-disk shader cache. If set to
181*61046927SAndroid Build Coastguard Worker   ``false``, enables the on-disk shader cache when it is disabled by
182*61046927SAndroid Build Coastguard Worker   default.  Note that EGL_ANDROID_blob_cache is still enabled even
183*61046927SAndroid Build Coastguard Worker   if on-disk shader cache is disabled.
184*61046927SAndroid Build Coastguard Worker
185*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_SHADER_CACHE_MAX_SIZE
186*61046927SAndroid Build Coastguard Worker
187*61046927SAndroid Build Coastguard Worker   if set, determines the maximum size of the on-disk cache of compiled
188*61046927SAndroid Build Coastguard Worker   shader programs. Should be set to a number optionally followed by
189*61046927SAndroid Build Coastguard Worker   ``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or
190*61046927SAndroid Build Coastguard Worker   gigabytes. By default, gigabytes will be assumed. And if unset, a
191*61046927SAndroid Build Coastguard Worker   maximum size of 1GB will be used.
192*61046927SAndroid Build Coastguard Worker
193*61046927SAndroid Build Coastguard Worker   .. note::
194*61046927SAndroid Build Coastguard Worker
195*61046927SAndroid Build Coastguard Worker      A separate cache might be created for each architecture that Mesa is
196*61046927SAndroid Build Coastguard Worker      installed for on your system. For example under the default settings
197*61046927SAndroid Build Coastguard Worker      you may end up with a 1GB cache for x86_64 and another 1GB cache for
198*61046927SAndroid Build Coastguard Worker      i386.
199*61046927SAndroid Build Coastguard Worker
200*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_SHADER_CACHE_DIR
201*61046927SAndroid Build Coastguard Worker
202*61046927SAndroid Build Coastguard Worker   if set, determines the directory to be used for the on-disk cache of
203*61046927SAndroid Build Coastguard Worker   compiled shader programs. If this variable is not set, then the cache
204*61046927SAndroid Build Coastguard Worker   will be stored in ``$XDG_CACHE_HOME/mesa_shader_cache_db`` (if that
205*61046927SAndroid Build Coastguard Worker   variable is set), or else within ``.cache/mesa_shader_cache_db`` within
206*61046927SAndroid Build Coastguard Worker   the user's home directory.
207*61046927SAndroid Build Coastguard Worker
208*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_SHADER_CACHE_SHOW_STATS
209*61046927SAndroid Build Coastguard Worker
210*61046927SAndroid Build Coastguard Worker   if set to ``true``, keeps hit/miss statistics for the shader cache.
211*61046927SAndroid Build Coastguard Worker   These statistics are printed when the app terminates.
212*61046927SAndroid Build Coastguard Worker
213*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_DISK_CACHE_SINGLE_FILE
214*61046927SAndroid Build Coastguard Worker
215*61046927SAndroid Build Coastguard Worker   if set to 1, enables the single file Fossilize DB on-disk shader
216*61046927SAndroid Build Coastguard Worker   cache implementation instead of the default Mesa-DB cache
217*61046927SAndroid Build Coastguard Worker   implementation. This implementation allows for loading of precompiled
218*61046927SAndroid Build Coastguard Worker   cache DBs via :envvar:`MESA_DISK_CACHE_READ_ONLY_FOZ_DBS` or
219*61046927SAndroid Build Coastguard Worker   :envvar:`MESA_DISK_CACHE_READ_ONLY_FOZ_DBS_DYNAMIC_LIST`. This
220*61046927SAndroid Build Coastguard Worker   implementation does not support cache size limits via
221*61046927SAndroid Build Coastguard Worker   :envvar:`MESA_SHADER_CACHE_MAX_SIZE`. If
222*61046927SAndroid Build Coastguard Worker   :envvar:`MESA_SHADER_CACHE_DIR` is not set, the cache will be stored
223*61046927SAndroid Build Coastguard Worker   in ``$XDG_CACHE_HOME/mesa_shader_cache_sf`` (if that variable is set)
224*61046927SAndroid Build Coastguard Worker   or else within ``.cache/mesa_shader_cache_sf`` within the user's home
225*61046927SAndroid Build Coastguard Worker   directory.
226*61046927SAndroid Build Coastguard Worker
227*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_DISK_CACHE_MULTI_FILE
228*61046927SAndroid Build Coastguard Worker
229*61046927SAndroid Build Coastguard Worker   if set to 1, enables the multi file on-disk shader cache implementation
230*61046927SAndroid Build Coastguard Worker   instead of the default Mesa-DB cache implementation.
231*61046927SAndroid Build Coastguard Worker   This implementation increases the overall disk usage.
232*61046927SAndroid Build Coastguard Worker   If :envvar:`MESA_SHADER_CACHE_DIR` is not set, the cache will be stored
233*61046927SAndroid Build Coastguard Worker   in ``$XDG_CACHE_HOME/mesa_shader_cache`` (if that variable is set)
234*61046927SAndroid Build Coastguard Worker   or else within ``.cache/mesa_shader_cache`` within the user's home
235*61046927SAndroid Build Coastguard Worker   directory.
236*61046927SAndroid Build Coastguard Worker
237*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_DISK_CACHE_READ_ONLY_FOZ_DBS
238*61046927SAndroid Build Coastguard Worker
239*61046927SAndroid Build Coastguard Worker   if set with :envvar:`MESA_DISK_CACHE_SINGLE_FILE` enabled, references
240*61046927SAndroid Build Coastguard Worker   a string of comma separated file paths to read only Fossilize DB
241*61046927SAndroid Build Coastguard Worker   shader caches for loading at initialization. The file paths are
242*61046927SAndroid Build Coastguard Worker   relative to the cache directory and do not include suffixes,
243*61046927SAndroid Build Coastguard Worker   referencing both the cache DB and its index file. E.g.
244*61046927SAndroid Build Coastguard Worker   ``MESA_DISK_CACHE_SINGLE_FILE=filename1`` refers to ``filename1.foz``
245*61046927SAndroid Build Coastguard Worker   and ``filename1_idx.foz``. A limit of 8 DBs can be loaded and this limit
246*61046927SAndroid Build Coastguard Worker   is shared with :envvar:`MESA_DISK_CACHE_READ_ONLY_FOZ_DBS_DYNAMIC_LIST`.
247*61046927SAndroid Build Coastguard Worker
248*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_DISK_CACHE_DATABASE_NUM_PARTS
249*61046927SAndroid Build Coastguard Worker
250*61046927SAndroid Build Coastguard Worker   specifies number of mesa-db cache parts, default is 50.
251*61046927SAndroid Build Coastguard Worker
252*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_DISK_CACHE_DATABASE_EVICTION_SCORE_2X_PERIOD
253*61046927SAndroid Build Coastguard Worker
254*61046927SAndroid Build Coastguard Worker   Mesa-DB cache eviction algorithm calculates weighted score for the
255*61046927SAndroid Build Coastguard Worker   cache items. The weight is doubled based on the last access time of
256*61046927SAndroid Build Coastguard Worker   cache entry. By default period of weight doubling is set to one month.
257*61046927SAndroid Build Coastguard Worker   Period value is given in seconds.
258*61046927SAndroid Build Coastguard Worker
259*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_DISK_CACHE_READ_ONLY_FOZ_DBS_DYNAMIC_LIST
260*61046927SAndroid Build Coastguard Worker
261*61046927SAndroid Build Coastguard Worker   if set with :envvar:`MESA_DISK_CACHE_SINGLE_FILE` enabled, references
262*61046927SAndroid Build Coastguard Worker   a text file that contains a new-line separated list of read only
263*61046927SAndroid Build Coastguard Worker   Fossilize DB shader caches to load. The list file is modifiable at
264*61046927SAndroid Build Coastguard Worker   runtime to allow for loading read only caches after initialization
265*61046927SAndroid Build Coastguard Worker   unlike :envvar:`MESA_DISK_CACHE_READ_ONLY_FOZ_DBS`. This variable
266*61046927SAndroid Build Coastguard Worker   takes an absolute path to the list file. The list file must exist at
267*61046927SAndroid Build Coastguard Worker   initialization for updating to occur. Cache files in the list take
268*61046927SAndroid Build Coastguard Worker   relative paths to the current cache directory like
269*61046927SAndroid Build Coastguard Worker   :envvar:`MESA_DISK_CACHE_READ_ONLY_FOZ_DBS`. A limit of 8 DBs can be
270*61046927SAndroid Build Coastguard Worker   loaded and this limit is shared with
271*61046927SAndroid Build Coastguard Worker   :envvar:`MESA_DISK_CACHE_READ_ONLY_FOZ_DBS`.
272*61046927SAndroid Build Coastguard Worker
273*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_DISK_CACHE_COMBINE_RW_WITH_RO_FOZ
274*61046927SAndroid Build Coastguard Worker
275*61046927SAndroid Build Coastguard Worker   if set to 1, enables simultaneous use of :abbr:`RW (read-write)` and
276*61046927SAndroid Build Coastguard Worker   :abbr:`RW (read-write)` Fossilize DB caches. At first, data will be
277*61046927SAndroid Build Coastguard Worker   retrieved from the RO Fossilize cache. If data isn't found in the RO
278*61046927SAndroid Build Coastguard Worker   cache, then it will be retrieved from the RW cache.
279*61046927SAndroid Build Coastguard Worker
280*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_GLSL
281*61046927SAndroid Build Coastguard Worker
282*61046927SAndroid Build Coastguard Worker   :ref:`shading language compiler options <envvars>`
283*61046927SAndroid Build Coastguard Worker
284*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_NO_MINMAX_CACHE
285*61046927SAndroid Build Coastguard Worker
286*61046927SAndroid Build Coastguard Worker   when set, the minmax index cache is globally disabled.
287*61046927SAndroid Build Coastguard Worker
288*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_SHADER_CAPTURE_PATH
289*61046927SAndroid Build Coastguard Worker
290*61046927SAndroid Build Coastguard Worker   see :ref:`Capturing Shaders <capture>`
291*61046927SAndroid Build Coastguard Worker
292*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_SHADER_DUMP_PATH
293*61046927SAndroid Build Coastguard Worker
294*61046927SAndroid Build Coastguard Worker   see :ref:`Experimenting with Shader Replacements <replacement>`
295*61046927SAndroid Build Coastguard Worker
296*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_SHADER_READ_PATH
297*61046927SAndroid Build Coastguard Worker
298*61046927SAndroid Build Coastguard Worker   see :ref:`Experimenting with Shader Replacements <replacement>`
299*61046927SAndroid Build Coastguard Worker
300*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_VK_VERSION_OVERRIDE
301*61046927SAndroid Build Coastguard Worker
302*61046927SAndroid Build Coastguard Worker   changes the Vulkan physical device version as returned in
303*61046927SAndroid Build Coastguard Worker   ``VkPhysicalDeviceProperties::apiVersion``.
304*61046927SAndroid Build Coastguard Worker
305*61046927SAndroid Build Coastguard Worker   -  The format should be ``MAJOR.MINOR[.PATCH]``
306*61046927SAndroid Build Coastguard Worker   -  This will not let you force a version higher than the driver's
307*61046927SAndroid Build Coastguard Worker      instance version as advertised by ``vkEnumerateInstanceVersion``
308*61046927SAndroid Build Coastguard Worker   -  This can be very useful for debugging but some features may not be
309*61046927SAndroid Build Coastguard Worker      implemented correctly. (For developers only)
310*61046927SAndroid Build Coastguard Worker
311*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_VK_WSI_PRESENT_MODE
312*61046927SAndroid Build Coastguard Worker
313*61046927SAndroid Build Coastguard Worker   overrides the WSI present mode clients specify in
314*61046927SAndroid Build Coastguard Worker   ``VkSwapchainCreateInfoKHR::presentMode``. Values can be ``fifo``,
315*61046927SAndroid Build Coastguard Worker   ``relaxed``, ``mailbox`` or ``immediate``.
316*61046927SAndroid Build Coastguard Worker
317*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_VK_WSI_HEADLESS_SWAPCHAIN
318*61046927SAndroid Build Coastguard Worker
319*61046927SAndroid Build Coastguard Worker   Forces all swapchains to be headless (no rendering will be display
320*61046927SAndroid Build Coastguard Worker   in the swapchain's window).
321*61046927SAndroid Build Coastguard Worker
322*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_VK_ABORT_ON_DEVICE_LOSS
323*61046927SAndroid Build Coastguard Worker
324*61046927SAndroid Build Coastguard Worker   causes the Vulkan driver to call abort() immediately after detecting a
325*61046927SAndroid Build Coastguard Worker   lost device.  This is extremely useful when testing as it prevents the
326*61046927SAndroid Build Coastguard Worker   test suite from continuing on with a lost device.
327*61046927SAndroid Build Coastguard Worker
328*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_VK_ENABLE_SUBMIT_THREAD
329*61046927SAndroid Build Coastguard Worker
330*61046927SAndroid Build Coastguard Worker   for Vulkan drivers which support real timeline semaphores, this forces
331*61046927SAndroid Build Coastguard Worker   them to use a submit thread from the beginning, regardless of whether or
332*61046927SAndroid Build Coastguard Worker   not they ever see a wait-before-signal condition.
333*61046927SAndroid Build Coastguard Worker
334*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_VK_DEVICE_SELECT_DEBUG
335*61046927SAndroid Build Coastguard Worker
336*61046927SAndroid Build Coastguard Worker   print debug info about device selection decision-making
337*61046927SAndroid Build Coastguard Worker
338*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_VK_TRACE
339*61046927SAndroid Build Coastguard Worker
340*61046927SAndroid Build Coastguard Worker   A comma-separated list of trace types used for offline analysis. The
341*61046927SAndroid Build Coastguard Worker   option names are equal to the file extension. Traces are dumped into ``/tmp``.
342*61046927SAndroid Build Coastguard Worker   Captures can be triggered by pressing ``F1`` with the application window
343*61046927SAndroid Build Coastguard Worker   focused (Currently X11 only) or via :envvar:`MESA_VK_TRACE_FRAME` and
344*61046927SAndroid Build Coastguard Worker   :envvar:`MESA_VK_TRACE_TRIGGER`.
345*61046927SAndroid Build Coastguard Worker
346*61046927SAndroid Build Coastguard Worker   .. list-table::
347*61046927SAndroid Build Coastguard Worker      :header-rows: 1
348*61046927SAndroid Build Coastguard Worker
349*61046927SAndroid Build Coastguard Worker      * - File extension
350*61046927SAndroid Build Coastguard Worker        - Offline analysis tool
351*61046927SAndroid Build Coastguard Worker        - Supported drivers
352*61046927SAndroid Build Coastguard Worker      * - ``rmv``
353*61046927SAndroid Build Coastguard Worker        - Radeon Memory Visualizer
354*61046927SAndroid Build Coastguard Worker        - ``RADV``
355*61046927SAndroid Build Coastguard Worker      * - ``rgp``
356*61046927SAndroid Build Coastguard Worker        - Radeon GPU Profiler
357*61046927SAndroid Build Coastguard Worker        - ``RADV``
358*61046927SAndroid Build Coastguard Worker      * - ``rra``
359*61046927SAndroid Build Coastguard Worker        - Radeon Raytracing Analyzer
360*61046927SAndroid Build Coastguard Worker        - ``RADV``
361*61046927SAndroid Build Coastguard Worker      * - ``ctxroll``
362*61046927SAndroid Build Coastguard Worker        - Context rolls
363*61046927SAndroid Build Coastguard Worker        - ``RADV``
364*61046927SAndroid Build Coastguard Worker
365*61046927SAndroid Build Coastguard Worker   - Creating RMV captures requires the ``scripts/setup.sh`` script in the
366*61046927SAndroid Build Coastguard Worker     Radeon Developer Tools folder to be run beforehand
367*61046927SAndroid Build Coastguard Worker
368*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_VK_TRACE_FRAME
369*61046927SAndroid Build Coastguard Worker
370*61046927SAndroid Build Coastguard Worker   Specifies a frame index at which a trace capture is automatically triggered.
371*61046927SAndroid Build Coastguard Worker
372*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_VK_TRACE_TRIGGER
373*61046927SAndroid Build Coastguard Worker
374*61046927SAndroid Build Coastguard Worker   Specifies a trigger file. Creating the file triggers the capture. (e.g.
375*61046927SAndroid Build Coastguard Worker   ``export MESA_VK_TRACE_TRIGGER=/tmp/trigger`` and then ``touch /tmp/trigger``)
376*61046927SAndroid Build Coastguard Worker
377*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_LOADER_DRIVER_OVERRIDE
378*61046927SAndroid Build Coastguard Worker
379*61046927SAndroid Build Coastguard Worker   chooses a different driver binary such as ``etnaviv`` or ``zink``.
380*61046927SAndroid Build Coastguard Worker
381*61046927SAndroid Build Coastguard Worker.. envvar:: DRI_PRIME_DEBUG
382*61046927SAndroid Build Coastguard Worker
383*61046927SAndroid Build Coastguard Worker   print debug info about device selection decision-making
384*61046927SAndroid Build Coastguard Worker
385*61046927SAndroid Build Coastguard Worker.. envvar:: DRI_PRIME
386*61046927SAndroid Build Coastguard Worker
387*61046927SAndroid Build Coastguard Worker   the default GPU is the one used by Wayland/Xorg or the one connected to a
388*61046927SAndroid Build Coastguard Worker   display. This variable allows to select a different GPU. It applies to OpenGL
389*61046927SAndroid Build Coastguard Worker   and Vulkan (in this case "select" means the GPU will be first in the reported
390*61046927SAndroid Build Coastguard Worker   physical devices list). The supported syntaxes are:
391*61046927SAndroid Build Coastguard Worker
392*61046927SAndroid Build Coastguard Worker   - ``DRI_PRIME=N``: selects the Nth non-default GPU (N > 0).
393*61046927SAndroid Build Coastguard Worker   - ``DRI_PRIME=pci-0000_02_00_0``: selects the GPU connected to this PCIe bus
394*61046927SAndroid Build Coastguard Worker   - ``DRI_PRIME=vendor_id:device_id``: selects the first GPU matching these ids.
395*61046927SAndroid Build Coastguard Worker
396*61046927SAndroid Build Coastguard Worker   For Vulkan it's possible to append ``!``, in which case only the selected GPU
397*61046927SAndroid Build Coastguard Worker   will be exposed to the application (e.g.: DRI_PRIME=1!).
398*61046927SAndroid Build Coastguard Worker
399*61046927SAndroid Build Coastguard Worker   .. note::
400*61046927SAndroid Build Coastguard Worker
401*61046927SAndroid Build Coastguard Worker      ``lspci -nn | grep VGA`` can be used to know the PCIe bus or ids to use.
402*61046927SAndroid Build Coastguard Worker
403*61046927SAndroid Build Coastguard Worker.. envvar:: DRIRC_CONFIGDIR
404*61046927SAndroid Build Coastguard Worker
405*61046927SAndroid Build Coastguard Worker   If set, overrides the global search-directories used when searching for
406*61046927SAndroid Build Coastguard Worker   drirc config files. The user-local one will still be used. Mostly useful for
407*61046927SAndroid Build Coastguard Worker   internal debugging.
408*61046927SAndroid Build Coastguard Worker
409*61046927SAndroid Build Coastguard WorkerNIR passes environment variables
410*61046927SAndroid Build Coastguard Worker--------------------------------
411*61046927SAndroid Build Coastguard Worker
412*61046927SAndroid Build Coastguard WorkerThe following are only applicable for drivers that uses NIR, as they
413*61046927SAndroid Build Coastguard Workermodify the behavior for the common ``NIR_PASS`` and ``NIR_PASS_V`` macros,
414*61046927SAndroid Build Coastguard Workerthat wrap calls to NIR lowering/optimizations.
415*61046927SAndroid Build Coastguard Worker
416*61046927SAndroid Build Coastguard Worker.. envvar:: NIR_DEBUG
417*61046927SAndroid Build Coastguard Worker
418*61046927SAndroid Build Coastguard Worker   a comma-separated list of debug options to apply to NIR
419*61046927SAndroid Build Coastguard Worker   shaders. Use ``NIR_DEBUG=help`` to print a list of available options.
420*61046927SAndroid Build Coastguard Worker
421*61046927SAndroid Build Coastguard Worker.. envvar:: NIR_SKIP
422*61046927SAndroid Build Coastguard Worker
423*61046927SAndroid Build Coastguard Worker   a comma-separated list of optimization/lowering passes to skip.
424*61046927SAndroid Build Coastguard Worker
425*61046927SAndroid Build Coastguard WorkerMesa Xlib driver environment variables
426*61046927SAndroid Build Coastguard Worker--------------------------------------
427*61046927SAndroid Build Coastguard Worker
428*61046927SAndroid Build Coastguard WorkerThe following are only applicable to the Mesa Xlib software driver. See
429*61046927SAndroid Build Coastguard Workerthe :doc:`Xlib software driver page <xlibdriver>` for details.
430*61046927SAndroid Build Coastguard Worker
431*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_RGB_VISUAL
432*61046927SAndroid Build Coastguard Worker
433*61046927SAndroid Build Coastguard Worker   specifies the X visual and depth for RGB mode
434*61046927SAndroid Build Coastguard Worker
435*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_BACK_BUFFER
436*61046927SAndroid Build Coastguard Worker
437*61046927SAndroid Build Coastguard Worker   specifies how to implement the back color buffer, either ``pixmap``
438*61046927SAndroid Build Coastguard Worker   or ``ximage``
439*61046927SAndroid Build Coastguard Worker
440*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_XSYNC
441*61046927SAndroid Build Coastguard Worker
442*61046927SAndroid Build Coastguard Worker   enable synchronous X behavior (for debugging only)
443*61046927SAndroid Build Coastguard Worker
444*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_GLX_FORCE_ALPHA
445*61046927SAndroid Build Coastguard Worker
446*61046927SAndroid Build Coastguard Worker   if set, forces RGB windows to have an alpha channel.
447*61046927SAndroid Build Coastguard Worker
448*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_GLX_DEPTH_BITS
449*61046927SAndroid Build Coastguard Worker
450*61046927SAndroid Build Coastguard Worker   specifies default number of bits for depth buffer.
451*61046927SAndroid Build Coastguard Worker
452*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_GLX_ALPHA_BITS
453*61046927SAndroid Build Coastguard Worker
454*61046927SAndroid Build Coastguard Worker   specifies default number of bits for alpha channel.
455*61046927SAndroid Build Coastguard Worker
456*61046927SAndroid Build Coastguard WorkerMesa WGL driver environment variables
457*61046927SAndroid Build Coastguard Worker-------------------------------------
458*61046927SAndroid Build Coastguard Worker
459*61046927SAndroid Build Coastguard WorkerThe following are only applicable to the Mesa WGL driver, which is in use
460*61046927SAndroid Build Coastguard Workeron Windows.
461*61046927SAndroid Build Coastguard Worker
462*61046927SAndroid Build Coastguard Worker.. envvar:: WGL_FORCE_MSAA
463*61046927SAndroid Build Coastguard Worker
464*61046927SAndroid Build Coastguard Worker   if set to a positive value, specifies the number of MSAA samples to
465*61046927SAndroid Build Coastguard Worker   force when choosing the display configuration.
466*61046927SAndroid Build Coastguard Worker
467*61046927SAndroid Build Coastguard Worker.. envvar:: WGL_DISABLE_ERROR_DIALOGS
468*61046927SAndroid Build Coastguard Worker
469*61046927SAndroid Build Coastguard Worker   if set to 1, true or yes, disables Win32 error dialogs. Useful for
470*61046927SAndroid Build Coastguard Worker   automated test-runs.
471*61046927SAndroid Build Coastguard Worker
472*61046927SAndroid Build Coastguard WorkerIntel driver environment variables
473*61046927SAndroid Build Coastguard Worker----------------------------------------------------
474*61046927SAndroid Build Coastguard Worker
475*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_BLACKHOLE_DEFAULT
476*61046927SAndroid Build Coastguard Worker
477*61046927SAndroid Build Coastguard Worker   if set to 1, true or yes, then the OpenGL implementation will
478*61046927SAndroid Build Coastguard Worker   default ``GL_BLACKHOLE_RENDER_INTEL`` to true, thus disabling any
479*61046927SAndroid Build Coastguard Worker   rendering.
480*61046927SAndroid Build Coastguard Worker
481*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_DEBUG
482*61046927SAndroid Build Coastguard Worker
483*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do various things:
484*61046927SAndroid Build Coastguard Worker
485*61046927SAndroid Build Coastguard Worker   ``ann``
486*61046927SAndroid Build Coastguard Worker      annotate IR in assembly dumps
487*61046927SAndroid Build Coastguard Worker   ``bat``
488*61046927SAndroid Build Coastguard Worker      emit batch information. Can control in which frames batches
489*61046927SAndroid Build Coastguard Worker      get dumped using ``INTEL_DEBUG_BATCH_FRAME_*``, where
490*61046927SAndroid Build Coastguard Worker      ``INTEL_DEBUG_BATCH_FRAME_START`` <= frame < ``INTEL_DEBUG_BATCH_FRAME_STOP``
491*61046927SAndroid Build Coastguard Worker   ``blit``
492*61046927SAndroid Build Coastguard Worker      emit messages about blit operations
493*61046927SAndroid Build Coastguard Worker   ``blorp``
494*61046927SAndroid Build Coastguard Worker      emit messages about the blorp operations (blits & clears)
495*61046927SAndroid Build Coastguard Worker   ``buf``
496*61046927SAndroid Build Coastguard Worker      emit messages about buffer objects
497*61046927SAndroid Build Coastguard Worker   ``bt``
498*61046927SAndroid Build Coastguard Worker      emit messages binding tables
499*61046927SAndroid Build Coastguard Worker   ``capture-all``
500*61046927SAndroid Build Coastguard Worker      flag all buffers to be captured by the kernel driver when
501*61046927SAndroid Build Coastguard Worker      generating an error stage after a GPU hang
502*61046927SAndroid Build Coastguard Worker   ``clip``
503*61046927SAndroid Build Coastguard Worker      emit messages about the clip unit (for old gens, includes the CLIP
504*61046927SAndroid Build Coastguard Worker      program)
505*61046927SAndroid Build Coastguard Worker   ``color``
506*61046927SAndroid Build Coastguard Worker      use color in output
507*61046927SAndroid Build Coastguard Worker   ``cs``
508*61046927SAndroid Build Coastguard Worker      dump shader assembly for compute shaders
509*61046927SAndroid Build Coastguard Worker   ``do32``
510*61046927SAndroid Build Coastguard Worker      generate compute shader SIMD32 programs even if workgroup size
511*61046927SAndroid Build Coastguard Worker      doesn't exceed the SIMD16 limit
512*61046927SAndroid Build Coastguard Worker   ``draw_bkp``
513*61046927SAndroid Build Coastguard Worker      Add semaphore wait before/after draw call count.
514*61046927SAndroid Build Coastguard Worker      ``INTEL_DEBUG_BKP_BEFORE_DRAW_COUNT`` or
515*61046927SAndroid Build Coastguard Worker      ``INTEL_DEBUG_BKP_AFTER_DRAW_COUNT`` can control draw call number.
516*61046927SAndroid Build Coastguard Worker      To make test wait forever, we need to set preempt_timeout_ms and
517*61046927SAndroid Build Coastguard Worker      i915.enable_hangcheck to zero.
518*61046927SAndroid Build Coastguard Worker   ``fall``
519*61046927SAndroid Build Coastguard Worker      emit messages about performance issues (same as ``perf``)
520*61046927SAndroid Build Coastguard Worker   ``fs``
521*61046927SAndroid Build Coastguard Worker      dump shader assembly for fragment shaders
522*61046927SAndroid Build Coastguard Worker   ``gs``
523*61046927SAndroid Build Coastguard Worker      dump shader assembly for geometry shaders
524*61046927SAndroid Build Coastguard Worker   ``heaps``
525*61046927SAndroid Build Coastguard Worker      print information about the driver's heaps (ANV only)
526*61046927SAndroid Build Coastguard Worker   ``hex``
527*61046927SAndroid Build Coastguard Worker      print instruction hex dump with the disassembly
528*61046927SAndroid Build Coastguard Worker   ``l3``
529*61046927SAndroid Build Coastguard Worker      emit messages about the new L3 state during transitions
530*61046927SAndroid Build Coastguard Worker   ``mesh``
531*61046927SAndroid Build Coastguard Worker      dump shader assembly for mesh shaders
532*61046927SAndroid Build Coastguard Worker   ``no8``
533*61046927SAndroid Build Coastguard Worker      don't generate SIMD8 fragment shader
534*61046927SAndroid Build Coastguard Worker   ``no16``
535*61046927SAndroid Build Coastguard Worker      suppress generation of 16-wide fragment shaders. useful for
536*61046927SAndroid Build Coastguard Worker      debugging broken shaders
537*61046927SAndroid Build Coastguard Worker   ``no32``
538*61046927SAndroid Build Coastguard Worker      suppress generation of 32-wide fragment shaders. useful for
539*61046927SAndroid Build Coastguard Worker      debugging broken shaders
540*61046927SAndroid Build Coastguard Worker   ``no-oaconfig``
541*61046927SAndroid Build Coastguard Worker      disable HW performance metric configuration, and anything
542*61046927SAndroid Build Coastguard Worker      related to i915-perf (useful when running on simulation)
543*61046927SAndroid Build Coastguard Worker   ``nocompact``
544*61046927SAndroid Build Coastguard Worker      disable instruction compaction
545*61046927SAndroid Build Coastguard Worker   ``nodualobj``
546*61046927SAndroid Build Coastguard Worker      suppress generation of dual-object geometry shader code
547*61046927SAndroid Build Coastguard Worker   ``nofc``
548*61046927SAndroid Build Coastguard Worker      disable fast clears
549*61046927SAndroid Build Coastguard Worker   ``noccs``
550*61046927SAndroid Build Coastguard Worker      disable lossless color compression
551*61046927SAndroid Build Coastguard Worker   ``optimizer``
552*61046927SAndroid Build Coastguard Worker      dump shader assembly to files at each optimization pass and
553*61046927SAndroid Build Coastguard Worker      iteration that make progress
554*61046927SAndroid Build Coastguard Worker   ``pc``
555*61046927SAndroid Build Coastguard Worker      emit messages about PIPE_CONTROL instruction usage
556*61046927SAndroid Build Coastguard Worker   ``perf``
557*61046927SAndroid Build Coastguard Worker      emit messages about performance issues
558*61046927SAndroid Build Coastguard Worker   ``perfmon``
559*61046927SAndroid Build Coastguard Worker      emit messages about :ext:`GL_AMD_performance_monitor`
560*61046927SAndroid Build Coastguard Worker   ``perf-symbol-names``
561*61046927SAndroid Build Coastguard Worker      use performance counter symbols instead of the counter name
562*61046927SAndroid Build Coastguard Worker      (counter symbols are like variable names, it's sometimes easier
563*61046927SAndroid Build Coastguard Worker      to work with when you have lots of metrics to collect)
564*61046927SAndroid Build Coastguard Worker   ``reemit``
565*61046927SAndroid Build Coastguard Worker      mark all state dirty on each draw call
566*61046927SAndroid Build Coastguard Worker   ``rt``
567*61046927SAndroid Build Coastguard Worker      dump shader assembly for ray tracing shaders
568*61046927SAndroid Build Coastguard Worker   ``sf``
569*61046927SAndroid Build Coastguard Worker      emit messages about the strips & fans unit (for old gens, includes
570*61046927SAndroid Build Coastguard Worker      the SF program)
571*61046927SAndroid Build Coastguard Worker   ``shader-print``
572*61046927SAndroid Build Coastguard Worker      allow developer print traces added by `brw_nir_printf` to be
573*61046927SAndroid Build Coastguard Worker      printed out on the console
574*61046927SAndroid Build Coastguard Worker   ``soft64``
575*61046927SAndroid Build Coastguard Worker      enable implementation of software 64bit floating point support
576*61046927SAndroid Build Coastguard Worker   ``sparse``
577*61046927SAndroid Build Coastguard Worker      dump usage of sparse resources
578*61046927SAndroid Build Coastguard Worker   ``spill_fs``
579*61046927SAndroid Build Coastguard Worker      force spilling of all registers in the scalar backend (useful to
580*61046927SAndroid Build Coastguard Worker      debug spilling code)
581*61046927SAndroid Build Coastguard Worker   ``spill_vec4``
582*61046927SAndroid Build Coastguard Worker      force spilling of all registers in the vec4 backend (useful to
583*61046927SAndroid Build Coastguard Worker      debug spilling code)
584*61046927SAndroid Build Coastguard Worker   ``stall``
585*61046927SAndroid Build Coastguard Worker      inserts a stall on the GPU after each draw/dispatch command to
586*61046927SAndroid Build Coastguard Worker      wait for it to finish before starting any new work.
587*61046927SAndroid Build Coastguard Worker   ``submit``
588*61046927SAndroid Build Coastguard Worker      emit batchbuffer usage statistics
589*61046927SAndroid Build Coastguard Worker   ``sync``
590*61046927SAndroid Build Coastguard Worker      after sending each batch, wait on the CPU for that batch to
591*61046927SAndroid Build Coastguard Worker      finish rendering
592*61046927SAndroid Build Coastguard Worker   ``swsb-stall``
593*61046927SAndroid Build Coastguard Worker      Insert sync NOP after each instruction. This is only valid for Gfx12+.
594*61046927SAndroid Build Coastguard Worker   ``task``
595*61046927SAndroid Build Coastguard Worker      dump shader assembly for task shaders
596*61046927SAndroid Build Coastguard Worker   ``tcs``
597*61046927SAndroid Build Coastguard Worker      dump shader assembly for tessellation control shaders
598*61046927SAndroid Build Coastguard Worker   ``tcs8``
599*61046927SAndroid Build Coastguard Worker      force usage of 8-patches tessellation control shaders (only
600*61046927SAndroid Build Coastguard Worker      for gfx 9-11)
601*61046927SAndroid Build Coastguard Worker   ``tes``
602*61046927SAndroid Build Coastguard Worker      dump shader assembly for tessellation evaluation shaders
603*61046927SAndroid Build Coastguard Worker   ``tex``
604*61046927SAndroid Build Coastguard Worker      emit messages about textures.
605*61046927SAndroid Build Coastguard Worker   ``urb``
606*61046927SAndroid Build Coastguard Worker      emit messages about URB setup
607*61046927SAndroid Build Coastguard Worker   ``vs``
608*61046927SAndroid Build Coastguard Worker      dump shader assembly for vertex shaders
609*61046927SAndroid Build Coastguard Worker   ``wm``
610*61046927SAndroid Build Coastguard Worker      dump shader assembly for fragment shaders (same as ``fs``)
611*61046927SAndroid Build Coastguard Worker   ``cl-quiet``
612*61046927SAndroid Build Coastguard Worker      quiets the OpenCL warnings recommending use of Intel compute-runtime
613*61046927SAndroid Build Coastguard Worker
614*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_DECODE
615*61046927SAndroid Build Coastguard Worker
616*61046927SAndroid Build Coastguard Worker   a comma-separated list of enable/disable flags configuring the
617*61046927SAndroid Build Coastguard Worker   output produced by ``INTEL_DEBUG=bat`` (use with
618*61046927SAndroid Build Coastguard Worker   ``INTEL_DECODE=+color,-floats``) :
619*61046927SAndroid Build Coastguard Worker
620*61046927SAndroid Build Coastguard Worker   ``color``
621*61046927SAndroid Build Coastguard Worker      print colored output
622*61046927SAndroid Build Coastguard Worker
623*61046927SAndroid Build Coastguard Worker   ``floats``
624*61046927SAndroid Build Coastguard Worker      try to decode floating point data in buffers
625*61046927SAndroid Build Coastguard Worker
626*61046927SAndroid Build Coastguard Worker   ``full``
627*61046927SAndroid Build Coastguard Worker      print additional custom information for instructions (usually
628*61046927SAndroid Build Coastguard Worker      pulling more information by inspecting memory)
629*61046927SAndroid Build Coastguard Worker
630*61046927SAndroid Build Coastguard Worker   ``offsets``
631*61046927SAndroid Build Coastguard Worker      print offsets of instructions
632*61046927SAndroid Build Coastguard Worker
633*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_EXTENDED_METRICS
634*61046927SAndroid Build Coastguard Worker
635*61046927SAndroid Build Coastguard Worker   By default, only a standard set of GPU metrics are advertised. This
636*61046927SAndroid Build Coastguard Worker   reduces time to collect metrics and hides infrequently used metrics.
637*61046927SAndroid Build Coastguard Worker   To enable all metrics, set value to 1.
638*61046927SAndroid Build Coastguard Worker
639*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_FORCE_PROBE
640*61046927SAndroid Build Coastguard Worker
641*61046927SAndroid Build Coastguard Worker   A comma-separated list of device probe override values. The basic
642*61046927SAndroid Build Coastguard Worker   format is ``<pci-id>[,<pci-id>,...]``. The wildcard value of ``*``
643*61046927SAndroid Build Coastguard Worker   will specify all known PCI IDs. If ``!`` precedes a PCI ID, or the
644*61046927SAndroid Build Coastguard Worker   wildcard value, then the device support will be disabled. All
645*61046927SAndroid Build Coastguard Worker   numbers are interpreted in base 16, and a ``0x`` prefix is
646*61046927SAndroid Build Coastguard Worker   optional. Values specified later take precedence, so the wildcard
647*61046927SAndroid Build Coastguard Worker   probably should only be used at the beginning.
648*61046927SAndroid Build Coastguard Worker
649*61046927SAndroid Build Coastguard Worker   Some examples :
650*61046927SAndroid Build Coastguard Worker
651*61046927SAndroid Build Coastguard Worker   ``1234,!abcd``
652*61046927SAndroid Build Coastguard Worker      Device 0x1234 would be forced on and 0xabcd would be disabled.
653*61046927SAndroid Build Coastguard Worker
654*61046927SAndroid Build Coastguard Worker   ``1234,!*``
655*61046927SAndroid Build Coastguard Worker      All devices are disabled since the wildcard appears later.
656*61046927SAndroid Build Coastguard Worker
657*61046927SAndroid Build Coastguard Worker   ``!*,0x1234``
658*61046927SAndroid Build Coastguard Worker      All devices disabled except 0x1234 which is forced on.
659*61046927SAndroid Build Coastguard Worker
660*61046927SAndroid Build Coastguard Worker   ``*,!0x1234``
661*61046927SAndroid Build Coastguard Worker      All devices are forced on, except 0x1234 which is disabled.
662*61046927SAndroid Build Coastguard Worker
663*61046927SAndroid Build Coastguard Worker   ``!0x1234,1234``
664*61046927SAndroid Build Coastguard Worker      Support for device 0x1234 is forced on since the enable appears
665*61046927SAndroid Build Coastguard Worker      later.
666*61046927SAndroid Build Coastguard Worker
667*61046927SAndroid Build Coastguard Worker   .. note::
668*61046927SAndroid Build Coastguard Worker      If a device requires using :envvar:`INTEL_FORCE_PROBE` to force
669*61046927SAndroid Build Coastguard Worker      it to load, then Mesa does not have full support for the device.
670*61046927SAndroid Build Coastguard Worker      It may have limited, or possibly no functionality within Mesa at
671*61046927SAndroid Build Coastguard Worker      this point. It is recommended to upgrade to a Mesa which does
672*61046927SAndroid Build Coastguard Worker      not require :envvar:`INTEL_FORCE_PROBE` for the device as soon
673*61046927SAndroid Build Coastguard Worker      as it is available.
674*61046927SAndroid Build Coastguard Worker
675*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_MEASURE
676*61046927SAndroid Build Coastguard Worker
677*61046927SAndroid Build Coastguard Worker   Collects GPU timestamps over common intervals, and generates a CSV report
678*61046927SAndroid Build Coastguard Worker   to show how long rendering took.  The overhead of collection is limited to
679*61046927SAndroid Build Coastguard Worker   the flushing that is required at the interval boundaries for accurate
680*61046927SAndroid Build Coastguard Worker   timestamps. By default, timing data is sent to ``stderr``.  To direct output
681*61046927SAndroid Build Coastguard Worker   to a file:
682*61046927SAndroid Build Coastguard Worker
683*61046927SAndroid Build Coastguard Worker   ``INTEL_MEASURE=file=/tmp/measure.csv {workload}``
684*61046927SAndroid Build Coastguard Worker
685*61046927SAndroid Build Coastguard Worker   To begin capturing timestamps at a particular frame:
686*61046927SAndroid Build Coastguard Worker
687*61046927SAndroid Build Coastguard Worker   ``INTEL_MEASURE=file=/tmp/measure.csv,start=15 {workload}``
688*61046927SAndroid Build Coastguard Worker
689*61046927SAndroid Build Coastguard Worker   To capture only 23 frames:
690*61046927SAndroid Build Coastguard Worker
691*61046927SAndroid Build Coastguard Worker   ``INTEL_MEASURE=count=23 {workload}``
692*61046927SAndroid Build Coastguard Worker
693*61046927SAndroid Build Coastguard Worker   To capture frames 15-37, stopping before frame 38:
694*61046927SAndroid Build Coastguard Worker
695*61046927SAndroid Build Coastguard Worker   ``INTEL_MEASURE=start=15,count=23 {workload}``
696*61046927SAndroid Build Coastguard Worker
697*61046927SAndroid Build Coastguard Worker   Designate an asynchronous control file with:
698*61046927SAndroid Build Coastguard Worker
699*61046927SAndroid Build Coastguard Worker   ``INTEL_MEASURE=control=path/to/control.fifo {workload}``
700*61046927SAndroid Build Coastguard Worker
701*61046927SAndroid Build Coastguard Worker   As the workload runs, enable capture for 5 frames with:
702*61046927SAndroid Build Coastguard Worker
703*61046927SAndroid Build Coastguard Worker   ``$ echo 5 > path/to/control.fifo``
704*61046927SAndroid Build Coastguard Worker
705*61046927SAndroid Build Coastguard Worker   Enable unbounded capture:
706*61046927SAndroid Build Coastguard Worker
707*61046927SAndroid Build Coastguard Worker   ``$ echo -1 > path/to/control.fifo``
708*61046927SAndroid Build Coastguard Worker
709*61046927SAndroid Build Coastguard Worker   and disable with:
710*61046927SAndroid Build Coastguard Worker
711*61046927SAndroid Build Coastguard Worker   ``$ echo 0 > path/to/control.fifo``
712*61046927SAndroid Build Coastguard Worker
713*61046927SAndroid Build Coastguard Worker   Select the boundaries of each snapshot with:
714*61046927SAndroid Build Coastguard Worker
715*61046927SAndroid Build Coastguard Worker   ``INTEL_MEASURE=draw``
716*61046927SAndroid Build Coastguard Worker      Collects timings for every render (DEFAULT)
717*61046927SAndroid Build Coastguard Worker
718*61046927SAndroid Build Coastguard Worker   ``INTEL_MEASURE=rt``
719*61046927SAndroid Build Coastguard Worker      Collects timings when the render target changes
720*61046927SAndroid Build Coastguard Worker
721*61046927SAndroid Build Coastguard Worker   ``INTEL_MEASURE=batch``
722*61046927SAndroid Build Coastguard Worker      Collects timings when batches are submitted
723*61046927SAndroid Build Coastguard Worker
724*61046927SAndroid Build Coastguard Worker   ``INTEL_MEASURE=frame``
725*61046927SAndroid Build Coastguard Worker      Collects timings at frame boundaries
726*61046927SAndroid Build Coastguard Worker
727*61046927SAndroid Build Coastguard Worker   With ``INTEL_MEASURE=interval=5``, the duration of 5 events will be
728*61046927SAndroid Build Coastguard Worker   combined into a single record in the output.  When possible, a single
729*61046927SAndroid Build Coastguard Worker   start and end event will be submitted to the GPU to minimize
730*61046927SAndroid Build Coastguard Worker   stalling.  Combined events will not span batches, except in
731*61046927SAndroid Build Coastguard Worker   the case of ``INTEL_MEASURE=frame``.
732*61046927SAndroid Build Coastguard Worker
733*61046927SAndroid Build Coastguard Worker   Collect CPU timestamps instead of GPU timestamps.  Prints results
734*61046927SAndroid Build Coastguard Worker   immediately instead of waiting for GPU execution.  Useful when used
735*61046927SAndroid Build Coastguard Worker   with interactive debug to know which frame, or where in frame, you
736*61046927SAndroid Build Coastguard Worker   are currently in.
737*61046927SAndroid Build Coastguard Worker
738*61046927SAndroid Build Coastguard Worker   ``INTEL_MEASURE=cpu {workload}``
739*61046927SAndroid Build Coastguard Worker
740*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_MODIFIER_OVERRIDE
741*61046927SAndroid Build Coastguard Worker
742*61046927SAndroid Build Coastguard Worker   if set, determines the single DRM modifier reported back to (Vulkan)
743*61046927SAndroid Build Coastguard Worker   applications, in order to make selecting modifier deterministic
744*61046927SAndroid Build Coastguard Worker   between Vulkan driver and applications. The value can be one of the
745*61046927SAndroid Build Coastguard Worker   supported modifiers on a platform, but other values are also acceptable
746*61046927SAndroid Build Coastguard Worker   for debug purposes.
747*61046927SAndroid Build Coastguard Worker
748*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_NO_HW
749*61046927SAndroid Build Coastguard Worker
750*61046927SAndroid Build Coastguard Worker   if set to 1, true or yes, prevents batches from being submitted to the
751*61046927SAndroid Build Coastguard Worker   hardware. This is useful for debugging hangs, etc.
752*61046927SAndroid Build Coastguard Worker
753*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_PRECISE_TRIG
754*61046927SAndroid Build Coastguard Worker
755*61046927SAndroid Build Coastguard Worker   if set to 1, true or yes, then the driver prefers accuracy over
756*61046927SAndroid Build Coastguard Worker   performance in trig functions.
757*61046927SAndroid Build Coastguard Worker
758*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_SHADER_OPTIMIZER_PATH
759*61046927SAndroid Build Coastguard Worker
760*61046927SAndroid Build Coastguard Worker   if set, determines the directory to be used for overriding shader
761*61046927SAndroid Build Coastguard Worker   assembly. The binaries with custom assembly should be placed in
762*61046927SAndroid Build Coastguard Worker   this folder and have a name formatted as ``sha1_of_assembly.bin``.
763*61046927SAndroid Build Coastguard Worker   The SHA-1 of a shader assembly is printed when assembly is dumped via
764*61046927SAndroid Build Coastguard Worker   corresponding :envvar:`INTEL_DEBUG` flag (e.g. ``vs`` for vertex shader).
765*61046927SAndroid Build Coastguard Worker   A binary could be generated from a dumped assembly by ``i965_asm``.
766*61046927SAndroid Build Coastguard Worker   For :envvar:`INTEL_SHADER_ASM_READ_PATH` to work it is necessary to enable
767*61046927SAndroid Build Coastguard Worker   dumping of corresponding shader stages via :envvar:`INTEL_DEBUG`.
768*61046927SAndroid Build Coastguard Worker   It is advised to use ``nocompact`` flag of :envvar:`INTEL_DEBUG` when
769*61046927SAndroid Build Coastguard Worker   dumping and overriding shader assemblies.
770*61046927SAndroid Build Coastguard Worker   The success of assembly override would be signified by "Successfully
771*61046927SAndroid Build Coastguard Worker   overrode shader with sha1 <SHA-1>" in stderr replacing the original
772*61046927SAndroid Build Coastguard Worker   assembly.
773*61046927SAndroid Build Coastguard Worker
774*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_SHADER_ASM_READ_PATH
775*61046927SAndroid Build Coastguard Worker
776*61046927SAndroid Build Coastguard Worker   if set, determines the directory to be used for overriding shader
777*61046927SAndroid Build Coastguard Worker   assembly. The binaries with custom assembly should be placed in
778*61046927SAndroid Build Coastguard Worker   this folder and have a name formatted as ``sha1_of_assembly.bin``.
779*61046927SAndroid Build Coastguard Worker   The SHA-1 of a shader assembly is printed when assembly is dumped via
780*61046927SAndroid Build Coastguard Worker   corresponding :envvar:`INTEL_DEBUG` flag (e.g. ``vs`` for vertex shader).
781*61046927SAndroid Build Coastguard Worker   A binary could be generated from a dumped assembly by ``i965_asm``.
782*61046927SAndroid Build Coastguard Worker   For :envvar:`INTEL_SHADER_ASM_READ_PATH` to work it is necessary to enable
783*61046927SAndroid Build Coastguard Worker   dumping of corresponding shader stages via :envvar:`INTEL_DEBUG`.
784*61046927SAndroid Build Coastguard Worker   It is advised to use ``nocompact`` flag of :envvar:`INTEL_DEBUG` when
785*61046927SAndroid Build Coastguard Worker   dumping and overriding shader assemblies.
786*61046927SAndroid Build Coastguard Worker   The success of assembly override would be signified by "Successfully
787*61046927SAndroid Build Coastguard Worker   overrode shader with sha1 <SHA-1>" in stderr replacing the original
788*61046927SAndroid Build Coastguard Worker   assembly.
789*61046927SAndroid Build Coastguard Worker
790*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_SHADER_BIN_DUMP_PATH
791*61046927SAndroid Build Coastguard Worker
792*61046927SAndroid Build Coastguard Worker   if set, determines the directory to which the compiled shaders will be
793*61046927SAndroid Build Coastguard Worker   dumped. They will be dumped as ``sha1_of_assembly.bin``, where the sha1
794*61046927SAndroid Build Coastguard Worker   values will be the same as can be found in the :envvar:`INTEL_DEBUG`
795*61046927SAndroid Build Coastguard Worker   output, and can be used for :envvar:`INTEL_SHADER_ASM_READ_PATH` input.
796*61046927SAndroid Build Coastguard Worker
797*61046927SAndroid Build Coastguard Worker   .. note::
798*61046927SAndroid Build Coastguard Worker      Unlike the text form of shader dumping, :envvar:`INTEL_DEBUG`
799*61046927SAndroid Build Coastguard Worker      does not affect on the list of shaders to dump. All generated shaders
800*61046927SAndroid Build Coastguard Worker      are always dumped if :envvar:`INTEL_SHADER_BIN_DUMP_PATH` variable is
801*61046927SAndroid Build Coastguard Worker      set.
802*61046927SAndroid Build Coastguard Worker
803*61046927SAndroid Build Coastguard Worker.. envvar:: INTEL_SIMD_DEBUG
804*61046927SAndroid Build Coastguard Worker
805*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which control simd dispatch widths:
806*61046927SAndroid Build Coastguard Worker
807*61046927SAndroid Build Coastguard Worker   ``fs8``
808*61046927SAndroid Build Coastguard Worker      allow generation of SIMD8 fragment shader
809*61046927SAndroid Build Coastguard Worker   ``fs16``
810*61046927SAndroid Build Coastguard Worker      allow generation of SIMD16 fragment shader
811*61046927SAndroid Build Coastguard Worker   ``fs32``
812*61046927SAndroid Build Coastguard Worker      allow generation of SIMD32 fragment shader
813*61046927SAndroid Build Coastguard Worker   ``cs8``
814*61046927SAndroid Build Coastguard Worker      allow generation of SIMD8 compute shader
815*61046927SAndroid Build Coastguard Worker   ``cs16``
816*61046927SAndroid Build Coastguard Worker      allow generation of SIMD16 compute shader
817*61046927SAndroid Build Coastguard Worker   ``cs32``
818*61046927SAndroid Build Coastguard Worker      allow generation of SIMD32 compute shader
819*61046927SAndroid Build Coastguard Worker   ``ts8``
820*61046927SAndroid Build Coastguard Worker      allow generation of SIMD8 task shader
821*61046927SAndroid Build Coastguard Worker   ``ts16``
822*61046927SAndroid Build Coastguard Worker      allow generation of SIMD16 task shader
823*61046927SAndroid Build Coastguard Worker   ``ts32``
824*61046927SAndroid Build Coastguard Worker      allow generation of SIMD32 task shader
825*61046927SAndroid Build Coastguard Worker   ``ms8``
826*61046927SAndroid Build Coastguard Worker      allow generation of SIMD8 mesh shader
827*61046927SAndroid Build Coastguard Worker   ``ms16``
828*61046927SAndroid Build Coastguard Worker      allow generation of SIMD16 mesh shader
829*61046927SAndroid Build Coastguard Worker   ``ms32``
830*61046927SAndroid Build Coastguard Worker      allow generation of SIMD32 mesh shader
831*61046927SAndroid Build Coastguard Worker   ``rt8``
832*61046927SAndroid Build Coastguard Worker      allow generation of SIMD8 ray-tracing shader
833*61046927SAndroid Build Coastguard Worker   ``rt16``
834*61046927SAndroid Build Coastguard Worker      allow generation of SIMD16 ray-tracing shader
835*61046927SAndroid Build Coastguard Worker   ``rt32``
836*61046927SAndroid Build Coastguard Worker      allow generation of SIMD32 ray-tracing shader
837*61046927SAndroid Build Coastguard Worker
838*61046927SAndroid Build Coastguard Worker   If none of widths for particular shader stage was specified, then all
839*61046927SAndroid Build Coastguard Worker   widths are allowed.
840*61046927SAndroid Build Coastguard Worker
841*61046927SAndroid Build Coastguard WorkerAnvil(ANV) driver environment variables
842*61046927SAndroid Build Coastguard Worker---------------------------------------
843*61046927SAndroid Build Coastguard Worker
844*61046927SAndroid Build Coastguard Worker.. envvar:: ANV_ENABLE_PIPELINE_CACHE
845*61046927SAndroid Build Coastguard Worker
846*61046927SAndroid Build Coastguard Worker   If defined to ``0`` or ``false``, this will disable pipeline
847*61046927SAndroid Build Coastguard Worker   caching, forcing ANV to reparse and recompile any VkShaderModule
848*61046927SAndroid Build Coastguard Worker   (SPIRV) it is given.
849*61046927SAndroid Build Coastguard Worker
850*61046927SAndroid Build Coastguard Worker.. envvar:: ANV_DISABLE_SECONDARY_CMD_BUFFER_CALLS
851*61046927SAndroid Build Coastguard Worker
852*61046927SAndroid Build Coastguard Worker   If defined to ``1`` or ``true``, this will prevent usage of self
853*61046927SAndroid Build Coastguard Worker   modifying command buffers to implement ``vkCmdExecuteCommands``. As
854*61046927SAndroid Build Coastguard Worker   a result of this, it will also disable :ext:`VK_KHR_performance_query`.
855*61046927SAndroid Build Coastguard Worker
856*61046927SAndroid Build Coastguard Worker.. envvar:: ANV_ALWAYS_BINDLESS
857*61046927SAndroid Build Coastguard Worker
858*61046927SAndroid Build Coastguard Worker   If defined to ``1`` or ``true``, this forces all descriptor sets to
859*61046927SAndroid Build Coastguard Worker   use the internal :ref:`Bindless model`.
860*61046927SAndroid Build Coastguard Worker
861*61046927SAndroid Build Coastguard Worker.. envvar:: ANV_QUEUE_THREAD_DISABLE
862*61046927SAndroid Build Coastguard Worker
863*61046927SAndroid Build Coastguard Worker   If defined to ``1`` or ``true``, this disables support for timeline
864*61046927SAndroid Build Coastguard Worker   semaphores.
865*61046927SAndroid Build Coastguard Worker
866*61046927SAndroid Build Coastguard Worker.. envvar:: ANV_USERSPACE_RELOCS
867*61046927SAndroid Build Coastguard Worker
868*61046927SAndroid Build Coastguard Worker   If defined to ``1`` or ``true``, this forces ANV to always do
869*61046927SAndroid Build Coastguard Worker   kernel relocations in command buffers. This should only have an
870*61046927SAndroid Build Coastguard Worker   effect on hardware that doesn't support soft-pinning (Ivybridge,
871*61046927SAndroid Build Coastguard Worker   Haswell, Cherryview).
872*61046927SAndroid Build Coastguard Worker
873*61046927SAndroid Build Coastguard Worker.. envvar:: ANV_PRIMITIVE_REPLICATION_MAX_VIEWS
874*61046927SAndroid Build Coastguard Worker
875*61046927SAndroid Build Coastguard Worker   Specifies up to how many view shaders can be lowered to handle
876*61046927SAndroid Build Coastguard Worker   :ext:`VK_KHR_multiview`. Beyond this number, multiview is implemented
877*61046927SAndroid Build Coastguard Worker   using instanced rendering. If unspecified, the value default to
878*61046927SAndroid Build Coastguard Worker   ``2``.
879*61046927SAndroid Build Coastguard Worker
880*61046927SAndroid Build Coastguard Worker.. envvar:: ANV_NO_GPL
881*61046927SAndroid Build Coastguard Worker
882*61046927SAndroid Build Coastguard Worker   If set to 1, true, or yes, then VK_EXT_graphics_pipeline_library
883*61046927SAndroid Build Coastguard Worker   will be disabled.
884*61046927SAndroid Build Coastguard Worker
885*61046927SAndroid Build Coastguard Worker.. envvar:: ANV_SPARSE
886*61046927SAndroid Build Coastguard Worker
887*61046927SAndroid Build Coastguard Worker   By default, the sparse resources feature is enabled. However, if set to 0,
888*61046927SAndroid Build Coastguard Worker   false, or no, it will be disabled.
889*61046927SAndroid Build Coastguard Worker   Platforms older than Tiger Lake do not support this feature.
890*61046927SAndroid Build Coastguard Worker
891*61046927SAndroid Build Coastguard Worker.. envvar:: ANV_SPARSE_USE_TRTT
892*61046927SAndroid Build Coastguard Worker
893*61046927SAndroid Build Coastguard Worker   On platforms supported by Xe KMD (Lunar Lake and newer) this parameter
894*61046927SAndroid Build Coastguard Worker   changes the implementation of sparse resources feature.
895*61046927SAndroid Build Coastguard Worker   For i915 there is no option, sparse resources is always implemented with
896*61046927SAndroid Build Coastguard Worker   TRTT.
897*61046927SAndroid Build Coastguard Worker
898*61046927SAndroid Build Coastguard WorkerDRI environment variables
899*61046927SAndroid Build Coastguard Worker-------------------------
900*61046927SAndroid Build Coastguard Worker
901*61046927SAndroid Build Coastguard Worker.. envvar:: DRI_NO_MSAA
902*61046927SAndroid Build Coastguard Worker
903*61046927SAndroid Build Coastguard Worker   disable MSAA for GLX/EGL MSAA visuals
904*61046927SAndroid Build Coastguard Worker
905*61046927SAndroid Build Coastguard Worker
906*61046927SAndroid Build Coastguard WorkerVulkan mesa device select layer environment variables
907*61046927SAndroid Build Coastguard Worker-----------------------------------------------------
908*61046927SAndroid Build Coastguard Worker
909*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_VK_DEVICE_SELECT
910*61046927SAndroid Build Coastguard Worker
911*61046927SAndroid Build Coastguard Worker   when set to "list" prints the list of devices.
912*61046927SAndroid Build Coastguard Worker   when set to "vid:did" number from PCI device. That PCI device is
913*61046927SAndroid Build Coastguard Worker   selected as default. The default device is returned as the first
914*61046927SAndroid Build Coastguard Worker   device in vkEnumeratePhysicalDevices API.
915*61046927SAndroid Build Coastguard Worker   Using "vid:did!" will have the same effect as using the
916*61046927SAndroid Build Coastguard Worker   ``MESA_VK_DEVICE_SELECT_FORCE_DEFAULT_DEVICE`` variable.
917*61046927SAndroid Build Coastguard Worker
918*61046927SAndroid Build Coastguard Worker.. envvar:: MESA_VK_DEVICE_SELECT_FORCE_DEFAULT_DEVICE
919*61046927SAndroid Build Coastguard Worker
920*61046927SAndroid Build Coastguard Worker   when set to 1, the device identified as default will be the only
921*61046927SAndroid Build Coastguard Worker   one returned in vkEnumeratePhysicalDevices API.
922*61046927SAndroid Build Coastguard Worker
923*61046927SAndroid Build Coastguard Worker
924*61046927SAndroid Build Coastguard WorkerEGL environment variables
925*61046927SAndroid Build Coastguard Worker-------------------------
926*61046927SAndroid Build Coastguard Worker
927*61046927SAndroid Build Coastguard WorkerMesa EGL supports different sets of environment variables. See the
928*61046927SAndroid Build Coastguard Worker:doc:`Mesa EGL <egl>` page for the details.
929*61046927SAndroid Build Coastguard Worker
930*61046927SAndroid Build Coastguard WorkerGallium environment variables
931*61046927SAndroid Build Coastguard Worker-----------------------------
932*61046927SAndroid Build Coastguard Worker
933*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_HUD
934*61046927SAndroid Build Coastguard Worker
935*61046927SAndroid Build Coastguard Worker   draws various information on the screen, like framerate, CPU load,
936*61046927SAndroid Build Coastguard Worker   driver statistics, performance counters, etc. Set
937*61046927SAndroid Build Coastguard Worker   :envvar:`GALLIUM_HUD` to ``help`` and run e.g. ``glxgears`` for more info.
938*61046927SAndroid Build Coastguard Worker
939*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_HUD_PERIOD
940*61046927SAndroid Build Coastguard Worker
941*61046927SAndroid Build Coastguard Worker   sets the HUD update rate in seconds (float). Use zero to update every
942*61046927SAndroid Build Coastguard Worker   frame. The default period is 1/2 second.
943*61046927SAndroid Build Coastguard Worker
944*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_HUD_VISIBLE
945*61046927SAndroid Build Coastguard Worker
946*61046927SAndroid Build Coastguard Worker   control default visibility, defaults to true.
947*61046927SAndroid Build Coastguard Worker
948*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_HUD_OPACITY
949*61046927SAndroid Build Coastguard Worker
950*61046927SAndroid Build Coastguard Worker   control background opacity as an integer percentage (1-100), defaults to 66%.
951*61046927SAndroid Build Coastguard Worker
952*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_HUD_TOGGLE_SIGNAL
953*61046927SAndroid Build Coastguard Worker
954*61046927SAndroid Build Coastguard Worker   toggle visibility via user specified signal. Especially useful to
955*61046927SAndroid Build Coastguard Worker   toggle HUD at specific points of application and disable for
956*61046927SAndroid Build Coastguard Worker   unencumbered viewing the rest of the time. For example, set
957*61046927SAndroid Build Coastguard Worker   :envvar:`GALLIUM_HUD_VISIBLE` to ``false`` and
958*61046927SAndroid Build Coastguard Worker   :envvar:`GALLIUM_HUD_TOGGLE_SIGNAL` to ``10`` (``SIGUSR1``). Use
959*61046927SAndroid Build Coastguard Worker   ``kill -10 <pid>`` to toggle the HUD as desired.
960*61046927SAndroid Build Coastguard Worker
961*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_HUD_SCALE
962*61046927SAndroid Build Coastguard Worker
963*61046927SAndroid Build Coastguard Worker   Scale HUD by an integer factor, for high DPI displays. Default is 1.
964*61046927SAndroid Build Coastguard Worker
965*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_HUD_ROTATION
966*61046927SAndroid Build Coastguard Worker
967*61046927SAndroid Build Coastguard Worker   Rotate the HUD by an integer number of degrees, the specified value must be
968*61046927SAndroid Build Coastguard Worker   a multiple of 90. Default is 0.
969*61046927SAndroid Build Coastguard Worker
970*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_HUD_DUMP_DIR
971*61046927SAndroid Build Coastguard Worker
972*61046927SAndroid Build Coastguard Worker   specifies a directory for writing the displayed HUD values into
973*61046927SAndroid Build Coastguard Worker   files.
974*61046927SAndroid Build Coastguard Worker
975*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_DRIVER
976*61046927SAndroid Build Coastguard Worker
977*61046927SAndroid Build Coastguard Worker   useful in combination with :envvar:`LIBGL_ALWAYS_SOFTWARE` = ``true`` for
978*61046927SAndroid Build Coastguard Worker   choosing one of the software renderers ``softpipe`` or ``llvmpipe``.
979*61046927SAndroid Build Coastguard Worker
980*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_LOG_FILE
981*61046927SAndroid Build Coastguard Worker
982*61046927SAndroid Build Coastguard Worker   specifies a file for logging all errors, warnings, etc. rather than
983*61046927SAndroid Build Coastguard Worker   stderr.
984*61046927SAndroid Build Coastguard Worker
985*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_PIPE_SEARCH_DIR
986*61046927SAndroid Build Coastguard Worker
987*61046927SAndroid Build Coastguard Worker   specifies an alternate search directory for pipe-loader which overrides
988*61046927SAndroid Build Coastguard Worker   the compile-time path based on the install location.
989*61046927SAndroid Build Coastguard Worker
990*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_PRINT_OPTIONS
991*61046927SAndroid Build Coastguard Worker
992*61046927SAndroid Build Coastguard Worker   if non-zero, print all the Gallium environment variables which are
993*61046927SAndroid Build Coastguard Worker   used, and their current values.
994*61046927SAndroid Build Coastguard Worker
995*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_TRACE
996*61046927SAndroid Build Coastguard Worker
997*61046927SAndroid Build Coastguard Worker   If set, this variable will cause the :ref:`trace` output to be written to the
998*61046927SAndroid Build Coastguard Worker   specified file. Paths may be relative or absolute; relative paths are relative
999*61046927SAndroid Build Coastguard Worker   to the working directory.  For example, setting it to "trace.xml" will cause
1000*61046927SAndroid Build Coastguard Worker   the trace to be written to a file of the same name in the working directory.
1001*61046927SAndroid Build Coastguard Worker
1002*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_TRACE_TC
1003*61046927SAndroid Build Coastguard Worker
1004*61046927SAndroid Build Coastguard Worker   If enabled while :ref:`trace` is active, this variable specifies that the threaded context
1005*61046927SAndroid Build Coastguard Worker   should be traced for drivers which implement it. By default, the driver thread is traced,
1006*61046927SAndroid Build Coastguard Worker   which will include any reordering of the command stream from threaded context.
1007*61046927SAndroid Build Coastguard Worker
1008*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_TRACE_TRIGGER
1009*61046927SAndroid Build Coastguard Worker
1010*61046927SAndroid Build Coastguard Worker   If set while :ref:`trace` is active, this variable specifies a filename to monitor.
1011*61046927SAndroid Build Coastguard Worker   Once the file exists (e.g., from the user running 'touch /path/to/file'), a single
1012*61046927SAndroid Build Coastguard Worker   frame will be recorded into the trace output.
1013*61046927SAndroid Build Coastguard Worker   Paths may be relative or absolute; relative paths are relative to the working directory.
1014*61046927SAndroid Build Coastguard Worker
1015*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_DUMP_CPU
1016*61046927SAndroid Build Coastguard Worker
1017*61046927SAndroid Build Coastguard Worker   if non-zero, print information about the CPU on start-up
1018*61046927SAndroid Build Coastguard Worker
1019*61046927SAndroid Build Coastguard Worker.. envvar:: TGSI_PRINT_SANITY
1020*61046927SAndroid Build Coastguard Worker
1021*61046927SAndroid Build Coastguard Worker   if set, do extra sanity checking on TGSI shaders and print any errors
1022*61046927SAndroid Build Coastguard Worker   to stderr.
1023*61046927SAndroid Build Coastguard Worker
1024*61046927SAndroid Build Coastguard Worker.. envvar:: DRAW_FSE
1025*61046927SAndroid Build Coastguard Worker
1026*61046927SAndroid Build Coastguard Worker   Enable fetch-shade-emit middle-end even though its not correct (e.g.
1027*61046927SAndroid Build Coastguard Worker   for Softpipe)
1028*61046927SAndroid Build Coastguard Worker
1029*61046927SAndroid Build Coastguard Worker.. envvar:: DRAW_NO_FSE
1030*61046927SAndroid Build Coastguard Worker
1031*61046927SAndroid Build Coastguard Worker   Disable fetch-shade-emit middle-end even when it is correct
1032*61046927SAndroid Build Coastguard Worker
1033*61046927SAndroid Build Coastguard Worker.. envvar:: DRAW_USE_LLVM
1034*61046927SAndroid Build Coastguard Worker
1035*61046927SAndroid Build Coastguard Worker   if set to zero, the draw module will not use LLVM to execute shaders,
1036*61046927SAndroid Build Coastguard Worker   vertex fetch, etc.
1037*61046927SAndroid Build Coastguard Worker
1038*61046927SAndroid Build Coastguard Worker.. envvar:: ST_DEBUG
1039*61046927SAndroid Build Coastguard Worker
1040*61046927SAndroid Build Coastguard Worker   controls debug output from the Mesa/Gallium state tracker. Setting to
1041*61046927SAndroid Build Coastguard Worker   ``tgsi``, for example, will print all the TGSI shaders. See
1042*61046927SAndroid Build Coastguard Worker   :file:`src/mesa/state_tracker/st_debug.c` for other options.
1043*61046927SAndroid Build Coastguard Worker
1044*61046927SAndroid Build Coastguard Worker.. envvar:: GALLIUM_OVERRIDE_CPU_CAPS
1045*61046927SAndroid Build Coastguard Worker
1046*61046927SAndroid Build Coastguard Worker   Override CPU capabilities for LLVMpipe and Softpipe, possible values for x86:
1047*61046927SAndroid Build Coastguard Worker   ``nosse``
1048*61046927SAndroid Build Coastguard Worker   ``sse``
1049*61046927SAndroid Build Coastguard Worker   ``sse2``
1050*61046927SAndroid Build Coastguard Worker   ``sse3``
1051*61046927SAndroid Build Coastguard Worker   ``ssse3``
1052*61046927SAndroid Build Coastguard Worker   ``sse4.1``
1053*61046927SAndroid Build Coastguard Worker   ``avx``
1054*61046927SAndroid Build Coastguard Worker
1055*61046927SAndroid Build Coastguard WorkerClover environment variables
1056*61046927SAndroid Build Coastguard Worker----------------------------
1057*61046927SAndroid Build Coastguard Worker
1058*61046927SAndroid Build Coastguard Worker.. envvar:: CLOVER_DEVICE_TYPE
1059*61046927SAndroid Build Coastguard Worker
1060*61046927SAndroid Build Coastguard Worker   allows to overwrite the device type of devices. Possible values are
1061*61046927SAndroid Build Coastguard Worker   ``accelerator``, ``cpu``, ``custom`` and ``gpu``
1062*61046927SAndroid Build Coastguard Worker
1063*61046927SAndroid Build Coastguard Worker.. envvar:: CLOVER_DEVICE_VERSION_OVERRIDE
1064*61046927SAndroid Build Coastguard Worker
1065*61046927SAndroid Build Coastguard Worker   overwrites the auto detected OpenCL version of a device. Possible values:
1066*61046927SAndroid Build Coastguard Worker   ``1.0``
1067*61046927SAndroid Build Coastguard Worker   ``1.1``
1068*61046927SAndroid Build Coastguard Worker   ``1.2``
1069*61046927SAndroid Build Coastguard Worker   ``2.0``
1070*61046927SAndroid Build Coastguard Worker   ``2.1``
1071*61046927SAndroid Build Coastguard Worker   ``2.2``
1072*61046927SAndroid Build Coastguard Worker   ``3.0``
1073*61046927SAndroid Build Coastguard Worker
1074*61046927SAndroid Build Coastguard Worker.. envvar:: CLOVER_DEVICE_CLC_VERSION_OVERRIDE
1075*61046927SAndroid Build Coastguard Worker
1076*61046927SAndroid Build Coastguard Worker   overwrites the auto detected CLC version. Possible values:
1077*61046927SAndroid Build Coastguard Worker   ``1.0``
1078*61046927SAndroid Build Coastguard Worker   ``1.1``
1079*61046927SAndroid Build Coastguard Worker   ``1.2``
1080*61046927SAndroid Build Coastguard Worker   ``2.0``
1081*61046927SAndroid Build Coastguard Worker   ``2.1``
1082*61046927SAndroid Build Coastguard Worker   ``2.2``
1083*61046927SAndroid Build Coastguard Worker   ``3.0``
1084*61046927SAndroid Build Coastguard Worker
1085*61046927SAndroid Build Coastguard Worker.. envvar:: CLOVER_EXTRA_BUILD_OPTIONS
1086*61046927SAndroid Build Coastguard Worker
1087*61046927SAndroid Build Coastguard Worker   allows specifying additional compiler and linker options. Specified
1088*61046927SAndroid Build Coastguard Worker   options are appended after the options set by the OpenCL program in
1089*61046927SAndroid Build Coastguard Worker   ``clBuildProgram``.
1090*61046927SAndroid Build Coastguard Worker
1091*61046927SAndroid Build Coastguard Worker.. envvar:: CLOVER_EXTRA_COMPILE_OPTIONS
1092*61046927SAndroid Build Coastguard Worker
1093*61046927SAndroid Build Coastguard Worker   allows specifying additional compiler options. Specified options are
1094*61046927SAndroid Build Coastguard Worker   appended after the options set by the OpenCL program in
1095*61046927SAndroid Build Coastguard Worker   ``clCompileProgram``.
1096*61046927SAndroid Build Coastguard Worker
1097*61046927SAndroid Build Coastguard Worker.. envvar:: CLOVER_EXTRA_LINK_OPTIONS
1098*61046927SAndroid Build Coastguard Worker
1099*61046927SAndroid Build Coastguard Worker   allows specifying additional linker options. Specified options are
1100*61046927SAndroid Build Coastguard Worker   appended after the options set by the OpenCL program in
1101*61046927SAndroid Build Coastguard Worker   ``clLinkProgram``.
1102*61046927SAndroid Build Coastguard Worker
1103*61046927SAndroid Build Coastguard Worker.. _rusticl-env-var:
1104*61046927SAndroid Build Coastguard Worker
1105*61046927SAndroid Build Coastguard Worker.. envvar:: IRIS_ENABLE_CLOVER
1106*61046927SAndroid Build Coastguard Worker
1107*61046927SAndroid Build Coastguard Worker   allows to enable experimental Clover NIR support with the iris driver if
1108*61046927SAndroid Build Coastguard Worker   set to 1 or true.
1109*61046927SAndroid Build Coastguard Worker
1110*61046927SAndroid Build Coastguard WorkerRusticl environment variables
1111*61046927SAndroid Build Coastguard Worker-----------------------------
1112*61046927SAndroid Build Coastguard Worker
1113*61046927SAndroid Build Coastguard Worker.. envvar:: RUSTICL_DEVICE_TYPE
1114*61046927SAndroid Build Coastguard Worker
1115*61046927SAndroid Build Coastguard Worker   allows to overwrite the device type of devices. Possible values are
1116*61046927SAndroid Build Coastguard Worker   ``accelerator``, ``cpu``, ``custom`` and ``gpu``
1117*61046927SAndroid Build Coastguard Worker
1118*61046927SAndroid Build Coastguard Worker.. envvar:: RUSTICL_CL_VERSION
1119*61046927SAndroid Build Coastguard Worker
1120*61046927SAndroid Build Coastguard Worker   overwrites the auto detected OpenCL version of all devices. Specified as
1121*61046927SAndroid Build Coastguard Worker   ``major.minor``.
1122*61046927SAndroid Build Coastguard Worker
1123*61046927SAndroid Build Coastguard Worker.. envvar:: RUSTICL_ENABLE
1124*61046927SAndroid Build Coastguard Worker
1125*61046927SAndroid Build Coastguard Worker   a comma-separated list of drivers to enable CL on. An optional list of
1126*61046927SAndroid Build Coastguard Worker   comma-separated integers can be passed per driver to specify which devices
1127*61046927SAndroid Build Coastguard Worker   to enable. Examples:
1128*61046927SAndroid Build Coastguard Worker
1129*61046927SAndroid Build Coastguard Worker   -  ``RUSTICL_ENABLE=iris`` (enables all iris devices)
1130*61046927SAndroid Build Coastguard Worker   -  ``RUSTICL_ENABLE=iris:1,radeonsi:0,2`` (enables second iris and first
1131*61046927SAndroid Build Coastguard Worker      and third radeonsi device)
1132*61046927SAndroid Build Coastguard Worker
1133*61046927SAndroid Build Coastguard Worker   Supported drivers (decent support with maybe a few conformance issues or bugs):
1134*61046927SAndroid Build Coastguard Worker   ``iris``,
1135*61046927SAndroid Build Coastguard Worker   ``llvmpipe``,
1136*61046927SAndroid Build Coastguard Worker   ``nouveau``,
1137*61046927SAndroid Build Coastguard Worker   ``panfrost``,
1138*61046927SAndroid Build Coastguard Worker   ``radeonsi``,
1139*61046927SAndroid Build Coastguard Worker   Experimental drivers (unknown level of support, expect conformance issues or major bugs):
1140*61046927SAndroid Build Coastguard Worker   ``r600``
1141*61046927SAndroid Build Coastguard Worker
1142*61046927SAndroid Build Coastguard Worker.. envvar:: RUSTICL_FEATURES
1143*61046927SAndroid Build Coastguard Worker
1144*61046927SAndroid Build Coastguard Worker   a comma-separated list of features to enable. Those are disabled by default
1145*61046927SAndroid Build Coastguard Worker   as they might not be stable enough or break OpenCL conformance.
1146*61046927SAndroid Build Coastguard Worker
1147*61046927SAndroid Build Coastguard Worker   - ``fp16`` enables OpenCL half support
1148*61046927SAndroid Build Coastguard Worker   - ``fp64`` enables OpenCL double support
1149*61046927SAndroid Build Coastguard Worker
1150*61046927SAndroid Build Coastguard Worker.. envvar:: RUSTICL_DEBUG
1151*61046927SAndroid Build Coastguard Worker
1152*61046927SAndroid Build Coastguard Worker   a comma-separated list of debug channels to enable.
1153*61046927SAndroid Build Coastguard Worker
1154*61046927SAndroid Build Coastguard Worker   - ``allow_invalid_spirv`` disables validation of any input SPIR-V
1155*61046927SAndroid Build Coastguard Worker   - ``clc`` dumps all OpenCL C source being compiled
1156*61046927SAndroid Build Coastguard Worker   - ``nir`` dumps nirs in various compilation stages. Might print nothing if shader caching is
1157*61046927SAndroid Build Coastguard Worker             enabled.
1158*61046927SAndroid Build Coastguard Worker   - ``no_reuse_context`` pipe_contexts are not recycled
1159*61046927SAndroid Build Coastguard Worker   - ``no_variants`` disable kernel variants (e.g. specialized binaries for offsets == 0)
1160*61046927SAndroid Build Coastguard Worker   - ``perf`` prints a warning when hitting slow paths once
1161*61046927SAndroid Build Coastguard Worker   - ``perfspam`` same as perf, but doesn't skip same warnings
1162*61046927SAndroid Build Coastguard Worker   - ``program`` dumps compilation logs to stderr
1163*61046927SAndroid Build Coastguard Worker   - ``sync`` waits on the GPU to complete after every event
1164*61046927SAndroid Build Coastguard Worker   - ``validate`` validates any internally generated SPIR-Vs, e.g. through compiling OpenCL C code
1165*61046927SAndroid Build Coastguard Worker
1166*61046927SAndroid Build Coastguard Worker.. envvar:: RUSTICL_MAX_WORK_GROUPS
1167*61046927SAndroid Build Coastguard Worker
1168*61046927SAndroid Build Coastguard Worker   Limits the amount of threads per dimension in a work-group. Useful for splitting up long running
1169*61046927SAndroid Build Coastguard Worker   tasks to increase responsiveness or to simulate the lowering of huge global sizes for testing.
1170*61046927SAndroid Build Coastguard Worker
1171*61046927SAndroid Build Coastguard Worker.. _clc-env-var:
1172*61046927SAndroid Build Coastguard Worker
1173*61046927SAndroid Build Coastguard Workerclc environment variables
1174*61046927SAndroid Build Coastguard Worker-----------------------------
1175*61046927SAndroid Build Coastguard Worker
1176*61046927SAndroid Build Coastguard Worker.. envvar:: CLC_DEBUG
1177*61046927SAndroid Build Coastguard Worker
1178*61046927SAndroid Build Coastguard Worker   a comma-separated list of debug channels to enable.
1179*61046927SAndroid Build Coastguard Worker
1180*61046927SAndroid Build Coastguard Worker   - ``dump_llvm`` Dumps all generated LLVM IRs
1181*61046927SAndroid Build Coastguard Worker   - ``dump_spirv`` Dumps all compiled, linked and specialized SPIR-Vs
1182*61046927SAndroid Build Coastguard Worker   - ``verbose`` Enable debug logging of clc code
1183*61046927SAndroid Build Coastguard Worker
1184*61046927SAndroid Build Coastguard WorkerNine frontend environment variables
1185*61046927SAndroid Build Coastguard Worker-----------------------------------
1186*61046927SAndroid Build Coastguard Worker
1187*61046927SAndroid Build Coastguard Worker.. envvar:: D3D_ALWAYS_SOFTWARE
1188*61046927SAndroid Build Coastguard Worker
1189*61046927SAndroid Build Coastguard Worker   an integer, which forces Nine to use the CPU instead of GPU acceleration.
1190*61046927SAndroid Build Coastguard Worker
1191*61046927SAndroid Build Coastguard Worker.. envvar:: NINE_DEBUG
1192*61046927SAndroid Build Coastguard Worker
1193*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags that do debugging things.
1194*61046927SAndroid Build Coastguard Worker   Use ``NINE_DEBUG=help`` to print a list of available options.
1195*61046927SAndroid Build Coastguard Worker
1196*61046927SAndroid Build Coastguard Worker.. envvar:: NINE_FF_DUMP
1197*61046927SAndroid Build Coastguard Worker
1198*61046927SAndroid Build Coastguard Worker   a boolean, which dumps shaders generated by a fixed function (FF).
1199*61046927SAndroid Build Coastguard Worker
1200*61046927SAndroid Build Coastguard Worker.. envvar:: NINE_SHADER
1201*61046927SAndroid Build Coastguard Worker
1202*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do alternate shader handling.
1203*61046927SAndroid Build Coastguard Worker   Use ``NINE_SHADER=help`` to print a list of available options.
1204*61046927SAndroid Build Coastguard Worker
1205*61046927SAndroid Build Coastguard Worker.. envvar:: NINE_QUIRKS
1206*61046927SAndroid Build Coastguard Worker
1207*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags that do various things.
1208*61046927SAndroid Build Coastguard Worker   Use ``NINE_DEBUG=help`` to print a list of available options.
1209*61046927SAndroid Build Coastguard Worker
1210*61046927SAndroid Build Coastguard WorkerSoftpipe driver environment variables
1211*61046927SAndroid Build Coastguard Worker-------------------------------------
1212*61046927SAndroid Build Coastguard Worker
1213*61046927SAndroid Build Coastguard Worker.. envvar:: SOFTPIPE_DEBUG
1214*61046927SAndroid Build Coastguard Worker
1215*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do various things:
1216*61046927SAndroid Build Coastguard Worker
1217*61046927SAndroid Build Coastguard Worker   ``vs``
1218*61046927SAndroid Build Coastguard Worker      Dump vertex shader assembly to stderr
1219*61046927SAndroid Build Coastguard Worker   ``fs``
1220*61046927SAndroid Build Coastguard Worker      Dump fragment shader assembly to stderr
1221*61046927SAndroid Build Coastguard Worker   ``gs``
1222*61046927SAndroid Build Coastguard Worker      Dump geometry shader assembly to stderr
1223*61046927SAndroid Build Coastguard Worker   ``cs``
1224*61046927SAndroid Build Coastguard Worker      Dump compute shader assembly to stderr
1225*61046927SAndroid Build Coastguard Worker   ``no_rast``
1226*61046927SAndroid Build Coastguard Worker      rasterization is disabled. For profiling purposes.
1227*61046927SAndroid Build Coastguard Worker   ``use_llvm``
1228*61046927SAndroid Build Coastguard Worker      the Softpipe driver will try to use LLVM JIT for vertex
1229*61046927SAndroid Build Coastguard Worker      shading processing.
1230*61046927SAndroid Build Coastguard Worker
1231*61046927SAndroid Build Coastguard WorkerLLVMpipe driver environment variables
1232*61046927SAndroid Build Coastguard Worker-------------------------------------
1233*61046927SAndroid Build Coastguard Worker
1234*61046927SAndroid Build Coastguard Worker.. envvar:: LP_NO_RAST
1235*61046927SAndroid Build Coastguard Worker
1236*61046927SAndroid Build Coastguard Worker   if set LLVMpipe will no-op rasterization
1237*61046927SAndroid Build Coastguard Worker
1238*61046927SAndroid Build Coastguard Worker.. envvar:: LP_DEBUG
1239*61046927SAndroid Build Coastguard Worker
1240*61046927SAndroid Build Coastguard Worker   a comma-separated list of debug options is accepted. See the source
1241*61046927SAndroid Build Coastguard Worker   code for details.
1242*61046927SAndroid Build Coastguard Worker
1243*61046927SAndroid Build Coastguard Worker.. envvar:: LP_PERF
1244*61046927SAndroid Build Coastguard Worker
1245*61046927SAndroid Build Coastguard Worker   a comma-separated list of options to selectively no-op various parts
1246*61046927SAndroid Build Coastguard Worker   of the driver. See the source code for details.
1247*61046927SAndroid Build Coastguard Worker
1248*61046927SAndroid Build Coastguard Worker.. envvar:: LP_NUM_THREADS
1249*61046927SAndroid Build Coastguard Worker
1250*61046927SAndroid Build Coastguard Worker   an integer indicating how many threads to use for rendering. Zero
1251*61046927SAndroid Build Coastguard Worker   turns off threading completely. The default value is the number of
1252*61046927SAndroid Build Coastguard Worker   CPU cores present.
1253*61046927SAndroid Build Coastguard Worker
1254*61046927SAndroid Build Coastguard WorkerVMware SVGA driver environment variables
1255*61046927SAndroid Build Coastguard Worker----------------------------------------
1256*61046927SAndroid Build Coastguard Worker
1257*61046927SAndroid Build Coastguard Worker.. envvar:: SVGA_FORCE_SWTNL
1258*61046927SAndroid Build Coastguard Worker
1259*61046927SAndroid Build Coastguard Worker   force use of software vertex transformation
1260*61046927SAndroid Build Coastguard Worker
1261*61046927SAndroid Build Coastguard Worker.. envvar:: SVGA_NO_SWTNL
1262*61046927SAndroid Build Coastguard Worker
1263*61046927SAndroid Build Coastguard Worker   don't allow software vertex transformation fallbacks (will often
1264*61046927SAndroid Build Coastguard Worker   result in incorrect rendering).
1265*61046927SAndroid Build Coastguard Worker
1266*61046927SAndroid Build Coastguard Worker.. envvar:: SVGA_DEBUG
1267*61046927SAndroid Build Coastguard Worker
1268*61046927SAndroid Build Coastguard Worker   for dumping shaders, constant buffers, etc. See the code for details.
1269*61046927SAndroid Build Coastguard Worker
1270*61046927SAndroid Build Coastguard Worker.. envvar:: SVGA_EXTRA_LOGGING
1271*61046927SAndroid Build Coastguard Worker
1272*61046927SAndroid Build Coastguard Worker   if set, enables extra logging to the ``vmware.log`` file, such as the
1273*61046927SAndroid Build Coastguard Worker   OpenGL program's name and command line arguments.
1274*61046927SAndroid Build Coastguard Worker
1275*61046927SAndroid Build Coastguard Worker.. envvar:: SVGA_NO_LOGGING
1276*61046927SAndroid Build Coastguard Worker
1277*61046927SAndroid Build Coastguard Worker   if set, disables logging to the ``vmware.log`` file. This is useful
1278*61046927SAndroid Build Coastguard Worker   when using Valgrind because it otherwise crashes when initializing
1279*61046927SAndroid Build Coastguard Worker   the host log feature.
1280*61046927SAndroid Build Coastguard Worker
1281*61046927SAndroid Build Coastguard WorkerSee the driver code for other, lesser-used variables.
1282*61046927SAndroid Build Coastguard Worker
1283*61046927SAndroid Build Coastguard WorkerWGL environment variables
1284*61046927SAndroid Build Coastguard Worker-------------------------
1285*61046927SAndroid Build Coastguard Worker
1286*61046927SAndroid Build Coastguard Worker.. envvar:: WGL_SWAP_INTERVAL
1287*61046927SAndroid Build Coastguard Worker
1288*61046927SAndroid Build Coastguard Worker   to set a swap interval, equivalent to calling
1289*61046927SAndroid Build Coastguard Worker   ``wglSwapIntervalEXT()`` in an application. If this environment
1290*61046927SAndroid Build Coastguard Worker   variable is set, application calls to ``wglSwapIntervalEXT()`` will
1291*61046927SAndroid Build Coastguard Worker   have no effect.
1292*61046927SAndroid Build Coastguard Worker
1293*61046927SAndroid Build Coastguard WorkerVA-API environment variables
1294*61046927SAndroid Build Coastguard Worker----------------------------
1295*61046927SAndroid Build Coastguard Worker
1296*61046927SAndroid Build Coastguard Worker.. envvar:: VAAPI_MPEG4_ENABLED
1297*61046927SAndroid Build Coastguard Worker
1298*61046927SAndroid Build Coastguard Worker   enable MPEG4 for VA-API, disabled by default.
1299*61046927SAndroid Build Coastguard Worker
1300*61046927SAndroid Build Coastguard WorkerVC4 driver environment variables
1301*61046927SAndroid Build Coastguard Worker--------------------------------
1302*61046927SAndroid Build Coastguard Worker
1303*61046927SAndroid Build Coastguard Worker.. envvar:: VC4_DEBUG
1304*61046927SAndroid Build Coastguard Worker
1305*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do various things. Use
1306*61046927SAndroid Build Coastguard Worker   ``VC4_DEBUG=help`` to print a list of available options.
1307*61046927SAndroid Build Coastguard Worker
1308*61046927SAndroid Build Coastguard WorkerV3D/V3DV driver environment variables
1309*61046927SAndroid Build Coastguard Worker-------------------------------------
1310*61046927SAndroid Build Coastguard Worker
1311*61046927SAndroid Build Coastguard Worker.. envvar:: V3D_DEBUG
1312*61046927SAndroid Build Coastguard Worker
1313*61046927SAndroid Build Coastguard Worker   a comma-separated list of debug options. Use ``V3D_DEBUG=help`` to
1314*61046927SAndroid Build Coastguard Worker   print a list of available options.
1315*61046927SAndroid Build Coastguard Worker
1316*61046927SAndroid Build Coastguard Worker
1317*61046927SAndroid Build Coastguard Worker.. _radv env-vars:
1318*61046927SAndroid Build Coastguard Worker
1319*61046927SAndroid Build Coastguard WorkerRADV driver environment variables
1320*61046927SAndroid Build Coastguard Worker---------------------------------
1321*61046927SAndroid Build Coastguard Worker
1322*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_DEBUG
1323*61046927SAndroid Build Coastguard Worker
1324*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do various things:
1325*61046927SAndroid Build Coastguard Worker
1326*61046927SAndroid Build Coastguard Worker   ``llvm``
1327*61046927SAndroid Build Coastguard Worker      enable LLVM compiler backend
1328*61046927SAndroid Build Coastguard Worker   ``allbos``
1329*61046927SAndroid Build Coastguard Worker      force all allocated buffers to be referenced in submissions
1330*61046927SAndroid Build Coastguard Worker   ``checkir``
1331*61046927SAndroid Build Coastguard Worker      validate the LLVM IR before LLVM compiles the shader
1332*61046927SAndroid Build Coastguard Worker   ``epilogs``
1333*61046927SAndroid Build Coastguard Worker      dump fragment shader epilogs
1334*61046927SAndroid Build Coastguard Worker   ``extra_md``
1335*61046927SAndroid Build Coastguard Worker      add extra information in bo metadata to help tools (umr)
1336*61046927SAndroid Build Coastguard Worker   ``forcecompress``
1337*61046927SAndroid Build Coastguard Worker      Enables DCC,FMASK,CMASK,HTILE in situations where the driver supports it
1338*61046927SAndroid Build Coastguard Worker      but normally does not deem it beneficial.
1339*61046927SAndroid Build Coastguard Worker   ``hang``
1340*61046927SAndroid Build Coastguard Worker      enable GPU hangs detection and dump a report to
1341*61046927SAndroid Build Coastguard Worker      $HOME/radv_dumps_<pid>_<time> if a GPU hang is detected
1342*61046927SAndroid Build Coastguard Worker   ``img``
1343*61046927SAndroid Build Coastguard Worker      Print image info
1344*61046927SAndroid Build Coastguard Worker   ``info``
1345*61046927SAndroid Build Coastguard Worker      show GPU-related information
1346*61046927SAndroid Build Coastguard Worker   ``invariantgeom``
1347*61046927SAndroid Build Coastguard Worker      Mark geometry-affecting outputs as invariant. This works around a common
1348*61046927SAndroid Build Coastguard Worker      class of application bugs appearing as flickering.
1349*61046927SAndroid Build Coastguard Worker   ``metashaders``
1350*61046927SAndroid Build Coastguard Worker      dump internal meta shaders
1351*61046927SAndroid Build Coastguard Worker   ``noatocdithering``
1352*61046927SAndroid Build Coastguard Worker      disable dithering for alpha to coverage
1353*61046927SAndroid Build Coastguard Worker   ``nobinning``
1354*61046927SAndroid Build Coastguard Worker      disable primitive binning
1355*61046927SAndroid Build Coastguard Worker   ``nocache``
1356*61046927SAndroid Build Coastguard Worker      disable shaders cache
1357*61046927SAndroid Build Coastguard Worker   ``nocompute``
1358*61046927SAndroid Build Coastguard Worker      disable compute queue
1359*61046927SAndroid Build Coastguard Worker   ``nodcc``
1360*61046927SAndroid Build Coastguard Worker      disable Delta Color Compression (DCC) on images
1361*61046927SAndroid Build Coastguard Worker   ``nodisplaydcc``
1362*61046927SAndroid Build Coastguard Worker      disable Delta Color Compression (DCC) on displayable images
1363*61046927SAndroid Build Coastguard Worker   ``nodynamicbounds``
1364*61046927SAndroid Build Coastguard Worker      do not check OOB access for dynamic descriptors
1365*61046927SAndroid Build Coastguard Worker   ``noeso``
1366*61046927SAndroid Build Coastguard Worker      disable VK_EXT_shader_object
1367*61046927SAndroid Build Coastguard Worker   ``nofastclears``
1368*61046927SAndroid Build Coastguard Worker      disable fast color/depthstencil clears
1369*61046927SAndroid Build Coastguard Worker   ``nofmask``
1370*61046927SAndroid Build Coastguard Worker      disable FMASK compression on MSAA images (GFX6-GFX10.3)
1371*61046927SAndroid Build Coastguard Worker   ``nogpl``
1372*61046927SAndroid Build Coastguard Worker      disable VK_EXT_graphics_pipeline_library
1373*61046927SAndroid Build Coastguard Worker   ``nohiz``
1374*61046927SAndroid Build Coastguard Worker      disable HIZ for depthstencil images
1375*61046927SAndroid Build Coastguard Worker   ``noibs``
1376*61046927SAndroid Build Coastguard Worker      disable directly recording command buffers in GPU-visible memory
1377*61046927SAndroid Build Coastguard Worker   ``nomeshshader``
1378*61046927SAndroid Build Coastguard Worker      disable mesh shader support on GFX10.3+
1379*61046927SAndroid Build Coastguard Worker   ``nongg``
1380*61046927SAndroid Build Coastguard Worker      disable NGG for GFX10 and GFX10.3
1381*61046927SAndroid Build Coastguard Worker   ``nonggc``
1382*61046927SAndroid Build Coastguard Worker      disable NGG culling on GPUs where it's enabled by default (GFX10.3 only).
1383*61046927SAndroid Build Coastguard Worker   ``nongg_gs``
1384*61046927SAndroid Build Coastguard Worker      disable NGG GS for GFX10 and GFX10.3
1385*61046927SAndroid Build Coastguard Worker   ``nort``
1386*61046927SAndroid Build Coastguard Worker      skip executing vkCmdTraceRays and ray queries (RT extensions will still be
1387*61046927SAndroid Build Coastguard Worker      advertised)
1388*61046927SAndroid Build Coastguard Worker   ``notccompatcmask``
1389*61046927SAndroid Build Coastguard Worker      disable TC-compat CMASK for MSAA surfaces
1390*61046927SAndroid Build Coastguard Worker   ``noumr``
1391*61046927SAndroid Build Coastguard Worker      disable UMR dumps during GPU hang detection (only with
1392*61046927SAndroid Build Coastguard Worker      :envvar:`RADV_DEBUG` = ``hang``)
1393*61046927SAndroid Build Coastguard Worker   ``novrsflatshading``
1394*61046927SAndroid Build Coastguard Worker      disable VRS for flat shading (only on GFX10.3+)
1395*61046927SAndroid Build Coastguard Worker   ``preoptir``
1396*61046927SAndroid Build Coastguard Worker      dump LLVM IR before any optimizations
1397*61046927SAndroid Build Coastguard Worker   ``prologs``
1398*61046927SAndroid Build Coastguard Worker      dump vertex shader prologs
1399*61046927SAndroid Build Coastguard Worker   ``shaders``
1400*61046927SAndroid Build Coastguard Worker      dump shaders
1401*61046927SAndroid Build Coastguard Worker   ``shaderstats``
1402*61046927SAndroid Build Coastguard Worker      dump shader statistics
1403*61046927SAndroid Build Coastguard Worker   ``shadowregs``
1404*61046927SAndroid Build Coastguard Worker      enable register shadowing
1405*61046927SAndroid Build Coastguard Worker   ``spirv``
1406*61046927SAndroid Build Coastguard Worker      dump SPIR-V
1407*61046927SAndroid Build Coastguard Worker   ``splitfma``
1408*61046927SAndroid Build Coastguard Worker      split application-provided fused multiply-add in geometry stages
1409*61046927SAndroid Build Coastguard Worker   ``startup``
1410*61046927SAndroid Build Coastguard Worker      display info at startup
1411*61046927SAndroid Build Coastguard Worker   ``syncshaders``
1412*61046927SAndroid Build Coastguard Worker      synchronize shaders after all draws/dispatches
1413*61046927SAndroid Build Coastguard Worker   ``zerovram``
1414*61046927SAndroid Build Coastguard Worker      initialize all memory allocated in VRAM as zero
1415*61046927SAndroid Build Coastguard Worker
1416*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_FORCE_FAMILY
1417*61046927SAndroid Build Coastguard Worker
1418*61046927SAndroid Build Coastguard Worker   create a null device to compile shaders without a AMD GPU (e.g. VEGA10)
1419*61046927SAndroid Build Coastguard Worker
1420*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_FORCE_VRS
1421*61046927SAndroid Build Coastguard Worker
1422*61046927SAndroid Build Coastguard Worker   allow to force per-pipeline vertex VRS rates on GFX10.3+. This is only
1423*61046927SAndroid Build Coastguard Worker   forced for pipelines that don't explicitly use VRS or flat shading.
1424*61046927SAndroid Build Coastguard Worker   The supported values are 2x2, 1x2, 2x1 and 1x1. Only for testing purposes.
1425*61046927SAndroid Build Coastguard Worker
1426*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_FORCE_VRS_CONFIG_FILE
1427*61046927SAndroid Build Coastguard Worker
1428*61046927SAndroid Build Coastguard Worker   similar to ``RADV_FORCE_VRS`` but allow to configure from a file. If present,
1429*61046927SAndroid Build Coastguard Worker   this supersedes ``RADV_FORCE_VRS``.
1430*61046927SAndroid Build Coastguard Worker
1431*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_PERFTEST
1432*61046927SAndroid Build Coastguard Worker
1433*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do various things:
1434*61046927SAndroid Build Coastguard Worker
1435*61046927SAndroid Build Coastguard Worker   ``bolist``
1436*61046927SAndroid Build Coastguard Worker      enable the global BO list
1437*61046927SAndroid Build Coastguard Worker   ``cswave32``
1438*61046927SAndroid Build Coastguard Worker      enable wave32 for compute shaders (GFX10+)
1439*61046927SAndroid Build Coastguard Worker   ``dccmsaa``
1440*61046927SAndroid Build Coastguard Worker      enable DCC for MSAA images
1441*61046927SAndroid Build Coastguard Worker   ``dmashaders``
1442*61046927SAndroid Build Coastguard Worker      upload shaders to invisible VRAM (might be useful for non-resizable BAR systems)
1443*61046927SAndroid Build Coastguard Worker   ``emulate_rt``
1444*61046927SAndroid Build Coastguard Worker      forces ray-tracing to be emulated in software on GFX10_3+ and enables
1445*61046927SAndroid Build Coastguard Worker      rt extensions with older hardware.
1446*61046927SAndroid Build Coastguard Worker   ``gewave32``
1447*61046927SAndroid Build Coastguard Worker      enable wave32 for vertex/tess/geometry shaders (GFX10+)
1448*61046927SAndroid Build Coastguard Worker   ``localbos``
1449*61046927SAndroid Build Coastguard Worker      enable local BOs
1450*61046927SAndroid Build Coastguard Worker   ``nggc``
1451*61046927SAndroid Build Coastguard Worker      enable NGG culling on GPUs where it's not enabled by default (GFX10.1 only).
1452*61046927SAndroid Build Coastguard Worker   ``nircache``
1453*61046927SAndroid Build Coastguard Worker      cache per-stage NIR for graphics pipelines
1454*61046927SAndroid Build Coastguard Worker   ``nosam``
1455*61046927SAndroid Build Coastguard Worker      disable optimizations that get enabled when all VRAM is CPU visible.
1456*61046927SAndroid Build Coastguard Worker   ``pswave32``
1457*61046927SAndroid Build Coastguard Worker      enable wave32 for pixel shaders (GFX10+)
1458*61046927SAndroid Build Coastguard Worker   ``rtwave32``
1459*61046927SAndroid Build Coastguard Worker      enable wave32 for ray tracing shaders (GFX11+)
1460*61046927SAndroid Build Coastguard Worker   ``rtwave64``
1461*61046927SAndroid Build Coastguard Worker      enable wave64 for ray tracing shaders (GFX10-10.3)
1462*61046927SAndroid Build Coastguard Worker   ``sam``
1463*61046927SAndroid Build Coastguard Worker      enable optimizations to move more driver internal objects to VRAM.
1464*61046927SAndroid Build Coastguard Worker   ``transfer_queue``
1465*61046927SAndroid Build Coastguard Worker      enable experimental transfer queue support (GFX9+, not yet spec compliant)
1466*61046927SAndroid Build Coastguard Worker   ``video_decode``
1467*61046927SAndroid Build Coastguard Worker      enable experimental video decoding support
1468*61046927SAndroid Build Coastguard Worker
1469*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_TEX_ANISO
1470*61046927SAndroid Build Coastguard Worker
1471*61046927SAndroid Build Coastguard Worker   force anisotropy filter (up to 16)
1472*61046927SAndroid Build Coastguard Worker
1473*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_THREAD_TRACE_BUFFER_SIZE
1474*61046927SAndroid Build Coastguard Worker
1475*61046927SAndroid Build Coastguard Worker   set the SQTT/RGP buffer size in bytes (default value is 32MiB, the buffer is
1476*61046927SAndroid Build Coastguard Worker   automatically resized if too small)
1477*61046927SAndroid Build Coastguard Worker
1478*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_THREAD_TRACE_CACHE_COUNTERS
1479*61046927SAndroid Build Coastguard Worker
1480*61046927SAndroid Build Coastguard Worker   enable/disable SQTT/RGP cache counters on GFX10+ (enabled by default)
1481*61046927SAndroid Build Coastguard Worker
1482*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_THREAD_TRACE_INSTRUCTION_TIMING
1483*61046927SAndroid Build Coastguard Worker
1484*61046927SAndroid Build Coastguard Worker   enable/disable SQTT/RGP instruction timing (enabled by default)
1485*61046927SAndroid Build Coastguard Worker
1486*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_THREAD_TRACE_QUEUE_EVENTS
1487*61046927SAndroid Build Coastguard Worker
1488*61046927SAndroid Build Coastguard Worker   enable/disable SQTT/RGP queue events (enabled by default)
1489*61046927SAndroid Build Coastguard Worker
1490*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_RRA_TRACE_VALIDATE
1491*61046927SAndroid Build Coastguard Worker
1492*61046927SAndroid Build Coastguard Worker   enable validation of captured acceleration structures. Can be
1493*61046927SAndroid Build Coastguard Worker   useful if RRA crashes upon opening a trace.
1494*61046927SAndroid Build Coastguard Worker
1495*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_RRA_TRACE_HISTORY_SIZE
1496*61046927SAndroid Build Coastguard Worker
1497*61046927SAndroid Build Coastguard Worker   set the ray history buffer size when capturing RRA traces (default value is 100MiB,
1498*61046927SAndroid Build Coastguard Worker   small buffers may result in incomplete traces)
1499*61046927SAndroid Build Coastguard Worker
1500*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_RRA_TRACE_RESOLUTION_SCALE
1501*61046927SAndroid Build Coastguard Worker
1502*61046927SAndroid Build Coastguard Worker   decrease the resolution used for dumping the ray history resolution when capturing
1503*61046927SAndroid Build Coastguard Worker   RRA traces. This allows for dumping every Nth invocation along each dispatch dimension.
1504*61046927SAndroid Build Coastguard Worker
1505*61046927SAndroid Build Coastguard Worker.. envvar:: RADV_PROFILE_PSTATE
1506*61046927SAndroid Build Coastguard Worker
1507*61046927SAndroid Build Coastguard Worker   choose the specific pstate to enter when using thread tracing or when acquiring the
1508*61046927SAndroid Build Coastguard Worker   profiling lock for performance queries.
1509*61046927SAndroid Build Coastguard Worker
1510*61046927SAndroid Build Coastguard Worker   ``standard``
1511*61046927SAndroid Build Coastguard Worker      force GPU clocks to an arbitrary fixed level
1512*61046927SAndroid Build Coastguard Worker   ``min_sclk``
1513*61046927SAndroid Build Coastguard Worker      force the shader clock to its minimum level
1514*61046927SAndroid Build Coastguard Worker   ``min_mclk``
1515*61046927SAndroid Build Coastguard Worker      force the memory clock to its minimum level
1516*61046927SAndroid Build Coastguard Worker   ``peak``
1517*61046927SAndroid Build Coastguard Worker      force GPU clocks to their maximum level, this is the default value
1518*61046927SAndroid Build Coastguard Worker
1519*61046927SAndroid Build Coastguard Worker.. envvar:: ACO_DEBUG
1520*61046927SAndroid Build Coastguard Worker
1521*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do various things:
1522*61046927SAndroid Build Coastguard Worker
1523*61046927SAndroid Build Coastguard Worker   ``validateir``
1524*61046927SAndroid Build Coastguard Worker      validate the ACO IR at various points of compilation (enabled by
1525*61046927SAndroid Build Coastguard Worker      default for debug/debugoptimized builds)
1526*61046927SAndroid Build Coastguard Worker   ``novalidateir``
1527*61046927SAndroid Build Coastguard Worker      disable ACO IR validation in debug/debugoptimized builds
1528*61046927SAndroid Build Coastguard Worker   ``validatera``
1529*61046927SAndroid Build Coastguard Worker      validate register assignment of ACO IR and catches many RA bugs
1530*61046927SAndroid Build Coastguard Worker   ``force-waitcnt``
1531*61046927SAndroid Build Coastguard Worker      force emitting waitcnt states if there is something to wait for
1532*61046927SAndroid Build Coastguard Worker   ``force-waitdeps``
1533*61046927SAndroid Build Coastguard Worker     force emitting waitcnt dependencies for debugging hazards on GFX10+
1534*61046927SAndroid Build Coastguard Worker   ``novn``
1535*61046927SAndroid Build Coastguard Worker      disable value numbering
1536*61046927SAndroid Build Coastguard Worker   ``noopt``
1537*61046927SAndroid Build Coastguard Worker      disable various optimizations
1538*61046927SAndroid Build Coastguard Worker   ``nosched``
1539*61046927SAndroid Build Coastguard Worker      disable pre-RA, ILP and VOPD instruction scheduling
1540*61046927SAndroid Build Coastguard Worker   ``nosched-ilp``
1541*61046927SAndroid Build Coastguard Worker      disable ILP instruction scheduling
1542*61046927SAndroid Build Coastguard Worker   ``nosched-vopd``
1543*61046927SAndroid Build Coastguard Worker      disable VOPD instruction scheduling
1544*61046927SAndroid Build Coastguard Worker   ``perfinfo``
1545*61046927SAndroid Build Coastguard Worker      print information used to calculate some pipeline statistics
1546*61046927SAndroid Build Coastguard Worker   ``liveinfo``
1547*61046927SAndroid Build Coastguard Worker      print liveness and register demand information before scheduling
1548*61046927SAndroid Build Coastguard Worker
1549*61046927SAndroid Build Coastguard WorkerRadeonSI driver environment variables
1550*61046927SAndroid Build Coastguard Worker-------------------------------------
1551*61046927SAndroid Build Coastguard Worker
1552*61046927SAndroid Build Coastguard Worker.. envvar:: radeonsi_no_infinite_interp
1553*61046927SAndroid Build Coastguard Worker
1554*61046927SAndroid Build Coastguard Worker   Kill PS with infinite interp coeff (might fix hangs)
1555*61046927SAndroid Build Coastguard Worker
1556*61046927SAndroid Build Coastguard Worker.. envvar:: radeonsi_clamp_div_by_zero
1557*61046927SAndroid Build Coastguard Worker
1558*61046927SAndroid Build Coastguard Worker   Clamp div by zero (x / 0 becomes FLT_MAX instead of NaN) (might fix rendering corruptions)
1559*61046927SAndroid Build Coastguard Worker
1560*61046927SAndroid Build Coastguard Worker.. envvar:: radeonsi_zerovram
1561*61046927SAndroid Build Coastguard Worker
1562*61046927SAndroid Build Coastguard Worker   Clear all allocated memory to 0 before usage (might fix rendering corruptions)
1563*61046927SAndroid Build Coastguard Worker
1564*61046927SAndroid Build Coastguard Worker.. envvar:: AMD_DEBUG
1565*61046927SAndroid Build Coastguard Worker
1566*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do various things:
1567*61046927SAndroid Build Coastguard Worker
1568*61046927SAndroid Build Coastguard Worker   ``nodcc``
1569*61046927SAndroid Build Coastguard Worker      Disable DCC.
1570*61046927SAndroid Build Coastguard Worker   ``nodccclear``
1571*61046927SAndroid Build Coastguard Worker      Disable DCC fast clear
1572*61046927SAndroid Build Coastguard Worker   ``nodisplaydcc``
1573*61046927SAndroid Build Coastguard Worker      disable Delta Color Compression (DCC) on displayable images
1574*61046927SAndroid Build Coastguard Worker   ``nodccmsaa``
1575*61046927SAndroid Build Coastguard Worker      Disable DCC for MSAA
1576*61046927SAndroid Build Coastguard Worker   ``nodpbb``
1577*61046927SAndroid Build Coastguard Worker      Disable DPBB. Overrules the dpbb enable option.
1578*61046927SAndroid Build Coastguard Worker   ``noefc``
1579*61046927SAndroid Build Coastguard Worker      Disable hardware based encoder color format conversion
1580*61046927SAndroid Build Coastguard Worker   ``lowlatencyenc``
1581*61046927SAndroid Build Coastguard Worker      Enable low latency encoding
1582*61046927SAndroid Build Coastguard Worker   ``notiling``
1583*61046927SAndroid Build Coastguard Worker      Disable tiling
1584*61046927SAndroid Build Coastguard Worker   ``nofmask``
1585*61046927SAndroid Build Coastguard Worker      Disable MSAA compression
1586*61046927SAndroid Build Coastguard Worker   ``nohyperz``
1587*61046927SAndroid Build Coastguard Worker      Disable Hyper-Z
1588*61046927SAndroid Build Coastguard Worker   ``no2d``
1589*61046927SAndroid Build Coastguard Worker      Disable 2D tiling
1590*61046927SAndroid Build Coastguard Worker   ``info``
1591*61046927SAndroid Build Coastguard Worker      Print driver information
1592*61046927SAndroid Build Coastguard Worker   ``tex``
1593*61046927SAndroid Build Coastguard Worker      Print texture info
1594*61046927SAndroid Build Coastguard Worker   ``compute``
1595*61046927SAndroid Build Coastguard Worker      Print compute info
1596*61046927SAndroid Build Coastguard Worker   ``vm``
1597*61046927SAndroid Build Coastguard Worker      Print virtual addresses when creating resources
1598*61046927SAndroid Build Coastguard Worker   ``vs``
1599*61046927SAndroid Build Coastguard Worker      Print vertex shaders
1600*61046927SAndroid Build Coastguard Worker   ``ps``
1601*61046927SAndroid Build Coastguard Worker      Print pixel shaders
1602*61046927SAndroid Build Coastguard Worker   ``gs``
1603*61046927SAndroid Build Coastguard Worker      Print geometry shaders
1604*61046927SAndroid Build Coastguard Worker   ``tcs``
1605*61046927SAndroid Build Coastguard Worker      Print tessellation control shaders
1606*61046927SAndroid Build Coastguard Worker   ``tes``
1607*61046927SAndroid Build Coastguard Worker      Print tessellation evaluation shaders
1608*61046927SAndroid Build Coastguard Worker   ``cs``
1609*61046927SAndroid Build Coastguard Worker      Print compute shaders
1610*61046927SAndroid Build Coastguard Worker   ``noir``
1611*61046927SAndroid Build Coastguard Worker      Don't print the LLVM IR
1612*61046927SAndroid Build Coastguard Worker   ``nonir``
1613*61046927SAndroid Build Coastguard Worker      Don't print NIR when printing shaders
1614*61046927SAndroid Build Coastguard Worker   ``noasm``
1615*61046927SAndroid Build Coastguard Worker      Don't print disassembled shaders
1616*61046927SAndroid Build Coastguard Worker   ``preoptir``
1617*61046927SAndroid Build Coastguard Worker      Print the LLVM IR before initial optimizations
1618*61046927SAndroid Build Coastguard Worker   ``w32ge``
1619*61046927SAndroid Build Coastguard Worker      Use Wave32 for vertex, tessellation, and geometry shaders.
1620*61046927SAndroid Build Coastguard Worker   ``w32ps``
1621*61046927SAndroid Build Coastguard Worker      Use Wave32 for pixel shaders.
1622*61046927SAndroid Build Coastguard Worker   ``w32cs``
1623*61046927SAndroid Build Coastguard Worker      Use Wave32 for computes shaders.
1624*61046927SAndroid Build Coastguard Worker   ``w64ge``
1625*61046927SAndroid Build Coastguard Worker      Use Wave64 for vertex, tessellation, and geometry shaders.
1626*61046927SAndroid Build Coastguard Worker   ``w64ps``
1627*61046927SAndroid Build Coastguard Worker      Use Wave64 for pixel shaders.
1628*61046927SAndroid Build Coastguard Worker   ``w64cs``
1629*61046927SAndroid Build Coastguard Worker      Use Wave64 for computes shaders.
1630*61046927SAndroid Build Coastguard Worker   ``checkir``
1631*61046927SAndroid Build Coastguard Worker      Enable additional sanity checks on shader IR
1632*61046927SAndroid Build Coastguard Worker   ``mono``
1633*61046927SAndroid Build Coastguard Worker      Use old-style monolithic shaders compiled on demand
1634*61046927SAndroid Build Coastguard Worker   ``nooptvariant``
1635*61046927SAndroid Build Coastguard Worker      Disable compiling optimized shader variants.
1636*61046927SAndroid Build Coastguard Worker   ``useaco``
1637*61046927SAndroid Build Coastguard Worker      Use ACO as shader compiler when possible
1638*61046927SAndroid Build Coastguard Worker   ``nowc``
1639*61046927SAndroid Build Coastguard Worker      Disable GTT write combining
1640*61046927SAndroid Build Coastguard Worker   ``check_vm``
1641*61046927SAndroid Build Coastguard Worker      Check VM faults and dump debug info.
1642*61046927SAndroid Build Coastguard Worker   ``reserve_vmid``
1643*61046927SAndroid Build Coastguard Worker      Force VMID reservation per context.
1644*61046927SAndroid Build Coastguard Worker   ``nongg``
1645*61046927SAndroid Build Coastguard Worker      Disable NGG and use the legacy pipeline.
1646*61046927SAndroid Build Coastguard Worker   ``nggc``
1647*61046927SAndroid Build Coastguard Worker      Always use NGG culling even when it can hurt.
1648*61046927SAndroid Build Coastguard Worker   ``nonggc``
1649*61046927SAndroid Build Coastguard Worker      Disable NGG culling.
1650*61046927SAndroid Build Coastguard Worker   ``switch_on_eop``
1651*61046927SAndroid Build Coastguard Worker      Program WD/IA to switch on end-of-packet.
1652*61046927SAndroid Build Coastguard Worker   ``nooutoforder``
1653*61046927SAndroid Build Coastguard Worker      Disable out-of-order rasterization
1654*61046927SAndroid Build Coastguard Worker   ``dpbb``
1655*61046927SAndroid Build Coastguard Worker      Enable DPBB. Enable DPBB for gfx9 dGPU. Default enabled for gfx9 APU and >= gfx10.
1656*61046927SAndroid Build Coastguard Worker   ``extra_md``
1657*61046927SAndroid Build Coastguard Worker      add extra information in bo metadata to help tools (umr)
1658*61046927SAndroid Build Coastguard Worker
1659*61046927SAndroid Build Coastguard Workerr600 driver environment variables
1660*61046927SAndroid Build Coastguard Worker---------------------------------
1661*61046927SAndroid Build Coastguard Worker
1662*61046927SAndroid Build Coastguard Worker.. envvar:: R600_DEBUG
1663*61046927SAndroid Build Coastguard Worker
1664*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do various things:
1665*61046927SAndroid Build Coastguard Worker
1666*61046927SAndroid Build Coastguard Worker   ``nocpdma``
1667*61046927SAndroid Build Coastguard Worker      Disable CP DMA
1668*61046927SAndroid Build Coastguard Worker   ``nosb``
1669*61046927SAndroid Build Coastguard Worker      Disable sb backend for graphics shaders
1670*61046927SAndroid Build Coastguard Worker   ``sbcl``
1671*61046927SAndroid Build Coastguard Worker      Enable sb backend for compute shaders
1672*61046927SAndroid Build Coastguard Worker   ``sbdry``
1673*61046927SAndroid Build Coastguard Worker      Don't use optimized bytecode (just print the dumps)
1674*61046927SAndroid Build Coastguard Worker   ``sbstat``
1675*61046927SAndroid Build Coastguard Worker      Print optimization statistics for shaders
1676*61046927SAndroid Build Coastguard Worker   ``sbdump``
1677*61046927SAndroid Build Coastguard Worker      Print IR dumps after some optimization passes
1678*61046927SAndroid Build Coastguard Worker   ``sbnofallback``
1679*61046927SAndroid Build Coastguard Worker      Abort on errors instead of fallback
1680*61046927SAndroid Build Coastguard Worker   ``sbdisasm``
1681*61046927SAndroid Build Coastguard Worker      Use sb disassembler for shader dumps
1682*61046927SAndroid Build Coastguard Worker   ``sbsafemath``
1683*61046927SAndroid Build Coastguard Worker      Disable unsafe math optimizations
1684*61046927SAndroid Build Coastguard Worker   ``nirsb``
1685*61046927SAndroid Build Coastguard Worker      Enable NIR with SB optimizer
1686*61046927SAndroid Build Coastguard Worker   ``tex``
1687*61046927SAndroid Build Coastguard Worker      Print texture info
1688*61046927SAndroid Build Coastguard Worker   ``nir``
1689*61046927SAndroid Build Coastguard Worker      Enable experimental NIR shaders
1690*61046927SAndroid Build Coastguard Worker   ``compute``
1691*61046927SAndroid Build Coastguard Worker      Print compute info
1692*61046927SAndroid Build Coastguard Worker   ``vm``
1693*61046927SAndroid Build Coastguard Worker      Print virtual addresses when creating resources
1694*61046927SAndroid Build Coastguard Worker   ``info``
1695*61046927SAndroid Build Coastguard Worker      Print driver information
1696*61046927SAndroid Build Coastguard Worker   ``fs``
1697*61046927SAndroid Build Coastguard Worker      Print fetch shaders
1698*61046927SAndroid Build Coastguard Worker   ``vs``
1699*61046927SAndroid Build Coastguard Worker      Print vertex shaders
1700*61046927SAndroid Build Coastguard Worker   ``gs``
1701*61046927SAndroid Build Coastguard Worker      Print geometry shaders
1702*61046927SAndroid Build Coastguard Worker   ``ps``
1703*61046927SAndroid Build Coastguard Worker      Print pixel shaders
1704*61046927SAndroid Build Coastguard Worker   ``cs``
1705*61046927SAndroid Build Coastguard Worker      Print compute shaders
1706*61046927SAndroid Build Coastguard Worker   ``tcs``
1707*61046927SAndroid Build Coastguard Worker      Print tessellation control shaders
1708*61046927SAndroid Build Coastguard Worker   ``tes``
1709*61046927SAndroid Build Coastguard Worker      Print tessellation evaluation shaders
1710*61046927SAndroid Build Coastguard Worker   ``noir``
1711*61046927SAndroid Build Coastguard Worker      Don't print the LLVM IR
1712*61046927SAndroid Build Coastguard Worker   ``notgsi``
1713*61046927SAndroid Build Coastguard Worker      Don't print the TGSI
1714*61046927SAndroid Build Coastguard Worker   ``noasm``
1715*61046927SAndroid Build Coastguard Worker      Don't print disassembled shaders
1716*61046927SAndroid Build Coastguard Worker   ``preoptir``
1717*61046927SAndroid Build Coastguard Worker      Print the LLVM IR before initial optimizations
1718*61046927SAndroid Build Coastguard Worker   ``checkir``
1719*61046927SAndroid Build Coastguard Worker      Enable additional sanity checks on shader IR
1720*61046927SAndroid Build Coastguard Worker   ``nooptvariant``
1721*61046927SAndroid Build Coastguard Worker      Disable compiling optimized shader variants.
1722*61046927SAndroid Build Coastguard Worker   ``testdma``
1723*61046927SAndroid Build Coastguard Worker      Invoke SDMA tests and exit.
1724*61046927SAndroid Build Coastguard Worker   ``testvmfaultcp``
1725*61046927SAndroid Build Coastguard Worker      Invoke a CP VM fault test and exit.
1726*61046927SAndroid Build Coastguard Worker   ``testvmfaultsdma``
1727*61046927SAndroid Build Coastguard Worker      Invoke a SDMA VM fault test and exit.
1728*61046927SAndroid Build Coastguard Worker   ``testvmfaultshader``
1729*61046927SAndroid Build Coastguard Worker      Invoke a shader VM fault test and exit.
1730*61046927SAndroid Build Coastguard Worker   ``nodma``
1731*61046927SAndroid Build Coastguard Worker      Disable asynchronous DMA
1732*61046927SAndroid Build Coastguard Worker   ``nohyperz``
1733*61046927SAndroid Build Coastguard Worker      Disable Hyper-Z
1734*61046927SAndroid Build Coastguard Worker   ``noinvalrange``
1735*61046927SAndroid Build Coastguard Worker      Disable handling of INVALIDATE_RANGE map flags
1736*61046927SAndroid Build Coastguard Worker   ``no2d``
1737*61046927SAndroid Build Coastguard Worker      Disable 2D tiling
1738*61046927SAndroid Build Coastguard Worker   ``notiling``
1739*61046927SAndroid Build Coastguard Worker      Disable tiling
1740*61046927SAndroid Build Coastguard Worker   ``switch_on_eop``
1741*61046927SAndroid Build Coastguard Worker      Program WD/IA to switch on end-of-packet.
1742*61046927SAndroid Build Coastguard Worker   ``forcedma``
1743*61046927SAndroid Build Coastguard Worker      Use asynchronous DMA for all operations when possible.
1744*61046927SAndroid Build Coastguard Worker   ``precompile``
1745*61046927SAndroid Build Coastguard Worker      Compile one shader variant at shader creation.
1746*61046927SAndroid Build Coastguard Worker   ``nowc``
1747*61046927SAndroid Build Coastguard Worker      Disable GTT write combining
1748*61046927SAndroid Build Coastguard Worker   ``check_vm``
1749*61046927SAndroid Build Coastguard Worker      Check VM faults and dump debug info.
1750*61046927SAndroid Build Coastguard Worker   ``unsafemath``
1751*61046927SAndroid Build Coastguard Worker      Enable unsafe math shader optimizations
1752*61046927SAndroid Build Coastguard Worker
1753*61046927SAndroid Build Coastguard Worker.. envvar:: R600_DEBUG_COMPUTE
1754*61046927SAndroid Build Coastguard Worker
1755*61046927SAndroid Build Coastguard Worker   if set to ``true``, various compute-related debug information will
1756*61046927SAndroid Build Coastguard Worker   be printed to stderr. Defaults to ``false``.
1757*61046927SAndroid Build Coastguard Worker
1758*61046927SAndroid Build Coastguard Worker.. envvar:: R600_DUMP_SHADERS
1759*61046927SAndroid Build Coastguard Worker
1760*61046927SAndroid Build Coastguard Worker   if set to ``true``, NIR shaders will be printed to stderr. Defaults
1761*61046927SAndroid Build Coastguard Worker   to ``false``.
1762*61046927SAndroid Build Coastguard Worker
1763*61046927SAndroid Build Coastguard Worker.. envvar:: R600_HYPERZ
1764*61046927SAndroid Build Coastguard Worker
1765*61046927SAndroid Build Coastguard Worker   If set to ``false``, disables HyperZ optimizations. Defaults to ``true``.
1766*61046927SAndroid Build Coastguard Worker
1767*61046927SAndroid Build Coastguard Worker.. envvar:: R600_NIR_DEBUG
1768*61046927SAndroid Build Coastguard Worker
1769*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do various things:
1770*61046927SAndroid Build Coastguard Worker
1771*61046927SAndroid Build Coastguard Worker   ``instr``
1772*61046927SAndroid Build Coastguard Worker      Log all consumed nir instructions
1773*61046927SAndroid Build Coastguard Worker   ``ir``
1774*61046927SAndroid Build Coastguard Worker      Log created R600 IR
1775*61046927SAndroid Build Coastguard Worker   ``cc``
1776*61046927SAndroid Build Coastguard Worker      Log R600 IR to assembly code creation
1777*61046927SAndroid Build Coastguard Worker   ``noerr``
1778*61046927SAndroid Build Coastguard Worker      Don't log shader conversion errors
1779*61046927SAndroid Build Coastguard Worker   ``si``
1780*61046927SAndroid Build Coastguard Worker      Log shader info (non-zero values)
1781*61046927SAndroid Build Coastguard Worker   ``reg``
1782*61046927SAndroid Build Coastguard Worker      Log register allocation and lookup
1783*61046927SAndroid Build Coastguard Worker   ``io``
1784*61046927SAndroid Build Coastguard Worker      Log shader in and output
1785*61046927SAndroid Build Coastguard Worker   ``ass``
1786*61046927SAndroid Build Coastguard Worker      Log IR to assembly conversion
1787*61046927SAndroid Build Coastguard Worker   ``flow``
1788*61046927SAndroid Build Coastguard Worker      Log control flow instructions
1789*61046927SAndroid Build Coastguard Worker   ``merge``
1790*61046927SAndroid Build Coastguard Worker      Log register merge operations
1791*61046927SAndroid Build Coastguard Worker   ``nomerge``
1792*61046927SAndroid Build Coastguard Worker      Skip register merge step
1793*61046927SAndroid Build Coastguard Worker   ``tex``
1794*61046927SAndroid Build Coastguard Worker      Log texture ops
1795*61046927SAndroid Build Coastguard Worker   ``trans``
1796*61046927SAndroid Build Coastguard Worker      Log generic translation messages
1797*61046927SAndroid Build Coastguard Worker
1798*61046927SAndroid Build Coastguard Workerr300 driver environment variables
1799*61046927SAndroid Build Coastguard Worker---------------------------------
1800*61046927SAndroid Build Coastguard Worker
1801*61046927SAndroid Build Coastguard Worker.. envvar:: RADEON_DEBUG
1802*61046927SAndroid Build Coastguard Worker
1803*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do various things:
1804*61046927SAndroid Build Coastguard Worker
1805*61046927SAndroid Build Coastguard Worker   ``info``
1806*61046927SAndroid Build Coastguard Worker      Print hardware info (printed by default on debug builds
1807*61046927SAndroid Build Coastguard Worker   ``fp``
1808*61046927SAndroid Build Coastguard Worker      Log fragment program compilation
1809*61046927SAndroid Build Coastguard Worker   ``vp``
1810*61046927SAndroid Build Coastguard Worker      Log vertex program compilation
1811*61046927SAndroid Build Coastguard Worker   ``draw``
1812*61046927SAndroid Build Coastguard Worker      Log draw calls
1813*61046927SAndroid Build Coastguard Worker   ``swtcl``
1814*61046927SAndroid Build Coastguard Worker      Log SWTCL-specific info
1815*61046927SAndroid Build Coastguard Worker   ``rsblock``
1816*61046927SAndroid Build Coastguard Worker      Log rasterizer registers
1817*61046927SAndroid Build Coastguard Worker   ``psc``
1818*61046927SAndroid Build Coastguard Worker      Log vertex stream registers
1819*61046927SAndroid Build Coastguard Worker   ``tex``
1820*61046927SAndroid Build Coastguard Worker      Log basic info about textures
1821*61046927SAndroid Build Coastguard Worker   ``texalloc``
1822*61046927SAndroid Build Coastguard Worker      Log texture mipmap tree info
1823*61046927SAndroid Build Coastguard Worker   ``rs``
1824*61046927SAndroid Build Coastguard Worker      Log rasterizer
1825*61046927SAndroid Build Coastguard Worker   ``fb``
1826*61046927SAndroid Build Coastguard Worker      Log framebuffer
1827*61046927SAndroid Build Coastguard Worker   ``cbzb``
1828*61046927SAndroid Build Coastguard Worker      Log fast color clear info
1829*61046927SAndroid Build Coastguard Worker   ``hyperz``
1830*61046927SAndroid Build Coastguard Worker      Log HyperZ info
1831*61046927SAndroid Build Coastguard Worker   ``scissor``
1832*61046927SAndroid Build Coastguard Worker      Log scissor info
1833*61046927SAndroid Build Coastguard Worker   ``msaa``
1834*61046927SAndroid Build Coastguard Worker      Log MSAA resources
1835*61046927SAndroid Build Coastguard Worker   ``anisohq``
1836*61046927SAndroid Build Coastguard Worker      Use high quality anisotropic filtering
1837*61046927SAndroid Build Coastguard Worker   ``notiling``
1838*61046927SAndroid Build Coastguard Worker      Disable tiling
1839*61046927SAndroid Build Coastguard Worker   ``noimmd``
1840*61046927SAndroid Build Coastguard Worker      Disable immediate mode
1841*61046927SAndroid Build Coastguard Worker   ``noopt``
1842*61046927SAndroid Build Coastguard Worker      Disable shader optimizations
1843*61046927SAndroid Build Coastguard Worker   ``nocbzb``
1844*61046927SAndroid Build Coastguard Worker      Disable fast color clear
1845*61046927SAndroid Build Coastguard Worker   ``nozmask``
1846*61046927SAndroid Build Coastguard Worker      Disable zbuffer compression
1847*61046927SAndroid Build Coastguard Worker   ``nohiz``
1848*61046927SAndroid Build Coastguard Worker      Disable hierarchical zbuffer
1849*61046927SAndroid Build Coastguard Worker   ``nocmask``
1850*61046927SAndroid Build Coastguard Worker      Disable AA compression and fast AA clear
1851*61046927SAndroid Build Coastguard Worker   ``notcl``
1852*61046927SAndroid Build Coastguard Worker      Disable hardware accelerated Transform/Clip/Lighting
1853*61046927SAndroid Build Coastguard Worker
1854*61046927SAndroid Build Coastguard WorkerAsahi driver environment variables
1855*61046927SAndroid Build Coastguard Worker----------------------------------
1856*61046927SAndroid Build Coastguard Worker
1857*61046927SAndroid Build Coastguard Worker.. envvar:: ASAHI_MESA_DEBUG
1858*61046927SAndroid Build Coastguard Worker
1859*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do various things:
1860*61046927SAndroid Build Coastguard Worker
1861*61046927SAndroid Build Coastguard Worker   ``trace``
1862*61046927SAndroid Build Coastguard Worker      Trace work submitted to the GPU to files, using the agxdecode
1863*61046927SAndroid Build Coastguard Worker      infrastructure. This produces a large volume of data, so should be used
1864*61046927SAndroid Build Coastguard Worker      with caution. The traces are written to ``agxdecode.dump``,
1865*61046927SAndroid Build Coastguard Worker      but this can be overridden using ``AGXDECODE_DUMP_FILE``.
1866*61046927SAndroid Build Coastguard Worker   ``no16``
1867*61046927SAndroid Build Coastguard Worker      Disable 16-bit floating point support. This may workaround application
1868*61046927SAndroid Build Coastguard Worker      bugs in certain OpenGL ES applications originally written for desktops. If
1869*61046927SAndroid Build Coastguard Worker      such applications are found in the wild, they should be fixed upstream (if
1870*61046927SAndroid Build Coastguard Worker      possible) or added in the Mesa-wide driconf (if closed source).
1871*61046927SAndroid Build Coastguard Worker   ``dirty``
1872*61046927SAndroid Build Coastguard Worker      In debug builds only: disable dirty tracking optimizations.
1873*61046927SAndroid Build Coastguard Worker   ``nowc``
1874*61046927SAndroid Build Coastguard Worker      Disable write-combining (force all allocations to be write-through). This
1875*61046927SAndroid Build Coastguard Worker      may be useful for diagnosing certain performance issues. Note imported
1876*61046927SAndroid Build Coastguard Worker      buffers may still be write-combined.
1877*61046927SAndroid Build Coastguard Worker
1878*61046927SAndroid Build Coastguard Worker.. envvar:: AGX_MESA_DEBUG
1879*61046927SAndroid Build Coastguard Worker
1880*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags, which do various things:
1881*61046927SAndroid Build Coastguard Worker
1882*61046927SAndroid Build Coastguard Worker   ``shaders``
1883*61046927SAndroid Build Coastguard Worker      Print shaders being compiled at various stages in the pipeline.
1884*61046927SAndroid Build Coastguard Worker   ``shaderdb``
1885*61046927SAndroid Build Coastguard Worker      Print statistics about compiled shaders.
1886*61046927SAndroid Build Coastguard Worker   ``verbose``
1887*61046927SAndroid Build Coastguard Worker      Disassemble in verbose mode, including additional information that may be
1888*61046927SAndroid Build Coastguard Worker      useful for debugging.
1889*61046927SAndroid Build Coastguard Worker   ``internal``
1890*61046927SAndroid Build Coastguard Worker      Include even internal shaders (as produced for clears, blits, and such)
1891*61046927SAndroid Build Coastguard Worker      when printing shaders. Without this flag, internal shaders are ignored by
1892*61046927SAndroid Build Coastguard Worker      the shaders and shaderdb flags.
1893*61046927SAndroid Build Coastguard Worker   ``novalidate``
1894*61046927SAndroid Build Coastguard Worker      In debug builds only: skip internal intermediate representation validation.
1895*61046927SAndroid Build Coastguard Worker   ``noopt``
1896*61046927SAndroid Build Coastguard Worker      Disable various backend optimizations.
1897*61046927SAndroid Build Coastguard Worker
1898*61046927SAndroid Build Coastguard Worker.. _imagination env-vars:
1899*61046927SAndroid Build Coastguard Worker
1900*61046927SAndroid Build Coastguard WorkerPowerVR driver environment variables
1901*61046927SAndroid Build Coastguard Worker------------------------------------------------
1902*61046927SAndroid Build Coastguard Worker
1903*61046927SAndroid Build Coastguard Worker.. envvar:: PVR_DEBUG
1904*61046927SAndroid Build Coastguard Worker
1905*61046927SAndroid Build Coastguard Worker   A comma-separated list of debug options. Use ``PVR_DEBUG=help`` to
1906*61046927SAndroid Build Coastguard Worker   print a list of available options.
1907*61046927SAndroid Build Coastguard Worker
1908*61046927SAndroid Build Coastguard Worker.. envvar:: ROGUE_DEBUG
1909*61046927SAndroid Build Coastguard Worker
1910*61046927SAndroid Build Coastguard Worker   a comma-separated list of named flags for the Rogue compiler,
1911*61046927SAndroid Build Coastguard Worker   which do various things:
1912*61046927SAndroid Build Coastguard Worker
1913*61046927SAndroid Build Coastguard Worker   ``nir``
1914*61046927SAndroid Build Coastguard Worker      Print the input NIR to stdout.
1915*61046927SAndroid Build Coastguard Worker   ``nir_passes``
1916*61046927SAndroid Build Coastguard Worker      Print the output of each NIR pass to stdout.
1917*61046927SAndroid Build Coastguard Worker   ``ir``
1918*61046927SAndroid Build Coastguard Worker      Print the input Rogue IR to stdout.
1919*61046927SAndroid Build Coastguard Worker   ``ir_passes``
1920*61046927SAndroid Build Coastguard Worker      Print the output of each Rogue IR pass to stdout.
1921*61046927SAndroid Build Coastguard Worker   ``ir_details``
1922*61046927SAndroid Build Coastguard Worker      Includes additional details when printing Rogue IR.
1923*61046927SAndroid Build Coastguard Worker   ``vld_skip``
1924*61046927SAndroid Build Coastguard Worker      Skips the compiler validation step.
1925*61046927SAndroid Build Coastguard Worker   ``vld_nonfatal``
1926*61046927SAndroid Build Coastguard Worker      Prints all the validation errors instead of stopping after the first.
1927*61046927SAndroid Build Coastguard Worker
1928*61046927SAndroid Build Coastguard Worker.. envvar:: ROGUE_COLOR
1929*61046927SAndroid Build Coastguard Worker
1930*61046927SAndroid Build Coastguard Worker   if set to ``auto`` Rogue IR will be colorized if stdout is not a pipe.
1931*61046927SAndroid Build Coastguard Worker   Color is forced off if set to ``off``/``0`` or on if set to ``on``/``1``.
1932*61046927SAndroid Build Coastguard Worker   Defaults to ``auto``.
1933*61046927SAndroid Build Coastguard Worker
1934*61046927SAndroid Build Coastguard Workeri915 driver environment variables
1935*61046927SAndroid Build Coastguard Worker---------------------------------
1936*61046927SAndroid Build Coastguard Worker
1937*61046927SAndroid Build Coastguard Worker.. envvar:: I915_DEBUG
1938*61046927SAndroid Build Coastguard Worker
1939*61046927SAndroid Build Coastguard Worker   Debug flags for the i915 driver.
1940*61046927SAndroid Build Coastguard Worker
1941*61046927SAndroid Build Coastguard Worker.. envvar:: I915_NO_HW
1942*61046927SAndroid Build Coastguard Worker
1943*61046927SAndroid Build Coastguard Worker   Stop the i915 driver from submitting commands to the hardware.
1944*61046927SAndroid Build Coastguard Worker
1945*61046927SAndroid Build Coastguard Worker.. envvar:: I915_DUMP_CMD
1946*61046927SAndroid Build Coastguard Worker
1947*61046927SAndroid Build Coastguard Worker   Dump all commands going to the hardware.
1948*61046927SAndroid Build Coastguard Worker
1949*61046927SAndroid Build Coastguard WorkerFreedreno driver environment variables
1950*61046927SAndroid Build Coastguard Worker--------------------------------------
1951*61046927SAndroid Build Coastguard Worker
1952*61046927SAndroid Build Coastguard Worker.. envvar:: FD_MESA_DEBUG
1953*61046927SAndroid Build Coastguard Worker
1954*61046927SAndroid Build Coastguard Worker   Debug flags for the Freedreno driver.
1955*61046927SAndroid Build Coastguard Worker
1956*61046927SAndroid Build Coastguard Worker----
1957*61046927SAndroid Build Coastguard Worker
1958*61046927SAndroid Build Coastguard WorkerOther Gallium drivers have their own environment variables. These may
1959*61046927SAndroid Build Coastguard Workerchange frequently so the source code should be consulted for details.
1960*61046927SAndroid Build Coastguard Worker
1961*61046927SAndroid Build Coastguard Worker
1962*61046927SAndroid Build Coastguard WorkerVulkan loader environment variables
1963*61046927SAndroid Build Coastguard Worker-----------------------------------
1964*61046927SAndroid Build Coastguard Worker
1965*61046927SAndroid Build Coastguard WorkerThese variable are handled by `Khronos' Vulkan loader
1966*61046927SAndroid Build Coastguard Worker<https://github.com/KhronosGroup/Vulkan-Loader>`__, *not by Mesa*, but they
1967*61046927SAndroid Build Coastguard Workerare documented here as we reference them in other places in our docs.
1968*61046927SAndroid Build Coastguard Worker
1969*61046927SAndroid Build Coastguard Worker.. envvar:: VK_DRIVER_FILES
1970*61046927SAndroid Build Coastguard Worker
1971*61046927SAndroid Build Coastguard Worker   Force the loader to use the specific driver JSON files. The value contains
1972*61046927SAndroid Build Coastguard Worker   a list of delimited full path listings to driver JSON Manifest files
1973*61046927SAndroid Build Coastguard Worker   and/or paths to folders containing driver JSON files.
1974*61046927SAndroid Build Coastguard Worker
1975*61046927SAndroid Build Coastguard Worker   See `Vulkan loader docs on environment variables`_.
1976*61046927SAndroid Build Coastguard Worker
1977*61046927SAndroid Build Coastguard Worker.. envvar:: VK_LOADER_LAYERS_ENABLE
1978*61046927SAndroid Build Coastguard Worker
1979*61046927SAndroid Build Coastguard Worker    A comma-delimited list of globs to search for in known layers and used to
1980*61046927SAndroid Build Coastguard Worker    select only the layers whose layer name matches one or more of the
1981*61046927SAndroid Build Coastguard Worker    provided globs.
1982*61046927SAndroid Build Coastguard Worker    Known layers are those which are found by the loader taking into account
1983*61046927SAndroid Build Coastguard Worker    default search paths and other environment variables (like VK_LAYER_PATH).
1984*61046927SAndroid Build Coastguard Worker
1985*61046927SAndroid Build Coastguard Worker   See `Vulkan loader docs on environment variables`_.
1986*61046927SAndroid Build Coastguard Worker
1987*61046927SAndroid Build Coastguard Worker.. envvar:: VK_ICD_FILENAMES
1988*61046927SAndroid Build Coastguard Worker
1989*61046927SAndroid Build Coastguard Worker   `Deprecated`_, replaced by :envvar:`VK_DRIVER_FILES`.
1990*61046927SAndroid Build Coastguard Worker
1991*61046927SAndroid Build Coastguard Worker.. envvar:: VK_INSTANCE_LAYERS
1992*61046927SAndroid Build Coastguard Worker
1993*61046927SAndroid Build Coastguard Worker   `Deprecated`_, replaced by :envvar:`VK_LOADER_LAYERS_ENABLE`.
1994*61046927SAndroid Build Coastguard Worker
1995*61046927SAndroid Build Coastguard Worker.. _Vulkan loader docs on environment variables: https://github.com/KhronosGroup/Vulkan-Loader/blob/main/docs/LoaderInterfaceArchitecture.md#table-of-debug-environment-variables
1996*61046927SAndroid Build Coastguard Worker.. _Deprecated: https://github.com/KhronosGroup/Vulkan-Loader/blob/main/docs/LoaderInterfaceArchitecture.md#deprecated-environment-variables
1997