panfrost: Hoist blend finalize calls
[mesa.git] / docs / envvars.rst
1 Environment Variables
2 =====================
3
4 Normally, no environment variables need to be set. Most of the
5 environment variables used by Mesa/Gallium are for debugging purposes,
6 but they can sometimes be useful for debugging end-user issues.
7
8 LibGL environment variables
9 ---------------------------
10
11 ``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
29 Core 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 behaviour 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 behaviour 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
145 ``MESA_GLSL_CACHE_MAX_SIZE``
146 if set, determines the maximum size of the on-disk cache of compiled
147 GLSL programs. Should be set to a number optionally followed by
148 ``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or
149 gigabytes. By default, gigabytes will be assumed. And if unset, a
150 maximum size of 1GB will be used.
151
152 .. note::
153
154 A separate cache might be created for each architecture that Mesa is
155 installed for on your system. For example under the default settings
156 you may end up with a 1GB cache for x86_64 and another 1GB cache for
157 i386.
158
159 ``MESA_GLSL_CACHE_DIR``
160 if set, determines the directory to be used for the on-disk cache of
161 compiled GLSL programs. If this variable is not set, then the cache
162 will be stored in ``$XDG_CACHE_HOME/mesa_shader_cache`` (if that
163 variable is set), or else within ``.cache/mesa_shader_cache`` within
164 the user's home directory.
165 ``MESA_GLSL``
166 :ref:`shading language compiler options <envvars>`
167 ``MESA_NO_MINMAX_CACHE``
168 when set, the minmax index cache is globally disabled.
169 ``MESA_SHADER_CAPTURE_PATH``
170 see :ref:`Capturing Shaders <capture>`
171 ``MESA_SHADER_DUMP_PATH`` and ``MESA_SHADER_READ_PATH``
172 see :ref:`Experimenting with Shader
173 Replacements <replacement>`
174 ``MESA_VK_VERSION_OVERRIDE``
175 changes the Vulkan physical device version as returned in
176 ``VkPhysicalDeviceProperties::apiVersion``.
177
178 - The format should be ``MAJOR.MINOR[.PATCH]``
179 - This will not let you force a version higher than the driver's
180 instance version as advertised by ``vkEnumerateInstanceVersion``
181 - This can be very useful for debugging but some features may not be
182 implemented correctly. (For developers only)
183
184 NIR passes environment variables
185 --------------------------------
186
187 The following are only applicable for drivers that uses NIR, as they
188 modify the behaviour for the common NIR_PASS and NIR_PASS_V macros, that
189 wrap calls to NIR lowering/optimizations.
190
191 ``NIR_PRINT``
192 If defined, the resulting NIR shader will be printed out at each
193 successful NIR lowering/optimization call.
194 ``NIR_TEST_CLONE``
195 If defined, cloning a NIR shader would be tested at each successful
196 NIR lowering/optimization call.
197 ``NIR_TEST_SERIALIZE``
198 If defined, serialize and deserialize a NIR shader would be tested at
199 each successful NIR lowering/optimization call.
200
201 Mesa Xlib driver environment variables
202 --------------------------------------
203
204 The following are only applicable to the Mesa Xlib software driver. See
205 the :doc:`Xlib software driver page <xlibdriver>` for details.
206
207 ``MESA_RGB_VISUAL``
208 specifies the X visual and depth for RGB mode
209 ``MESA_CI_VISUAL``
210 specifies the X visual and depth for CI mode
211 ``MESA_BACK_BUFFER``
212 specifies how to implement the back color buffer, either ``pixmap``
213 or ``ximage``
214 ``MESA_GAMMA``
215 gamma correction coefficients for red, green, blue channels
216 ``MESA_XSYNC``
217 enable synchronous X behavior (for debugging only)
218 ``MESA_GLX_FORCE_CI``
219 if set, force GLX to treat 8bpp visuals as CI visuals
220 ``MESA_GLX_FORCE_ALPHA``
221 if set, forces RGB windows to have an alpha channel.
222 ``MESA_GLX_DEPTH_BITS``
223 specifies default number of bits for depth buffer.
224 ``MESA_GLX_ALPHA_BITS``
225 specifies default number of bits for alpha channel.
226
227 i945/i965 driver environment variables (non-Gallium)
228 ----------------------------------------------------
229
230 ``INTEL_NO_HW``
231 if set to 1, prevents batches from being submitted to the hardware.
232 This is useful for debugging hangs, etc.
233 ``INTEL_DEBUG``
234 a comma-separated list of named flags, which do various things:
235
236 ``ann``
237 annotate IR in assembly dumps
238 ``aub``
239 dump batches into an AUB trace for use with simulation tools
240 ``bat``
241 emit batch information
242 ``blit``
243 emit messages about blit operations
244 ``blorp``
245 emit messages about the blorp operations (blits & clears)
246 ``buf``
247 emit messages about buffer objects
248 ``clip``
249 emit messages about the clip unit (for old gens, includes the CLIP
250 program)
251 ``color``
252 use color in output
253 ``cs``
254 dump shader assembly for compute shaders
255 ``do32``
256 generate compute shader SIMD32 programs even if workgroup size
257 doesn't exceed the SIMD16 limit
258 ``dri``
259 emit messages about the DRI interface
260 ``fbo``
261 emit messages about framebuffers
262 ``fs``
263 dump shader assembly for fragment shaders
264 ``gs``
265 dump shader assembly for geometry shaders
266 ``hex``
267 print instruction hex dump with the disassembly
268 ``l3``
269 emit messages about the new L3 state during transitions
270 ``miptree``
271 emit messages about miptrees
272 ``no8``
273 don't generate SIMD8 fragment shader
274 ``no16``
275 suppress generation of 16-wide fragment shaders. useful for
276 debugging broken shaders
277 ``nocompact``
278 disable instruction compaction
279 ``nodualobj``
280 suppress generation of dual-object geometry shader code
281 ``nofc``
282 disable fast clears
283 ``norbc``
284 disable single sampled render buffer compression
285 ``optimizer``
286 dump shader assembly to files at each optimization pass and
287 iteration that make progress
288 ``perf``
289 emit messages about performance issues
290 ``perfmon``
291 emit messages about ``AMD_performance_monitor``
292 ``pix``
293 emit messages about pixel operations
294 ``prim``
295 emit messages about drawing primitives
296 ``reemit``
297 mark all state dirty on each draw call
298 ``sf``
299 emit messages about the strips & fans unit (for old gens, includes
300 the SF program)
301 ``shader_time``
302 record how much GPU time is spent in each shader
303 ``spill_fs``
304 force spilling of all registers in the scalar backend (useful to
305 debug spilling code)
306 ``spill_vec4``
307 force spilling of all registers in the vec4 backend (useful to
308 debug spilling code)
309 ``state``
310 emit messages about state flag tracking
311 ``submit``
312 emit batchbuffer usage statistics
313 ``sync``
314 after sending each batch, emit a message and wait for that batch
315 to finish rendering
316 ``tcs``
317 dump shader assembly for tessellation control shaders
318 ``tes``
319 dump shader assembly for tessellation evaluation shaders
320 ``tex``
321 emit messages about textures.
322 ``urb``
323 emit messages about URB setup
324 ``vert``
325 emit messages about vertex assembly
326 ``vs``
327 dump shader assembly for vertex shaders
328
329 ``INTEL_SCALAR_VS`` (or ``TCS``, ``TES``, ``GS``)
330 force scalar/vec4 mode for a shader stage (Gen8-9 only)
331 ``INTEL_PRECISE_TRIG``
332 if set to 1, true or yes, then the driver prefers accuracy over
333 performance in trig functions.
334
335 Radeon driver environment variables (radeon, r200, and r300g)
336 -------------------------------------------------------------
337
338 ``RADEON_NO_TCL``
339 if set, disable hardware-accelerated Transform/Clip/Lighting.
340
341 EGL environment variables
342 -------------------------
343
344 Mesa EGL supports different sets of environment variables. See the
345 :doc:`Mesa EGL <egl>` page for the details.
346
347 Gallium environment variables
348 -----------------------------
349
350 ``GALLIUM_HUD``
351 draws various information on the screen, like framerate, cpu load,
352 driver statistics, performance counters, etc. Set
353 ``GALLIUM_HUD=help`` and run e.g. ``glxgears`` for more info.
354 ``GALLIUM_HUD_PERIOD``
355 sets the hud update rate in seconds (float). Use zero to update every
356 frame. The default period is 1/2 second.
357 ``GALLIUM_HUD_VISIBLE``
358 control default visibility, defaults to true.
359 ``GALLIUM_HUD_TOGGLE_SIGNAL``
360 toggle visibility via user specified signal. Especially useful to
361 toggle hud at specific points of application and disable for
362 unencumbered viewing the rest of the time. For example, set
363 ``GALLIUM_HUD_VISIBLE`` to ``false`` and
364 ``GALLIUM_HUD_TOGGLE_SIGNAL`` to ``10`` (``SIGUSR1``). Use
365 ``kill -10 <pid>`` to toggle the hud as desired.
366 ``GALLIUM_HUD_SCALE``
367 Scale hud by an integer factor, for high DPI displays. Default is 1.
368 ``GALLIUM_HUD_DUMP_DIR``
369 specifies a directory for writing the displayed hud values into
370 files.
371 ``GALLIUM_DRIVER``
372 useful in combination with ``LIBGL_ALWAYS_SOFTWARE=true`` for
373 choosing one of the software renderers ``softpipe``, ``llvmpipe`` or
374 ``swr``.
375 ``GALLIUM_LOG_FILE``
376 specifies a file for logging all errors, warnings, etc. rather than
377 stderr.
378 ``GALLIUM_PRINT_OPTIONS``
379 if non-zero, print all the Gallium environment variables which are
380 used, and their current values.
381 ``GALLIUM_DUMP_CPU``
382 if non-zero, print information about the CPU on start-up
383 ``TGSI_PRINT_SANITY``
384 if set, do extra sanity checking on TGSI shaders and print any errors
385 to stderr.
386 ``DRAW_FSE``
387 ???
388 ``DRAW_NO_FSE``
389 ???
390 ``DRAW_USE_LLVM``
391 if set to zero, the draw module will not use LLVM to execute shaders,
392 vertex fetch, etc.
393 ``ST_DEBUG``
394 controls debug output from the Mesa/Gallium state tracker. Setting to
395 ``tgsi``, for example, will print all the TGSI shaders. See
396 ``src/mesa/state_tracker/st_debug.c`` for other options.
397
398 Clover environment variables
399 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
400
401 ``CLOVER_EXTRA_BUILD_OPTIONS``
402 allows specifying additional compiler and linker options. Specified
403 options are appended after the options set by the OpenCL program in
404 ``clBuildProgram``.
405 ``CLOVER_EXTRA_COMPILE_OPTIONS``
406 allows specifying additional compiler options. Specified options are
407 appended after the options set by the OpenCL program in
408 ``clCompileProgram``.
409 ``CLOVER_EXTRA_LINK_OPTIONS``
410 allows specifying additional linker options. Specified options are
411 appended after the options set by the OpenCL program in
412 ``clLinkProgram``.
413
414 Softpipe driver environment variables
415 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
416
417 ``SOFTPIPE_DEBUG``
418 a comma-separated list of named flags, which do various things:
419
420 ``vs``
421 Dump vertex shader assembly to stderr
422 ``fs``
423 Dump fragment shader assembly to stderr
424 ``gs``
425 Dump geometry shader assembly to stderr
426 ``cs``
427 Dump compute shader assembly to stderr
428 ``no_rast``
429 rasterization is no-op'd. For profiling purposes.
430 ``use_llvm``
431 the softpipe driver will try to use LLVM JIT for vertex
432 shading processing.
433
434 LLVMpipe driver environment variables
435 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
436
437 ``LP_NO_RAST``
438 if set LLVMpipe will no-op rasterization
439 ``LP_DEBUG``
440 a comma-separated list of debug options is accepted. See the source
441 code for details.
442 ``LP_PERF``
443 a comma-separated list of options to selectively no-op various parts
444 of the driver. See the source code for details.
445 ``LP_NUM_THREADS``
446 an integer indicating how many threads to use for rendering. Zero
447 turns off threading completely. The default value is the number of
448 CPU cores present.
449
450 VMware SVGA driver environment variables
451 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
452
453 ``SVGA_FORCE_SWTNL``
454 force use of software vertex transformation
455 ``SVGA_NO_SWTNL``
456 don't allow software vertex transformation fallbacks (will often
457 result in incorrect rendering).
458 ``SVGA_DEBUG``
459 for dumping shaders, constant buffers, etc. See the code for details.
460 ``SVGA_EXTRA_LOGGING``
461 if set, enables extra logging to the ``vmware.log`` file, such as the
462 OpenGL program's name and command line arguments.
463 ``SVGA_NO_LOGGING``
464 if set, disables logging to the ``vmware.log`` file. This is useful
465 when using Valgrind because it otherwise crashes when initializing
466 the host log feature.
467
468 See the driver code for other, lesser-used variables.
469
470 WGL environment variables
471 ~~~~~~~~~~~~~~~~~~~~~~~~~
472
473 ``WGL_SWAP_INTERVAL``
474 to set a swap interval, equivalent to calling
475 ``wglSwapIntervalEXT()`` in an application. If this environment
476 variable is set, application calls to ``wglSwapIntervalEXT()`` will
477 have no effect.
478
479 VA-API environment variables
480 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
481
482 ``VAAPI_MPEG4_ENABLED``
483 enable MPEG4 for VA-API, disabled by default.
484
485 VC4 driver environment variables
486 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
487
488 ``VC4_DEBUG``
489 a comma-separated list of named flags, which do various things:
490
491 ``cl``
492 dump command list during creation
493 ``qpu``
494 dump generated QPU instructions
495 ``qir``
496 dump QPU IR during program compile
497 ``nir``
498 dump NIR during program compile
499 ``tgsi``
500 dump TGSI during program compile
501 ``shaderdb``
502 dump program compile information for shader-db analysis
503 ``perf``
504 print during performance-related events
505 ``norast``
506 skip actual hardware execution of commands
507 ``always_flush``
508 flush after each draw call
509 ``always_sync``
510 wait for finish after each flush
511 ``dump``
512 write a GPU command stream trace file (VC4 simulator only)
513
514 RADV driver environment variables
515 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
516
517 ``RADV_DEBUG``
518 a comma-separated list of named flags, which do various things:
519
520 ``llvm``
521 enable LLVM compiler backend
522 ``allbos``
523 force all allocated buffers to be referenced in submissions
524 ``allentrypoints``
525 enable all device/instance entrypoints
526 ``checkir``
527 validate the LLVM IR before LLVM compiles the shader
528 ``errors``
529 display more info about errors
530 ``forcecompress``
531 Enables DCC,FMASK,CMASK,HTILE in situations where the driver supports it
532 but normally does not deem it beneficial.
533 ``info``
534 show GPU-related information
535 ``metashaders``
536 dump internal meta shaders
537 ``nobinning``
538 disable primitive binning
539 ``nocache``
540 disable shaders cache
541 ``nocompute``
542 disable compute queue
543 ``nodcc``
544 disable Delta Color Compression (DCC) on images
545 ``nodynamicbounds``
546 do not check OOB access for dynamic descriptors
547 ``nofastclears``
548 disable fast color/depthstencil clears
549 ``nohiz``
550 disable HIZ for depthstencil images
551 ``noibs``
552 disable directly recording command buffers in GPU-visible memory
553 ``nomemorycache``
554 disable memory shaders cache
555 ``nongg``
556 disable NGG for GFX10+
557 ``nooutoforder``
558 disable out-of-order rasterization
559 ``nothreadllvm``
560 disable LLVM threaded compilation
561 ``preoptir``
562 dump LLVM IR before any optimizations
563 ``shaders``
564 dump shaders
565 ``shaderstats``
566 dump shader statistics
567 ``spirv``
568 dump SPIR-V
569 ``startup``
570 display info at startup
571 ``syncshaders``
572 synchronize shaders after all draws/dispatches
573 ``vmfaults``
574 check for VM memory faults via dmesg
575 ``zerovram``
576 initialize all memory allocated in VRAM as zero
577
578 ``RADV_FORCE_FAMILY``
579 create a null device to compile shaders without a AMD GPU (eg.
580 gfx900)
581 ``RADV_PERFTEST``
582 a comma-separated list of named flags, which do various things:
583
584 ``bolist``
585 enable the global BO list
586 ``cswave32``
587 enable wave32 for compute shaders (GFX10+)
588 ``dccmsaa``
589 enable DCC for MSAA images
590 ``dfsm``
591 enable dfsm
592 ``gewave32``
593 enable wave32 for vertex/tess/geometry shaders (GFX10+)
594 ``localbos``
595 enable local BOs
596 ``pswave32``
597 enable wave32 for pixel shaders (GFX10+)
598 ``tccompatcmask``
599 enable TC-compat cmask for MSAA images
600
601 ``RADV_TEX_ANISO``
602 force anisotropy filter (up to 16)
603 ``RADV_TRACE_FILE``
604 generate cmdbuffer tracefiles when a GPU hang is detected
605 ``ACO_DEBUG``
606 a comma-separated list of named flags, which do various things:
607
608 ``validateir``
609 validate the ACO IR at various points of compilation (enabled by
610 default for debug/debugoptimized builds)
611 ``validatera``
612 validate register assignment of ACO IR and catches many RA bugs
613 ``perfwarn``
614 abort on some suboptimal code generation
615 ``force-waitcnt``
616 force emitting waitcnt states if there is something to wait for
617
618 radeonsi driver environment variables
619 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
620
621 ``AMD_DEBUG``
622 a comma-separated list of named flags, which do various things:
623 ``nodma``
624 Disable SDMA
625 ``nodmaclear``
626 Disable SDMA clears
627 ``nodmacopyimage``
628 Disable SDMA image copies
629 ``zerovram``
630 Clear VRAM allocations.
631 ``nodcc``
632 Disable DCC.
633 ``nodccclear``
634 Disable DCC fast clear.
635 ``nodccfb``
636 Disable separate DCC on the main framebuffer
637 ``nodccmsaa``
638 Disable DCC for MSAA
639 ``nodpbb``
640 Disable DPBB.
641 ``nodfsm``
642 Disable DFSM.
643 ``notiling``
644 Disable tiling
645 ``nofmask``
646 Disable MSAA compression
647 ``nohyperz``
648 Disable Hyper-Z
649 ``norbplus``
650 Disable RB+.
651 ``no2d``
652 Disable 2D tiling
653 ``info``
654 Print driver information
655 ``tex``
656 Print texture info
657 ``compute``
658 Print compute info
659 ``vm``
660 Print virtual addresses when creating resources
661 ``vs``
662 Print vertex shaders
663 ``ps``
664 Print pixel shaders
665 ``gs``
666 Print geometry shaders
667 ``tcs``
668 Print tessellation control shaders
669 ``tes``
670 Print tessellation evaluation shaders
671 ``cs``
672 Print compute shaders
673 ``noir``
674 Don't print the LLVM IR
675 ``nonir``
676 Don't print NIR when printing shaders
677 ``noasm``
678 Don't print disassembled shaders
679 ``preoptir``
680 Print the LLVM IR before initial optimizations
681 ``gisel``
682 Enable LLVM global instruction selector.
683 ``w32ge``
684 Use Wave32 for vertex, tessellation, and geometry shaders.
685 ``w32ps``
686 Use Wave32 for pixel shaders.
687 ``w32cs``
688 Use Wave32 for computes shaders.
689 ``w64ge``
690 Use Wave64 for vertex, tessellation, and geometry shaders.
691 ``w64ps``
692 Use Wave64 for pixel shaders.
693 ``w64cs``
694 Use Wave64 for computes shaders.
695 ``checkir``
696 Enable additional sanity checks on shader IR
697 ``mono``
698 Use old-style monolithic shaders compiled on demand
699 ``nooptvariant``
700 Disable compiling optimized shader variants.
701 ``forcedma``
702 Use SDMA for all operations when possible.
703 ``nowc``
704 Disable GTT write combining
705 ``check_vm``
706 Check VM faults and dump debug info.
707 ``reserve_vmid``
708 Force VMID reservation per context.
709 ``nogfx``
710 Disable graphics. Only multimedia compute paths can be used.
711 ``nongg``
712 Disable NGG and use the legacy pipeline.
713 ``nggc``
714 Always use NGG culling even when it can hurt.
715 ``nonggc``
716 Disable NGG culling.
717 ``alwayspd``
718 Always enable the primitive discard compute shader.
719 ``pd``
720 Enable the primitive discard compute shader for large draw calls.
721 ``nopd``
722 Disable the primitive discard compute shader.
723 ``switch_on_eop``
724 Program WD/IA to switch on end-of-packet.
725 ``nooutoforder``
726 Disable out-of-order rasterization
727 ``dpbb``
728 Enable DPBB.
729 ``dfsm``
730 Enable DFSM.
731
732 Other Gallium drivers have their own environment variables. These may
733 change frequently so the source code should be consulted for details.