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