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