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``LIBGL_DEBUG`` 12 If defined debug information will be printed to stderr. If set to 13 ``verbose`` additional information will be printed. 14``LIBGL_DRIVERS_PATH`` 15 colon-separated list of paths to search for DRI drivers 16``LIBGL_ALWAYS_INDIRECT`` 17 if set to ``true``, forces an indirect rendering context/connection. 18``LIBGL_ALWAYS_SOFTWARE`` 19 if set to ``true``, always use software rendering 20``LIBGL_NO_DRAWARRAYS`` 21 if set to ``true``, do not use DrawArrays GLX protocol (for 22 debugging) 23``LIBGL_SHOW_FPS`` 24 print framerate to stdout based on the number of ``glXSwapBuffers`` 25 calls per second. 26``LIBGL_DRI3_DISABLE`` 27 disable DRI3 if set to ``true``. 28 29Core Mesa environment variables 30------------------------------- 31 32``MESA_NO_ASM`` 33 if set, disables all assembly language optimizations 34``MESA_NO_MMX`` 35 if set, disables Intel MMX optimizations 36``MESA_NO_3DNOW`` 37 if set, disables AMD 3DNow! optimizations 38``MESA_NO_SSE`` 39 if set, disables Intel SSE optimizations 40``MESA_NO_ERROR`` 41 if set to 1, error checking is disabled as per ``KHR_no_error``. This 42 will result in undefined behavior for invalid use of the API, but 43 can reduce CPU use for apps that are known to be error free. 44``MESA_DEBUG`` 45 if set, error messages are printed to stderr. For example, if the 46 application generates a ``GL_INVALID_ENUM`` error, a corresponding 47 error message indicating where the error occurred, and possibly why, 48 will be printed to stderr. For release builds, ``MESA_DEBUG`` 49 defaults to off (no debug output). ``MESA_DEBUG`` accepts the 50 following comma-separated list of named flags, which adds extra 51 behavior to just set ``MESA_DEBUG=1``: 52 53 ``silent`` 54 turn off debug messages. Only useful for debug builds. 55 ``flush`` 56 flush after each drawing command 57 ``incomplete_tex`` 58 extra debug messages when a texture is incomplete 59 ``incomplete_fbo`` 60 extra debug messages when a FBO is incomplete 61 ``context`` 62 create a debug context (see ``GLX_CONTEXT_DEBUG_BIT_ARB``) and 63 print error and performance messages to stderr (or 64 ``MESA_LOG_FILE``). 65 66``MESA_LOG_FILE`` 67 specifies a file name for logging all errors, warnings, etc., rather 68 than stderr 69``MESA_TEX_PROG`` 70 if set, implement conventional texture env modes with fragment 71 programs (intended for developers only) 72``MESA_TNL_PROG`` 73 if set, implement conventional vertex transformation operations with 74 vertex programs (intended for developers only). Setting this variable 75 automatically sets the ``MESA_TEX_PROG`` variable as well. 76``MESA_EXTENSION_OVERRIDE`` 77 can be used to enable/disable extensions. A value such as 78 ``GL_EXT_foo -GL_EXT_bar`` will enable the ``GL_EXT_foo`` extension 79 and disable the ``GL_EXT_bar`` extension. 80``MESA_EXTENSION_MAX_YEAR`` 81 The ``GL_EXTENSIONS`` string returned by Mesa is sorted by extension 82 year. If this variable is set to year X, only extensions defined on 83 or before year X will be reported. This is to work-around a bug in 84 some games where the extension string is copied into a fixed-size 85 buffer without truncating. If the extension string is too long, the 86 buffer overrun can cause the game to crash. This is a work-around for 87 that. 88``MESA_GL_VERSION_OVERRIDE`` 89 changes the value returned by ``glGetString(GL_VERSION)`` and 90 possibly the GL API type. 91 92 - The format should be ``MAJOR.MINOR[FC|COMPAT]`` 93 - ``FC`` is an optional suffix that indicates a forward compatible 94 context. This is only valid for versions >= 3.0. 95 - ``COMPAT`` is an optional suffix that indicates a compatibility 96 context or ``GL_ARB_compatibility`` support. This is only valid 97 for versions >= 3.1. 98 - GL versions <= 3.0 are set to a compatibility (non-Core) profile 99 - GL versions = 3.1, depending on the driver, it may or may not have 100 the ``ARB_compatibility`` extension enabled. 101 - GL versions >= 3.2 are set to a Core profile 102 - Examples: 103 104 ``2.1`` 105 select a compatibility (non-Core) profile with GL version 2.1. 106 ``3.0`` 107 select a compatibility (non-Core) profile with GL version 3.0. 108 ``3.0FC`` 109 select a Core+Forward Compatible profile with GL version 3.0. 110 ``3.1`` 111 select GL version 3.1 with ``GL_ARB_compatibility`` enabled per 112 the driver default. 113 ``3.1FC`` 114 select GL version 3.1 with forward compatibility and 115 ``GL_ARB_compatibility`` disabled. 116 ``3.1COMPAT`` 117 select GL version 3.1 with ``GL_ARB_compatibility`` enabled. 118 ``X.Y`` 119 override GL version to X.Y without changing the profile. 120 ``X.YFC`` 121 select a Core+Forward Compatible profile with GL version X.Y. 122 ``X.YCOMPAT`` 123 select a Compatibility profile with GL version X.Y. 124 125 - Mesa may not really implement all the features of the given 126 version. (for developers only) 127 128``MESA_GLES_VERSION_OVERRIDE`` 129 changes the value returned by ``glGetString(GL_VERSION)`` for OpenGL 130 ES. 131 132 - The format should be ``MAJOR.MINOR`` 133 - Examples: ``2.0``, ``3.0``, ``3.1`` 134 - Mesa may not really implement all the features of the given 135 version. (for developers only) 136 137``MESA_GLSL_VERSION_OVERRIDE`` 138 changes the value returned by 139 ``glGetString(GL_SHADING_LANGUAGE_VERSION)``. Valid values are 140 integers, such as ``130``. Mesa will not really implement all the 141 features of the given language version if it's higher than what's 142 normally reported. (for developers only) 143``MESA_GLSL_CACHE_DISABLE`` 144 if set to ``true``, disables the GLSL shader cache. If set to 145 ``false``, enables the GLSL shader cache when it is disabled by 146 default. 147``MESA_GLSL_CACHE_MAX_SIZE`` 148 if set, determines the maximum size of the on-disk cache of compiled 149 GLSL programs. Should be set to a number optionally followed by 150 ``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or 151 gigabytes. By default, gigabytes will be assumed. And if unset, a 152 maximum size of 1GB will be used. 153 154 .. note:: 155 156 A separate cache might be created for each architecture that Mesa is 157 installed for on your system. For example under the default settings 158 you may end up with a 1GB cache for x86_64 and another 1GB cache for 159 i386. 160 161``MESA_GLSL_CACHE_DIR`` 162 if set, determines the directory to be used for the on-disk cache of 163 compiled GLSL programs. If this variable is not set, then the cache 164 will be stored in ``$XDG_CACHE_HOME/mesa_shader_cache`` (if that 165 variable is set), or else within ``.cache/mesa_shader_cache`` within 166 the user's home directory. 167``MESA_GLSL`` 168 :ref:`shading language compiler options <envvars>` 169``MESA_NO_MINMAX_CACHE`` 170 when set, the minmax index cache is globally disabled. 171``MESA_SHADER_CAPTURE_PATH`` 172 see :ref:`Capturing Shaders <capture>` 173``MESA_SHADER_DUMP_PATH`` and ``MESA_SHADER_READ_PATH`` 174 see :ref:`Experimenting with Shader 175 Replacements <replacement>` 176``MESA_VK_VERSION_OVERRIDE`` 177 changes the Vulkan physical device version as returned in 178 ``VkPhysicalDeviceProperties::apiVersion``. 179 180 - The format should be ``MAJOR.MINOR[.PATCH]`` 181 - This will not let you force a version higher than the driver's 182 instance version as advertised by ``vkEnumerateInstanceVersion`` 183 - This can be very useful for debugging but some features may not be 184 implemented correctly. (For developers only) 185``MESA_LOADER_DRIVER_OVERRIDE`` 186 chooses a different driver binary such as ``etnaviv`` or ``zink``. 187 188NIR passes environment variables 189-------------------------------- 190 191The following are only applicable for drivers that uses NIR, as they 192modify the behavior for the common NIR_PASS and NIR_PASS_V macros, that 193wrap calls to NIR lowering/optimizations. 194 195``NIR_PRINT`` 196 If defined, the resulting NIR shader will be printed out at each 197 successful NIR lowering/optimization call. 198``NIR_TEST_CLONE`` 199 If defined, cloning a NIR shader would be tested at each successful 200 NIR lowering/optimization call. 201``NIR_TEST_SERIALIZE`` 202 If defined, serialize and deserialize a NIR shader would be tested at 203 each successful NIR lowering/optimization call. 204 205Mesa Xlib driver environment variables 206-------------------------------------- 207 208The following are only applicable to the Mesa Xlib software driver. See 209the :doc:`Xlib software driver page <xlibdriver>` for details. 210 211``MESA_RGB_VISUAL`` 212 specifies the X visual and depth for RGB mode 213``MESA_CI_VISUAL`` 214 specifies the X visual and depth for CI mode 215``MESA_BACK_BUFFER`` 216 specifies how to implement the back color buffer, either ``pixmap`` 217 or ``ximage`` 218``MESA_GAMMA`` 219 gamma correction coefficients for red, green, blue channels 220``MESA_XSYNC`` 221 enable synchronous X behavior (for debugging only) 222``MESA_GLX_FORCE_CI`` 223 if set, force GLX to treat 8 BPP visuals as CI visuals 224``MESA_GLX_FORCE_ALPHA`` 225 if set, forces RGB windows to have an alpha channel. 226``MESA_GLX_DEPTH_BITS`` 227 specifies default number of bits for depth buffer. 228``MESA_GLX_ALPHA_BITS`` 229 specifies default number of bits for alpha channel. 230 231i945/i965 driver environment variables (non-Gallium) 232---------------------------------------------------- 233 234``INTEL_NO_HW`` 235 if set to 1, prevents batches from being submitted to the hardware. 236 This is useful for debugging hangs, etc. 237``INTEL_DEBUG`` 238 a comma-separated list of named flags, which do various things: 239 240 ``ann`` 241 annotate IR in assembly dumps 242 ``aub`` 243 dump batches into an AUB trace for use with simulation tools 244 ``bat`` 245 emit batch information 246 ``blit`` 247 emit messages about blit operations 248 ``blorp`` 249 emit messages about the blorp operations (blits & clears) 250 ``buf`` 251 emit messages about buffer objects 252 ``clip`` 253 emit messages about the clip unit (for old gens, includes the CLIP 254 program) 255 ``color`` 256 use color in output 257 ``cs`` 258 dump shader assembly for compute shaders 259 ``do32`` 260 generate compute shader SIMD32 programs even if workgroup size 261 doesn't exceed the SIMD16 limit 262 ``dri`` 263 emit messages about the DRI interface 264 ``fbo`` 265 emit messages about framebuffers 266 ``fs`` 267 dump shader assembly for fragment shaders 268 ``gs`` 269 dump shader assembly for geometry shaders 270 ``hex`` 271 print instruction hex dump with the disassembly 272 ``l3`` 273 emit messages about the new L3 state during transitions 274 ``miptree`` 275 emit messages about miptrees 276 ``no8`` 277 don't generate SIMD8 fragment shader 278 ``no16`` 279 suppress generation of 16-wide fragment shaders. useful for 280 debugging broken shaders 281 ``nocompact`` 282 disable instruction compaction 283 ``nodualobj`` 284 suppress generation of dual-object geometry shader code 285 ``nofc`` 286 disable fast clears 287 ``norbc`` 288 disable single sampled render buffer compression 289 ``optimizer`` 290 dump shader assembly to files at each optimization pass and 291 iteration that make progress 292 ``perf`` 293 emit messages about performance issues 294 ``perfmon`` 295 emit messages about ``AMD_performance_monitor`` 296 ``pix`` 297 emit messages about pixel operations 298 ``prim`` 299 emit messages about drawing primitives 300 ``reemit`` 301 mark all state dirty on each draw call 302 ``sf`` 303 emit messages about the strips & fans unit (for old gens, includes 304 the SF program) 305 ``shader_time`` 306 record how much GPU time is spent in each shader 307 ``spill_fs`` 308 force spilling of all registers in the scalar backend (useful to 309 debug spilling code) 310 ``spill_vec4`` 311 force spilling of all registers in the vec4 backend (useful to 312 debug spilling code) 313 ``state`` 314 emit messages about state flag tracking 315 ``submit`` 316 emit batchbuffer usage statistics 317 ``sync`` 318 after sending each batch, emit a message and wait for that batch 319 to finish rendering 320 ``tcs`` 321 dump shader assembly for tessellation control shaders 322 ``tes`` 323 dump shader assembly for tessellation evaluation shaders 324 ``tex`` 325 emit messages about textures. 326 ``urb`` 327 emit messages about URB setup 328 ``vert`` 329 emit messages about vertex assembly 330 ``vs`` 331 dump shader assembly for vertex shaders 332 333``INTEL_SCALAR_VS`` (or ``TCS``, ``TES``, ``GS``) 334 force scalar/vec4 mode for a shader stage (Gen8-9 only) 335``INTEL_PRECISE_TRIG`` 336 if set to 1, true or yes, then the driver prefers accuracy over 337 performance in trig functions. 338``INTEL_SHADER_ASM_READ_PATH`` 339 if set, determines the directory to be used for overriding shader 340 assembly. The binaries with custom assembly should be placed in 341 this folder and have a name formatted as ``sha1_of_assembly.bin``. 342 The sha1 of a shader assembly is printed when assembly is dumped via 343 corresponding ``INTEL_DEBUG`` flag (e.g. ``vs`` for vertex shader). 344 A binary could be generated from a dumped assembly by ``i965_asm``. 345 For ``INTEL_SHADER_ASM_READ_PATH`` to work it is necessary to enable 346 dumping of corresponding shader stages via ``INTEL_DEBUG``. 347 It is advised to use ``nocompact`` flag of ``INTEL_DEBUG`` when 348 dumping and overriding shader assemblies. 349 The success of assembly override would be signified by "Successfully 350 overrode shader with sha1 <sha1>" in stderr replacing the original 351 assembly. 352 353Radeon driver environment variables (radeon, r200, and r300g) 354------------------------------------------------------------- 355 356``RADEON_NO_TCL`` 357 if set, disable hardware-accelerated Transform/Clip/Lighting. 358 359EGL environment variables 360------------------------- 361 362Mesa EGL supports different sets of environment variables. See the 363:doc:`Mesa EGL <egl>` page for the details. 364 365Gallium environment variables 366----------------------------- 367 368``GALLIUM_HUD`` 369 draws various information on the screen, like framerate, CPU load, 370 driver statistics, performance counters, etc. Set 371 ``GALLIUM_HUD=help`` and run e.g. ``glxgears`` for more info. 372``GALLIUM_HUD_PERIOD`` 373 sets the HUD update rate in seconds (float). Use zero to update every 374 frame. The default period is 1/2 second. 375``GALLIUM_HUD_VISIBLE`` 376 control default visibility, defaults to true. 377``GALLIUM_HUD_TOGGLE_SIGNAL`` 378 toggle visibility via user specified signal. Especially useful to 379 toggle HUD at specific points of application and disable for 380 unencumbered viewing the rest of the time. For example, set 381 ``GALLIUM_HUD_VISIBLE`` to ``false`` and 382 ``GALLIUM_HUD_TOGGLE_SIGNAL`` to ``10`` (``SIGUSR1``). Use 383 ``kill -10 <pid>`` to toggle the HUD as desired. 384``GALLIUM_HUD_SCALE`` 385 Scale HUD by an integer factor, for high DPI displays. Default is 1. 386``GALLIUM_HUD_DUMP_DIR`` 387 specifies a directory for writing the displayed HUD values into 388 files. 389``GALLIUM_DRIVER`` 390 useful in combination with ``LIBGL_ALWAYS_SOFTWARE=true`` for 391 choosing one of the software renderers ``softpipe``, ``llvmpipe`` or 392 ``swr``. 393``GALLIUM_LOG_FILE`` 394 specifies a file for logging all errors, warnings, etc. rather than 395 stderr. 396``GALLIUM_PIPE_SEARCH_DIR`` 397 specifies an alternate search directory for pipe-loader which overrides 398 the compile-time path based on the install location. 399``GALLIUM_PRINT_OPTIONS`` 400 if non-zero, print all the Gallium environment variables which are 401 used, and their current values. 402``GALLIUM_DUMP_CPU`` 403 if non-zero, print information about the CPU on start-up 404``TGSI_PRINT_SANITY`` 405 if set, do extra sanity checking on TGSI shaders and print any errors 406 to stderr. 407``DRAW_FSE`` 408 ??? 409``DRAW_NO_FSE`` 410 ??? 411``DRAW_USE_LLVM`` 412 if set to zero, the draw module will not use LLVM to execute shaders, 413 vertex fetch, etc. 414``ST_DEBUG`` 415 controls debug output from the Mesa/Gallium state tracker. Setting to 416 ``tgsi``, for example, will print all the TGSI shaders. See 417 ``src/mesa/state_tracker/st_debug.c`` for other options. 418 419Clover environment variables 420~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 422``CLOVER_EXTRA_BUILD_OPTIONS`` 423 allows specifying additional compiler and linker options. Specified 424 options are appended after the options set by the OpenCL program in 425 ``clBuildProgram``. 426``CLOVER_EXTRA_COMPILE_OPTIONS`` 427 allows specifying additional compiler options. Specified options are 428 appended after the options set by the OpenCL program in 429 ``clCompileProgram``. 430``CLOVER_EXTRA_LINK_OPTIONS`` 431 allows specifying additional linker options. Specified options are 432 appended after the options set by the OpenCL program in 433 ``clLinkProgram``. 434 435Softpipe driver environment variables 436~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 438``SOFTPIPE_DEBUG`` 439 a comma-separated list of named flags, which do various things: 440 441 ``vs`` 442 Dump vertex shader assembly to stderr 443 ``fs`` 444 Dump fragment shader assembly to stderr 445 ``gs`` 446 Dump geometry shader assembly to stderr 447 ``cs`` 448 Dump compute shader assembly to stderr 449 ``no_rast`` 450 rasterization is no-op'd. For profiling purposes. 451 ``use_llvm`` 452 the softpipe driver will try to use LLVM JIT for vertex 453 shading processing. 454 ``use_tgsi`` 455 if set, the softpipe driver will ask to directly consume TGSI, instead 456 of NIR. 457 458LLVMpipe driver environment variables 459~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 461``LP_NO_RAST`` 462 if set LLVMpipe will no-op rasterization 463``LP_DEBUG`` 464 a comma-separated list of debug options is accepted. See the source 465 code for details. 466``LP_PERF`` 467 a comma-separated list of options to selectively no-op various parts 468 of the driver. See the source code for details. 469``LP_NUM_THREADS`` 470 an integer indicating how many threads to use for rendering. Zero 471 turns off threading completely. The default value is the number of 472 CPU cores present. 473 474VMware SVGA driver environment variables 475~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 476 477``SVGA_FORCE_SWTNL`` 478 force use of software vertex transformation 479``SVGA_NO_SWTNL`` 480 don't allow software vertex transformation fallbacks (will often 481 result in incorrect rendering). 482``SVGA_DEBUG`` 483 for dumping shaders, constant buffers, etc. See the code for details. 484``SVGA_EXTRA_LOGGING`` 485 if set, enables extra logging to the ``vmware.log`` file, such as the 486 OpenGL program's name and command line arguments. 487``SVGA_NO_LOGGING`` 488 if set, disables logging to the ``vmware.log`` file. This is useful 489 when using Valgrind because it otherwise crashes when initializing 490 the host log feature. 491 492See the driver code for other, lesser-used variables. 493 494WGL environment variables 495~~~~~~~~~~~~~~~~~~~~~~~~~ 496 497``WGL_SWAP_INTERVAL`` 498 to set a swap interval, equivalent to calling 499 ``wglSwapIntervalEXT()`` in an application. If this environment 500 variable is set, application calls to ``wglSwapIntervalEXT()`` will 501 have no effect. 502 503VA-API environment variables 504~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 505 506``VAAPI_MPEG4_ENABLED`` 507 enable MPEG4 for VA-API, disabled by default. 508 509VC4 driver environment variables 510~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 511 512``VC4_DEBUG`` 513 a comma-separated list of named flags, which do various things: 514 515 ``cl`` 516 dump command list during creation 517 ``qpu`` 518 dump generated QPU instructions 519 ``qir`` 520 dump QPU IR during program compile 521 ``nir`` 522 dump NIR during program compile 523 ``tgsi`` 524 dump TGSI during program compile 525 ``shaderdb`` 526 dump program compile information for shader-db analysis 527 ``perf`` 528 print during performance-related events 529 ``norast`` 530 skip actual hardware execution of commands 531 ``always_flush`` 532 flush after each draw call 533 ``always_sync`` 534 wait for finish after each flush 535 ``dump`` 536 write a GPU command stream trace file (VC4 simulator only) 537 538RADV driver environment variables 539~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 541``RADV_DEBUG`` 542 a comma-separated list of named flags, which do various things: 543 544 ``llvm`` 545 enable LLVM compiler backend 546 ``allbos`` 547 force all allocated buffers to be referenced in submissions 548 ``allentrypoints`` 549 enable all device/instance entrypoints 550 ``checkir`` 551 validate the LLVM IR before LLVM compiles the shader 552 ``errors`` 553 display more info about errors 554 ``forcecompress`` 555 Enables DCC,FMASK,CMASK,HTILE in situations where the driver supports it 556 but normally does not deem it beneficial. 557 ``hang`` 558 enable GPU hangs detection and dump a report to $HOME/radv_dumps_<pid> 559 if a GPU hang is detected 560 ``info`` 561 show GPU-related information 562 ``invariantgeom`` 563 Mark geometry-affecting outputs as invariant. This works around a common 564 class of application bugs appearing as flickering. 565 ``metashaders`` 566 dump internal meta shaders 567 ``nobinning`` 568 disable primitive binning 569 ``nocache`` 570 disable shaders cache 571 ``nocompute`` 572 disable compute queue 573 ``nodcc`` 574 disable Delta Color Compression (DCC) on images 575 ``nodynamicbounds`` 576 do not check OOB access for dynamic descriptors 577 ``nofastclears`` 578 disable fast color/depthstencil clears 579 ``nohiz`` 580 disable HIZ for depthstencil images 581 ``noibs`` 582 disable directly recording command buffers in GPU-visible memory 583 ``nomemorycache`` 584 disable memory shaders cache 585 ``nongg`` 586 disable NGG for GFX10+ 587 ``nooutoforder`` 588 disable out-of-order rasterization 589 ``nothreadllvm`` 590 disable LLVM threaded compilation 591 ``preoptir`` 592 dump LLVM IR before any optimizations 593 ``shaders`` 594 dump shaders 595 ``shaderstats`` 596 dump shader statistics 597 ``spirv`` 598 dump SPIR-V 599 ``startup`` 600 display info at startup 601 ``syncshaders`` 602 synchronize shaders after all draws/dispatches 603 ``vmfaults`` 604 check for VM memory faults via dmesg 605 ``zerovram`` 606 initialize all memory allocated in VRAM as zero 607 608``RADV_FORCE_FAMILY`` 609 create a null device to compile shaders without a AMD GPU (e.g. 610 gfx900) 611``RADV_PERFTEST`` 612 a comma-separated list of named flags, which do various things: 613 614 ``bolist`` 615 enable the global BO list 616 ``cswave32`` 617 enable wave32 for compute shaders (GFX10+) 618 ``dccmsaa`` 619 enable DCC for MSAA images 620 ``dfsm`` 621 enable dfsm 622 ``gewave32`` 623 enable wave32 for vertex/tess/geometry shaders (GFX10+) 624 ``localbos`` 625 enable local BOs 626 ``pswave32`` 627 enable wave32 for pixel shaders (GFX10+) 628 ``tccompatcmask`` 629 enable TC-compat cmask for MSAA images 630 631``RADV_TEX_ANISO`` 632 force anisotropy filter (up to 16) 633``ACO_DEBUG`` 634 a comma-separated list of named flags, which do various things: 635 636 ``validateir`` 637 validate the ACO IR at various points of compilation (enabled by 638 default for debug/debugoptimized builds) 639 ``validatera`` 640 validate register assignment of ACO IR and catches many RA bugs 641 ``perfwarn`` 642 abort on some suboptimal code generation 643 ``force-waitcnt`` 644 force emitting waitcnt states if there is something to wait for 645 ``novn`` 646 disable value numbering 647 ``noopt`` 648 disable various optimizations 649 ``noscheduling`` 650 disable instructions scheduling 651 652radeonsi driver environment variables 653~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 655``AMD_DEBUG`` 656 a comma-separated list of named flags, which do various things: 657``nodma`` 658 Disable SDMA 659``nodmaclear`` 660 Disable SDMA clears 661``nodmacopyimage`` 662 Disable SDMA image copies 663``zerovram`` 664 Clear VRAM allocations. 665``nodcc`` 666 Disable DCC. 667``nodccclear`` 668 Disable DCC fast clear. 669``nodccfb`` 670 Disable separate DCC on the main framebuffer 671``nodccmsaa`` 672 Disable DCC for MSAA 673``nodpbb`` 674 Disable DPBB. 675``nodfsm`` 676 Disable DFSM. 677``notiling`` 678 Disable tiling 679``nofmask`` 680 Disable MSAA compression 681``nohyperz`` 682 Disable Hyper-Z 683``norbplus`` 684 Disable RB+. 685``no2d`` 686 Disable 2D tiling 687``info`` 688 Print driver information 689``tex`` 690 Print texture info 691``compute`` 692 Print compute info 693``vm`` 694 Print virtual addresses when creating resources 695``vs`` 696 Print vertex shaders 697``ps`` 698 Print pixel shaders 699``gs`` 700 Print geometry shaders 701``tcs`` 702 Print tessellation control shaders 703``tes`` 704 Print tessellation evaluation shaders 705``cs`` 706 Print compute shaders 707``noir`` 708 Don't print the LLVM IR 709``nonir`` 710 Don't print NIR when printing shaders 711``noasm`` 712 Don't print disassembled shaders 713``preoptir`` 714 Print the LLVM IR before initial optimizations 715``gisel`` 716 Enable LLVM global instruction selector. 717``w32ge`` 718 Use Wave32 for vertex, tessellation, and geometry shaders. 719``w32ps`` 720 Use Wave32 for pixel shaders. 721``w32cs`` 722 Use Wave32 for computes shaders. 723``w64ge`` 724 Use Wave64 for vertex, tessellation, and geometry shaders. 725``w64ps`` 726 Use Wave64 for pixel shaders. 727``w64cs`` 728 Use Wave64 for computes shaders. 729``checkir`` 730 Enable additional sanity checks on shader IR 731``mono`` 732 Use old-style monolithic shaders compiled on demand 733``nooptvariant`` 734 Disable compiling optimized shader variants. 735``forcedma`` 736 Use SDMA for all operations when possible. 737``nowc`` 738 Disable GTT write combining 739``check_vm`` 740 Check VM faults and dump debug info. 741``reserve_vmid`` 742 Force VMID reservation per context. 743``nogfx`` 744 Disable graphics. Only multimedia compute paths can be used. 745``nongg`` 746 Disable NGG and use the legacy pipeline. 747``nggc`` 748 Always use NGG culling even when it can hurt. 749``nonggc`` 750 Disable NGG culling. 751``alwayspd`` 752 Always enable the primitive discard compute shader. 753``pd`` 754 Enable the primitive discard compute shader for large draw calls. 755``nopd`` 756 Disable the primitive discard compute shader. 757``switch_on_eop`` 758 Program WD/IA to switch on end-of-packet. 759``nooutoforder`` 760 Disable out-of-order rasterization 761``dpbb`` 762 Enable DPBB. 763``dfsm`` 764 Enable DFSM. 765 766Other Gallium drivers have their own environment variables. These may 767change frequently so the source code should be consulted for details. 768