VirtualBox

source: vbox/trunk/src/VBox/Additions/3D/mesa/mesa-24.0.2/docs/envvars.rst

最後變更 在這個檔案是 103996,由 vboxsync 提交於 11 月 前

Additions/3D/mesa: export mesa-24.0.2 to OSE. bugref:10606

  • 屬性 svn:eol-style 設為 native
檔案大小: 57.0 KB
 
1Environment Variables
2=====================
3
4Normally, no environment variables need to be set. Most of the
5environment variables used by Mesa/Gallium are for debugging purposes,
6but they can sometimes be useful for debugging end-user issues.
7
8LibGL 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
41Core 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
397NIR passes environment variables
398--------------------------------
399
400The following are only applicable for drivers that uses NIR, as they
401modify the behavior for the common ``NIR_PASS`` and ``NIR_PASS_V`` macros,
402that 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
413Mesa Xlib driver environment variables
414--------------------------------------
415
416The following are only applicable to the Mesa Xlib software driver. See
417the :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
444Mesa WGL driver environment variables
445-------------------------------------
446
447The following are only applicable to the Mesa WGL driver, which is in use
448on 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
460Intel 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
807DRI environment variables
808-------------------------
809
810.. envvar:: DRI_NO_MSAA
811
812 disable MSAA for GLX/EGL MSAA visuals
813
814
815Vulkan 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
833EGL environment variables
834-------------------------
835
836Mesa EGL supports different sets of environment variables. See the
837:doc:`Mesa EGL <egl>` page for the details.
838
839Gallium 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
964Clover 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
1019Rusticl 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
1070clc 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
1081Nine 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
1107Softpipe 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
1128LLVMpipe 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
1151VMware 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
1178See the driver code for other, lesser-used variables.
1179
1180WGL 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
1190VA-API environment variables
1191----------------------------
1192
1193.. envvar:: VAAPI_MPEG4_ENABLED
1194
1195 enable MPEG4 for VA-API, disabled by default.
1196
1197VC4 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
1205V3D/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
1216RADV 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
1416RadeonSI 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
1524r600 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
1663r300 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
1719Asahi 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
1765PowerVR 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
1799i915 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
1814Freedreno driver environment variables
1815--------------------------------------
1816
1817.. envvar:: FD_MESA_DEBUG
1818
1819 Debug flags for the Freedreno driver.
1820
1821----
1822
1823Other Gallium drivers have their own environment variables. These may
1824change frequently so the source code should be consulted for details.
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette