aboutsummaryrefslogtreecommitdiffstats
path: root/docs/envvars.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/envvars.rst')
-rw-r--r--docs/envvars.rst724
1 files changed, 724 insertions, 0 deletions
diff --git a/docs/envvars.rst b/docs/envvars.rst
new file mode 100644
index 00000000000..59060cf400a
--- /dev/null
+++ b/docs/envvars.rst
@@ -0,0 +1,724 @@
+Environment Variables
+=====================
+
+Normally, no environment variables need to be set. Most of the
+environment variables used by Mesa/Gallium are for debugging purposes,
+but they can sometimes be useful for debugging end-user issues.
+
+LibGL environment variables
+---------------------------
+
+``LIBGL_DEBUG``
+ If defined debug information will be printed to stderr. If set to
+ ``verbose`` additional information will be printed.
+``LIBGL_DRIVERS_PATH``
+ colon-separated list of paths to search for DRI drivers
+``LIBGL_ALWAYS_INDIRECT``
+ if set to ``true``, forces an indirect rendering context/connection.
+``LIBGL_ALWAYS_SOFTWARE``
+ if set to ``true``, always use software rendering
+``LIBGL_NO_DRAWARRAYS``
+ if set to ``true``, do not use DrawArrays GLX protocol (for
+ debugging)
+``LIBGL_SHOW_FPS``
+ print framerate to stdout based on the number of ``glXSwapBuffers``
+ calls per second.
+``LIBGL_DRI3_DISABLE``
+ disable DRI3 if set to ``true``.
+
+Core Mesa environment variables
+-------------------------------
+
+``MESA_NO_ASM``
+ if set, disables all assembly language optimizations
+``MESA_NO_MMX``
+ if set, disables Intel MMX optimizations
+``MESA_NO_3DNOW``
+ if set, disables AMD 3DNow! optimizations
+``MESA_NO_SSE``
+ if set, disables Intel SSE optimizations
+``MESA_NO_ERROR``
+ if set to 1, error checking is disabled as per ``KHR_no_error``. This
+ will result in undefined behaviour for invalid use of the api, but
+ can reduce CPU use for apps that are known to be error free.
+``MESA_DEBUG``
+ if set, error messages are printed to stderr. For example, if the
+ application generates a ``GL_INVALID_ENUM`` error, a corresponding
+ error message indicating where the error occurred, and possibly why,
+ will be printed to stderr. For release builds, ``MESA_DEBUG``
+ defaults to off (no debug output). ``MESA_DEBUG`` accepts the
+ following comma-separated list of named flags, which adds extra
+ behaviour to just set ``MESA_DEBUG=1``:
+
+ ``silent``
+ turn off debug messages. Only useful for debug builds.
+ ``flush``
+ flush after each drawing command
+ ``incomplete_tex``
+ extra debug messages when a texture is incomplete
+ ``incomplete_fbo``
+ extra debug messages when a fbo is incomplete
+ ``context``
+ create a debug context (see ``GLX_CONTEXT_DEBUG_BIT_ARB``) and
+ print error and performance messages to stderr (or
+ ``MESA_LOG_FILE``).
+
+``MESA_LOG_FILE``
+ specifies a file name for logging all errors, warnings, etc., rather
+ than stderr
+``MESA_TEX_PROG``
+ if set, implement conventional texture env modes with fragment
+ programs (intended for developers only)
+``MESA_TNL_PROG``
+ if set, implement conventional vertex transformation operations with
+ vertex programs (intended for developers only). Setting this variable
+ automatically sets the ``MESA_TEX_PROG`` variable as well.
+``MESA_EXTENSION_OVERRIDE``
+ can be used to enable/disable extensions. A value such as
+ ``GL_EXT_foo -GL_EXT_bar`` will enable the ``GL_EXT_foo`` extension
+ and disable the ``GL_EXT_bar`` extension.
+``MESA_EXTENSION_MAX_YEAR``
+ The ``GL_EXTENSIONS`` string returned by Mesa is sorted by extension
+ year. If this variable is set to year X, only extensions defined on
+ or before year X will be reported. This is to work-around a bug in
+ some games where the extension string is copied into a fixed-size
+ buffer without truncating. If the extension string is too long, the
+ buffer overrun can cause the game to crash. This is a work-around for
+ that.
+``MESA_GL_VERSION_OVERRIDE``
+ changes the value returned by ``glGetString(GL_VERSION)`` and
+ possibly the GL API type.
+
+ - The format should be ``MAJOR.MINOR[FC|COMPAT]``
+ - ``FC`` is an optional suffix that indicates a forward compatible
+ context. This is only valid for versions >= 3.0.
+ - ``COMPAT`` is an optional suffix that indicates a compatibility
+ context or ``GL_ARB_compatibility`` support. This is only valid
+ for versions >= 3.1.
+ - GL versions <= 3.0 are set to a compatibility (non-Core) profile
+ - GL versions = 3.1, depending on the driver, it may or may not have
+ the ``ARB_compatibility`` extension enabled.
+ - GL versions >= 3.2 are set to a Core profile
+ - Examples:
+
+ ``2.1``
+ select a compatibility (non-Core) profile with GL version 2.1.
+ ``3.0``
+ select a compatibility (non-Core) profile with GL version 3.0.
+ ``3.0FC``
+ select a Core+Forward Compatible profile with GL version 3.0.
+ ``3.1``
+ select GL version 3.1 with ``GL_ARB_compatibility`` enabled per
+ the driver default.
+ ``3.1FC``
+ select GL version 3.1 with forward compatibility and
+ ``GL_ARB_compatibility`` disabled.
+ ``3.1COMPAT``
+ select GL version 3.1 with ``GL_ARB_compatibility`` enabled.
+ ``X.Y``
+ override GL version to X.Y without changing the profile.
+ ``X.YFC``
+ select a Core+Forward Compatible profile with GL version X.Y.
+ ``X.YCOMPAT``
+ select a Compatibility profile with GL version X.Y.
+
+ - Mesa may not really implement all the features of the given
+ version. (for developers only)
+
+``MESA_GLES_VERSION_OVERRIDE``
+ changes the value returned by ``glGetString(GL_VERSION)`` for OpenGL
+ ES.
+
+ - The format should be ``MAJOR.MINOR``
+ - Examples: ``2.0``, ``3.0``, ``3.1``
+ - Mesa may not really implement all the features of the given
+ version. (for developers only)
+
+``MESA_GLSL_VERSION_OVERRIDE``
+ changes the value returned by
+ ``glGetString(GL_SHADING_LANGUAGE_VERSION)``. Valid values are
+ integers, such as ``130``. Mesa will not really implement all the
+ features of the given language version if it's higher than what's
+ normally reported. (for developers only)
+``MESA_GLSL_CACHE_DISABLE``
+ if set to ``true``, disables the GLSL shader cache
+``MESA_GLSL_CACHE_MAX_SIZE``
+ if set, determines the maximum size of the on-disk cache of compiled
+ GLSL programs. Should be set to a number optionally followed by
+ ``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or
+ gigabytes. By default, gigabytes will be assumed. And if unset, a
+ maximum size of 1GB will be used. Note: A separate cache might be
+ created for each architecture that Mesa is installed for on your
+ system. For example under the default settings you may end up with a
+ 1GB cache for x86_64 and another 1GB cache for i386.
+``MESA_GLSL_CACHE_DIR``
+ if set, determines the directory to be used for the on-disk cache of
+ compiled GLSL programs. If this variable is not set, then the cache
+ will be stored in ``$XDG_CACHE_HOME/mesa_shader_cache`` (if that
+ variable is set), or else within ``.cache/mesa_shader_cache`` within
+ the user's home directory.
+``MESA_GLSL``
+ `shading language compiler options <shading.html#envvars>`__
+``MESA_NO_MINMAX_CACHE``
+ when set, the minmax index cache is globally disabled.
+``MESA_SHADER_CAPTURE_PATH``
+ see `Capturing Shaders <shading.html#capture>`__
+``MESA_SHADER_DUMP_PATH`` and ``MESA_SHADER_READ_PATH``
+ see `Experimenting with Shader
+ Replacements <shading.html#replacement>`__
+``MESA_VK_VERSION_OVERRIDE``
+ changes the Vulkan physical device version as returned in
+ ``VkPhysicalDeviceProperties::apiVersion``.
+
+ - The format should be ``MAJOR.MINOR[.PATCH]``
+ - This will not let you force a version higher than the driver's
+ instance version as advertised by ``vkEnumerateInstanceVersion``
+ - This can be very useful for debugging but some features may not be
+ implemented correctly. (For developers only)
+
+NIR passes enviroment variables
+-------------------------------
+
+The following are only applicable for drivers that uses NIR, as they
+modify the behaviour for the common NIR_PASS and NIR_PASS_V macros, that
+wrap calls to NIR lowering/optimizations.
+
+``NIR_PRINT``
+ If defined, the resulting NIR shader will be printed out at each
+ succesful NIR lowering/optimization call.
+``NIR_TEST_CLONE``
+ If defined, cloning a NIR shader would be tested at each succesful
+ NIR lowering/optimization call.
+``NIR_TEST_SERIALIZE``
+ If defined, serialize and deserialize a NIR shader would be tested at
+ each succesful NIR lowering/optimization call.
+
+Mesa Xlib driver environment variables
+--------------------------------------
+
+The following are only applicable to the Mesa Xlib software driver. See
+the `Xlib software driver page <xlibdriver.html>`__ for details.
+
+``MESA_RGB_VISUAL``
+ specifies the X visual and depth for RGB mode
+``MESA_CI_VISUAL``
+ specifies the X visual and depth for CI mode
+``MESA_BACK_BUFFER``
+ specifies how to implement the back color buffer, either ``pixmap``
+ or ``ximage``
+``MESA_GAMMA``
+ gamma correction coefficients for red, green, blue channels
+``MESA_XSYNC``
+ enable synchronous X behavior (for debugging only)
+``MESA_GLX_FORCE_CI``
+ if set, force GLX to treat 8bpp visuals as CI visuals
+``MESA_GLX_FORCE_ALPHA``
+ if set, forces RGB windows to have an alpha channel.
+``MESA_GLX_DEPTH_BITS``
+ specifies default number of bits for depth buffer.
+``MESA_GLX_ALPHA_BITS``
+ specifies default number of bits for alpha channel.
+
+i945/i965 driver environment variables (non-Gallium)
+----------------------------------------------------
+
+``INTEL_NO_HW``
+ if set to 1, prevents batches from being submitted to the hardware.
+ This is useful for debugging hangs, etc.
+``INTEL_DEBUG``
+ a comma-separated list of named flags, which do various things:
+
+ ``ann``
+ annotate IR in assembly dumps
+ ``aub``
+ dump batches into an AUB trace for use with simulation tools
+ ``bat``
+ emit batch information
+ ``blit``
+ emit messages about blit operations
+ ``blorp``
+ emit messages about the blorp operations (blits & clears)
+ ``buf``
+ emit messages about buffer objects
+ ``clip``
+ emit messages about the clip unit (for old gens, includes the CLIP
+ program)
+ ``color``
+ use color in output
+ ``cs``
+ dump shader assembly for compute shaders
+ ``do32``
+ generate compute shader SIMD32 programs even if workgroup size
+ doesn't exceed the SIMD16 limit
+ ``dri``
+ emit messages about the DRI interface
+ ``fbo``
+ emit messages about framebuffers
+ ``fs``
+ dump shader assembly for fragment shaders
+ ``gs``
+ dump shader assembly for geometry shaders
+ ``hex``
+ print instruction hex dump with the disassembly
+ ``l3``
+ emit messages about the new L3 state during transitions
+ ``miptree``
+ emit messages about miptrees
+ ``no8``
+ don't generate SIMD8 fragment shader
+ ``no16``
+ suppress generation of 16-wide fragment shaders. useful for
+ debugging broken shaders
+ ``nocompact``
+ disable instruction compaction
+ ``nodualobj``
+ suppress generation of dual-object geometry shader code
+ ``nofc``
+ disable fast clears
+ ``norbc``
+ disable single sampled render buffer compression
+ ``optimizer``
+ dump shader assembly to files at each optimization pass and
+ iteration that make progress
+ ``perf``
+ emit messages about performance issues
+ ``perfmon``
+ emit messages about ``AMD_performance_monitor``
+ ``pix``
+ emit messages about pixel operations
+ ``prim``
+ emit messages about drawing primitives
+ ``reemit``
+ mark all state dirty on each draw call
+ ``sf``
+ emit messages about the strips & fans unit (for old gens, includes
+ the SF program)
+ ``shader_time``
+ record how much GPU time is spent in each shader
+ ``spill_fs``
+ force spilling of all registers in the scalar backend (useful to
+ debug spilling code)
+ ``spill_vec4``
+ force spilling of all registers in the vec4 backend (useful to
+ debug spilling code)
+ ``state``
+ emit messages about state flag tracking
+ ``submit``
+ emit batchbuffer usage statistics
+ ``sync``
+ after sending each batch, emit a message and wait for that batch
+ to finish rendering
+ ``tcs``
+ dump shader assembly for tessellation control shaders
+ ``tes``
+ dump shader assembly for tessellation evaluation shaders
+ ``tex``
+ emit messages about textures.
+ ``urb``
+ emit messages about URB setup
+ ``vert``
+ emit messages about vertex assembly
+ ``vs``
+ dump shader assembly for vertex shaders
+
+``INTEL_SCALAR_VS`` (or ``TCS``, ``TES``, ``GS``)
+ force scalar/vec4 mode for a shader stage (Gen8-9 only)
+``INTEL_PRECISE_TRIG``
+ if set to 1, true or yes, then the driver prefers accuracy over
+ performance in trig functions.
+
+Radeon driver environment variables (radeon, r200, and r300g)
+-------------------------------------------------------------
+
+``RADEON_NO_TCL``
+ if set, disable hardware-accelerated Transform/Clip/Lighting.
+
+EGL environment variables
+-------------------------
+
+Mesa EGL supports different sets of environment variables. See the `Mesa
+EGL <egl.html>`__ page for the details.
+
+Gallium environment variables
+-----------------------------
+
+``GALLIUM_HUD``
+ draws various information on the screen, like framerate, cpu load,
+ driver statistics, performance counters, etc. Set
+ ``GALLIUM_HUD=help`` and run e.g. ``glxgears`` for more info.
+``GALLIUM_HUD_PERIOD``
+ sets the hud update rate in seconds (float). Use zero to update every
+ frame. The default period is 1/2 second.
+``GALLIUM_HUD_VISIBLE``
+ control default visibility, defaults to true.
+``GALLIUM_HUD_TOGGLE_SIGNAL``
+ toggle visibility via user specified signal. Especially useful to
+ toggle hud at specific points of application and disable for
+ unencumbered viewing the rest of the time. For example, set
+ ``GALLIUM_HUD_VISIBLE`` to ``false`` and
+ ``GALLIUM_HUD_TOGGLE_SIGNAL`` to ``10`` (``SIGUSR1``). Use
+ ``kill -10 <pid>`` to toggle the hud as desired.
+``GALLIUM_HUD_SCALE``
+ Scale hud by an integer factor, for high DPI displays. Default is 1.
+``GALLIUM_HUD_DUMP_DIR``
+ specifies a directory for writing the displayed hud values into
+ files.
+``GALLIUM_DRIVER``
+ useful in combination with ``LIBGL_ALWAYS_SOFTWARE=true`` for
+ choosing one of the software renderers ``softpipe``, ``llvmpipe`` or
+ ``swr``.
+``GALLIUM_LOG_FILE``
+ specifies a file for logging all errors, warnings, etc. rather than
+ stderr.
+``GALLIUM_PRINT_OPTIONS``
+ if non-zero, print all the Gallium environment variables which are
+ used, and their current values.
+``GALLIUM_DUMP_CPU``
+ if non-zero, print information about the CPU on start-up
+``TGSI_PRINT_SANITY``
+ if set, do extra sanity checking on TGSI shaders and print any errors
+ to stderr.
+``DRAW_FSE``
+ ???
+``DRAW_NO_FSE``
+ ???
+``DRAW_USE_LLVM``
+ if set to zero, the draw module will not use LLVM to execute shaders,
+ vertex fetch, etc.
+``ST_DEBUG``
+ controls debug output from the Mesa/Gallium state tracker. Setting to
+ ``tgsi``, for example, will print all the TGSI shaders. See
+ ``src/mesa/state_tracker/st_debug.c`` for other options.
+
+Clover environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``CLOVER_EXTRA_BUILD_OPTIONS``
+ allows specifying additional compiler and linker options. Specified
+ options are appended after the options set by the OpenCL program in
+ ``clBuildProgram``.
+``CLOVER_EXTRA_COMPILE_OPTIONS``
+ allows specifying additional compiler options. Specified options are
+ appended after the options set by the OpenCL program in
+ ``clCompileProgram``.
+``CLOVER_EXTRA_LINK_OPTIONS``
+ allows specifying additional linker options. Specified options are
+ appended after the options set by the OpenCL program in
+ ``clLinkProgram``.
+
+Softpipe driver environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``SOFTPIPE_DUMP_FS``
+ if set, the softpipe driver will print fragment shaders to stderr
+``SOFTPIPE_DUMP_GS``
+ if set, the softpipe driver will print geometry shaders to stderr
+``SOFTPIPE_NO_RAST``
+ if set, rasterization is no-op'd. For profiling purposes.
+``SOFTPIPE_USE_LLVM``
+ if set, the softpipe driver will try to use LLVM JIT for vertex
+ shading processing.
+
+LLVMpipe driver environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``LP_NO_RAST``
+ if set LLVMpipe will no-op rasterization
+``LP_DEBUG``
+ a comma-separated list of debug options is accepted. See the source
+ code for details.
+``LP_PERF``
+ a comma-separated list of options to selectively no-op various parts
+ of the driver. See the source code for details.
+``LP_NUM_THREADS``
+ an integer indicating how many threads to use for rendering. Zero
+ turns off threading completely. The default value is the number of
+ CPU cores present.
+
+VMware SVGA driver environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``SVGA_FORCE_SWTNL``
+ force use of software vertex transformation
+``SVGA_NO_SWTNL``
+ don't allow software vertex transformation fallbacks (will often
+ result in incorrect rendering).
+``SVGA_DEBUG``
+ for dumping shaders, constant buffers, etc. See the code for details.
+``SVGA_EXTRA_LOGGING``
+ if set, enables extra logging to the ``vmware.log`` file, such as the
+ OpenGL program's name and command line arguments.
+``SVGA_NO_LOGGING``
+ if set, disables logging to the ``vmware.log`` file. This is useful
+ when using Valgrind because it otherwise crashes when initializing
+ the host log feature.
+
+See the driver code for other, lesser-used variables.
+
+WGL environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``WGL_SWAP_INTERVAL``
+ to set a swap interval, equivalent to calling
+ ``wglSwapIntervalEXT()`` in an application. If this environment
+ variable is set, application calls to ``wglSwapIntervalEXT()`` will
+ have no effect.
+
+VA-API environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``VAAPI_MPEG4_ENABLED``
+ enable MPEG4 for VA-API, disabled by default.
+
+VC4 driver environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``VC4_DEBUG``
+ a comma-separated list of named flags, which do various things:
+
+ ``cl``
+ dump command list during creation
+ ``qpu``
+ dump generated QPU instructions
+ ``qir``
+ dump QPU IR during program compile
+ ``nir``
+ dump NIR during program compile
+ ``tgsi``
+ dump TGSI during program compile
+ ``shaderdb``
+ dump program compile information for shader-db analysis
+ ``perf``
+ print during performance-related events
+ ``norast``
+ skip actual hardware execution of commands
+ ``always_flush``
+ flush after each draw call
+ ``always_sync``
+ wait for finish after each flush
+ ``dump``
+ write a GPU command stream trace file (VC4 simulator only)
+
+RADV driver environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``RADV_DEBUG``
+ a comma-separated list of named flags, which do various things:
+
+ ``allbos``
+ force all allocated buffers to be referenced in submissions
+ ``allentrypoints``
+ enable all device/instance entrypoints
+ ``checkir``
+ validate the LLVM IR before LLVM compiles the shader
+ ``errors``
+ display more info about errors
+ ``info``
+ show GPU-related information
+ ``metashaders``
+ dump internal meta shaders
+ ``nobinning``
+ disable primitive binning
+ ``nocache``
+ disable shaders cache
+ ``nocompute``
+ disable compute queue
+ ``nodcc``
+ disable Delta Color Compression (DCC) on images
+ ``nodynamicbounds``
+ do not check OOB access for dynamic descriptors
+ ``nofastclears``
+ disable fast color/depthstencil clears
+ ``nohiz``
+ disable HIZ for depthstencil images
+ ``noibs``
+ disable directly recording command buffers in GPU-visible memory
+ ``noloadstoreopt``
+ disable LLVM SILoadStoreOptimizer pass
+ ``nomemorycache``
+ disable memory shaders cache
+ ``nongg``
+ disable NGG for GFX10+
+ ``nooutoforder``
+ disable out-of-order rasterization
+ ``noshaderballot``
+ disable shader ballot
+ ``nothreadllvm``
+ disable LLVM threaded compilation
+ ``preoptir``
+ dump LLVM IR before any optimizations
+ ``shaders``
+ dump shaders
+ ``shaderstats``
+ dump shader statistics
+ ``spirv``
+ dump SPIR-V
+ ``startup``
+ display info at startup
+ ``syncshaders``
+ synchronize shaders after all draws/dispatches
+ ``vmfaults``
+ check for VM memory faults via dmesg
+ ``zerovram``
+ initialize all memory allocated in VRAM as zero
+
+``RADV_FORCE_FAMILY``
+ create a null device to compile shaders without a AMD GPU (eg.
+ gfx900)
+``RADV_PERFTEST``
+ a comma-separated list of named flags, which do various things:
+
+ ``aco``
+ enable ACO experimental compiler
+ ``bolist``
+ enable the global BO list
+ ``cswave32``
+ enable wave32 for compute shaders (GFX10+)
+ ``dccmsaa``
+ enable DCC for MSAA images
+ ``dfsm``
+ enable dfsm
+ ``gewave32``
+ enable wave32 for vertex/tess/geometry shaders (GFX10+)
+ ``localbos``
+ enable local BOs
+ ``pswave32``
+ enable wave32 for pixel shaders (GFX10+)
+ ``shader_ballot``
+ enable shader ballot
+ ``tccompatcmask``
+ enable TC-compat cmask for MSAA images
+
+``RADV_SECURE_COMPILE_THREADS``
+ maximum number of secure compile threads (up to 32)
+``RADV_TEX_ANISO``
+ force anisotropy filter (up to 16)
+``RADV_TRACE_FILE``
+ generate cmdbuffer tracefiles when a GPU hang is detected
+``ACO_DEBUG``
+ a comma-separated list of named flags, which do various things:
+
+ ``validateir``
+ validate the ACO IR at various points of compilation (enabled by
+ default for debug/debugoptimized builds)
+ ``validatera``
+ validate register assignment of ACO IR and catches many RA bugs
+ ``perfwarn``
+ abort on some suboptimal code generation
+
+radeonsi driver environment variables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``AMD_DEBUG``
+ a comma-separated list of named flags, which do various things:
+``nodma``
+ Disable SDMA
+``nodmaclear``
+ Disable SDMA clears
+``nodmacopyimage``
+ Disable SDMA image copies
+``zerovram``
+ Clear VRAM allocations.
+``nodcc``
+ Disable DCC.
+``nodccclear``
+ Disable DCC fast clear.
+``nodccfb``
+ Disable separate DCC on the main framebuffer
+``nodccmsaa``
+ Disable DCC for MSAA
+``nodpbb``
+ Disable DPBB.
+``nodfsm``
+ Disable DFSM.
+``notiling``
+ Disable tiling
+``nofmask``
+ Disable MSAA compression
+``nohyperz``
+ Disable Hyper-Z
+``norbplus``
+ Disable RB+.
+``no2d``
+ Disable 2D tiling
+``info``
+ Print driver information
+``tex``
+ Print texture info
+``compute``
+ Print compute info
+``vm``
+ Print virtual addresses when creating resources
+``vs``
+ Print vertex shaders
+``ps``
+ Print pixel shaders
+``gs``
+ Print geometry shaders
+``tcs``
+ Print tessellation control shaders
+``tes``
+ Print tessellation evaluation shaders
+``cs``
+ Print compute shaders
+``noir``
+ Don't print the LLVM IR
+``nonir``
+ Don't print NIR when printing shaders
+``noasm``
+ Don't print disassembled shaders
+``preoptir``
+ Print the LLVM IR before initial optimizations
+``gisel``
+ Enable LLVM global instruction selector.
+``w32ge``
+ Use Wave32 for vertex, tessellation, and geometry shaders.
+``w32ps``
+ Use Wave32 for pixel shaders.
+``w32cs``
+ Use Wave32 for computes shaders.
+``w64ge``
+ Use Wave64 for vertex, tessellation, and geometry shaders.
+``w64ps``
+ Use Wave64 for pixel shaders.
+``w64cs``
+ Use Wave64 for computes shaders.
+``checkir``
+ Enable additional sanity checks on shader IR
+``mono``
+ Use old-style monolithic shaders compiled on demand
+``nooptvariant``
+ Disable compiling optimized shader variants.
+``forcedma``
+ Use SDMA for all operations when possible.
+``nowc``
+ Disable GTT write combining
+``check_vm``
+ Check VM faults and dump debug info.
+``reserve_vmid``
+ Force VMID reservation per context.
+``nogfx``
+ Disable graphics. Only multimedia compute paths can be used.
+``nongg``
+ Disable NGG and use the legacy pipeline.
+``nggc``
+ Always use NGG culling even when it can hurt.
+``nonggc``
+ Disable NGG culling.
+``alwayspd``
+ Always enable the primitive discard compute shader.
+``pd``
+ Enable the primitive discard compute shader for large draw calls.
+``nopd``
+ Disable the primitive discard compute shader.
+``switch_on_eop``
+ Program WD/IA to switch on end-of-packet.
+``nooutoforder``
+ Disable out-of-order rasterization
+``dpbb``
+ Enable DPBB.
+``dfsm``
+ Enable DFSM.
+
+Other Gallium drivers have their own environment variables. These may
+change frequently so the source code should be consulted for details.