<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>Environment Variables</title>
  <link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>

<div class="header">
  The Mesa 3D Graphics Library
</div>

<iframe src="contents.html"></iframe>
<div class="content">

<h1>Environment Variables</h1>

<p>
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.
</p>


<h2>LibGL environment variables</h2>

<dl>
<dt><code>LIBGL_DEBUG</code></dt>
<dd>If defined debug information will be printed to stderr.
    If set to <code>verbose</code> additional information will be
    printed.</dd>
<dt><code>LIBGL_DRIVERS_PATH</code></dt>
<dd>colon-separated list of paths to search for DRI drivers</dd>
<dt><code>LIBGL_ALWAYS_INDIRECT</code></dt>
<dd>if set to <code>true</code>, forces an indirect rendering
    context/connection.</dd>
<dt><code>LIBGL_ALWAYS_SOFTWARE</code></dt>
<dd>if set to <code>true</code>, always use software rendering</dd>
<dt><code>LIBGL_NO_DRAWARRAYS</code></dt>
<dd>if set to <code>true</code>, do not use DrawArrays GLX protocol
    (for debugging)</dd>
<dt><code>LIBGL_SHOW_FPS</code></dt>
<dd>print framerate to stdout based on the number of
    <code>glXSwapBuffers</code> calls per second.</dd>
<dt><code>LIBGL_DRI3_DISABLE</code></dt>
<dd>disable DRI3 if set to <code>true</code>.</dd>
</dl>

<h2>Core Mesa environment variables</h2>

<dl>
<dt><code>MESA_NO_ASM</code></dt>
<dd>if set, disables all assembly language optimizations</dd>
<dt><code>MESA_NO_MMX</code></dt>
<dd>if set, disables Intel MMX optimizations</dd>
<dt><code>MESA_NO_3DNOW</code></dt>
<dd>if set, disables AMD 3DNow! optimizations</dd>
<dt><code>MESA_NO_SSE</code></dt>
<dd>if set, disables Intel SSE optimizations</dd>
<dt><code>MESA_NO_ERROR</code></dt>
<dd>if set to 1, error checking is disabled as per <code>KHR_no_error</code>.
    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.</dd>
<dt><code>MESA_DEBUG</code></dt>
<dd>if set, error messages are printed to stderr.  For example,
    if the application generates a <code>GL_INVALID_ENUM</code> error, a
    corresponding error message indicating where the error occurred, and
    possibly why, will be printed to stderr. For release builds,
    <code>MESA_DEBUG</code> defaults to off (no debug output).
    <code>MESA_DEBUG</code> accepts the following comma-separated list of
    named flags, which adds extra behaviour to just set
    <code>MESA_DEBUG=1</code>:
    <dl>
      <dt><code>silent</code></dt>
      <dd>turn off debug messages. Only useful for debug builds.</dd>
      <dt><code>flush</code></dt>
      <dd>flush after each drawing command</dd>
      <dt><code>incomplete_tex</code></dt>
      <dd>extra debug messages when a texture is incomplete</dd>
      <dt><code>incomplete_fbo</code></dt>
      <dd>extra debug messages when a fbo is incomplete</dd>
      <dt><code>context</code></dt>
      <dd>create a debug context (see <code>GLX_CONTEXT_DEBUG_BIT_ARB</code>)
          and print error and performance messages to stderr (or
          <code>MESA_LOG_FILE</code>).</dd>
    </dl>
</dd>
<dt><code>MESA_LOG_FILE</code></dt>
<dd>specifies a file name for logging all errors, warnings,
    etc., rather than stderr</dd>
<dt><code>MESA_TEX_PROG</code></dt>
<dd>if set, implement conventional texture env modes with
    fragment programs (intended for developers only)</dd>
<dt><code>MESA_TNL_PROG</code></dt>
<dd>if set, implement conventional vertex transformation operations with
    vertex programs (intended for developers only). Setting this variable
    automatically sets the <code>MESA_TEX_PROG</code> variable as well.</dd>
<dt><code>MESA_EXTENSION_OVERRIDE</code></dt>
<dd>can be used to enable/disable extensions. A value such as
    <code>GL_EXT_foo -GL_EXT_bar</code> will enable the
    <code>GL_EXT_foo</code> extension and disable the
    <code>GL_EXT_bar</code> extension.</dd>
<dt><code>MESA_EXTENSION_MAX_YEAR</code></dt>
<dd>The <code>GL_EXTENSIONS</code> 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.</dd>
<dt><code>MESA_GL_VERSION_OVERRIDE</code></dt>
<dd>changes the value returned by
<code>glGetString(GL_VERSION)</code> and possibly the GL API type.
<ul>
  <li>The format should be <code>MAJOR.MINOR[FC|COMPAT]</code>
  <li><code>FC</code> is an optional suffix that indicates a forward
      compatible context. This is only valid for versions &gt;= 3.0.
  <li><code>COMPAT</code> is an optional suffix that indicates a
      compatibility context or <code>GL_ARB_compatibility</code> support.
      This is only valid for versions &gt;= 3.1.
  <li>GL versions &lt;= 3.0 are set to a compatibility (non-Core)
      profile
  <li>GL versions = 3.1, depending on the driver, it may or may not
      have the <code>ARB_compatibility</code> extension enabled.
  <li>GL versions &gt;= 3.2 are set to a Core profile
  <li>Examples:
  <dl>
    <dt><code>2.1</code></dt>
    <dd>select a compatibility (non-Core) profile with GL version 2.1.</dd>
    <dt><code>3.0</code></dt>
    <dd>select a compatibility (non-Core) profile with GL version 3.0.</dd>
    <dt><code>3.0FC</code></dt>
    <dd>select a Core+Forward Compatible profile with GL version 3.0.</dd>
    <dt><code>3.1</code></dt>
    <dd>select GL version 3.1 with <code>GL_ARB_compatibility</code>
        enabled per the driver default.</dd>
    <dt><code>3.1FC</code></dt>
    <dd>select GL version 3.1 with forward compatibility and
        <code>GL_ARB_compatibility</code> disabled.</dd>
    <dt><code>3.1COMPAT</code></dt>
    <dd>select GL version 3.1 with <code>GL_ARB_compatibility</code>
        enabled.</dd>
    <dt><code>X.Y</code></dt>
    <dd>override GL version to X.Y without changing the profile.</dd>
    <dt><code>X.YFC</code></dt>
    <dd>select a Core+Forward Compatible profile with GL version X.Y.</dd>
    <dt><code>X.YCOMPAT</code></dt>
    <dd>select a Compatibility profile with GL version X.Y.</dd>
  </dl>
  <li>Mesa may not really implement all the features of the given
      version. (for developers only)
</ul>
</dd>
<dt><code>MESA_GLES_VERSION_OVERRIDE</code></dt>
<dd>changes the value returned by <code>glGetString(GL_VERSION)</code>
    for OpenGL ES.
<ul>
<li> The format should be <code>MAJOR.MINOR</code>
<li> Examples: <code>2.0</code>, <code>3.0</code>, <code>3.1</code>
<li> Mesa may not really implement all the features of the given version.
(for developers only)
</ul>
</dd>
<dt><code>MESA_GLSL_VERSION_OVERRIDE</code></dt>
<dd>changes the value returned by
    <code>glGetString(GL_SHADING_LANGUAGE_VERSION)</code>.
    Valid values are integers, such as <code>130</code>.  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)
</dd>
<dt><code>MESA_GLSL_CACHE_DISABLE</code></dt>
<dd>if set to <code>true</code>, disables the GLSL shader cache</dd>
<dt><code>MESA_GLSL_CACHE_MAX_SIZE</code></dt>
<dd>if set, determines the maximum size of the on-disk cache of compiled GLSL
    programs. Should be set to a number optionally followed by <code>K</code>,
    <code>M</code>, or <code>G</code> 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.</dd>
<dt><code>MESA_GLSL_CACHE_DIR</code></dt>
<dd>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 <code>$XDG_CACHE_HOME/mesa_shader_cache</code> (if that
    variable is set), or else within <code>.cache/mesa_shader_cache</code>
    within the user's home directory.
</dd>
<dt><code>MESA_GLSL</code></dt>
<dd><a href="shading.html#envvars">shading language compiler options</a></dd>
<dt><code>MESA_NO_MINMAX_CACHE</code></dt>
<dd>when set, the minmax index cache is globally disabled.</dd>
<dt><code>MESA_SHADER_CAPTURE_PATH</code></dt>
<dd>see <a href="shading.html#capture">Capturing Shaders</a></dd>
<dt><code>MESA_SHADER_DUMP_PATH</code> and <code>MESA_SHADER_READ_PATH</code></dt>
<dd>see <a href="shading.html#replacement">Experimenting with Shader Replacements</a></dd>
<dt><code>MESA_VK_VERSION_OVERRIDE</code></dt>
<dd>changes the Vulkan physical device version
    as returned in <code>VkPhysicalDeviceProperties::apiVersion</code>.
  <ul>
    <li>The format should be <code>MAJOR.MINOR[.PATCH]</code></li>
    <li>This will not let you force a version higher than the driver's
        instance version as advertised by
        <code>vkEnumerateInstanceVersion</code></li>
    <li>This can be very useful for debugging but some features may not be
        implemented correctly. (For developers only)</li>
  </ul>
</dd>
</dl>


<h2>NIR passes enviroment variables</h2>
<p>
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.
</p>

<dl>
  <dt><code>NIR_PRINT</code></dt>
  <dd>If defined, the resulting NIR shader will be printed out at each succesful NIR lowering/optimization call.</dd>
  <dt><code>NIR_TEST_CLONE</code></dt>
  <dd>If defined, cloning a NIR shader would be tested at each succesful NIR lowering/optimization call.</dd>
  <dt><code>NIR_TEST_SERIALIZE</code></dt>
  <dd>If defined, serialize and deserialize a NIR shader would be tested at each succesful NIR lowering/optimization call.</dd>
</dl>


<h2>Mesa Xlib driver environment variables</h2>

<p>
The following are only applicable to the Mesa Xlib software driver.
See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
</p>
<dl>
<dt><code>MESA_RGB_VISUAL</code></dt>
<dd>specifies the X visual and depth for RGB mode</dd>
<dt><code>MESA_CI_VISUAL</code></dt>
<dd>specifies the X visual and depth for CI mode</dd>
<dt><code>MESA_BACK_BUFFER</code></dt>
<dd>specifies how to implement the back color buffer, either
    <code>pixmap</code> or <code>ximage</code></dd>
<dt><code>MESA_GAMMA</code></dt>
<dd>gamma correction coefficients for red, green, blue channels</dd>
<dt><code>MESA_XSYNC</code></dt>
<dd>enable synchronous X behavior (for debugging only)</dd>
<dt><code>MESA_GLX_FORCE_CI</code></dt>
<dd>if set, force GLX to treat 8bpp visuals as CI visuals</dd>
<dt><code>MESA_GLX_FORCE_ALPHA</code></dt>
<dd>if set, forces RGB windows to have an alpha channel.</dd>
<dt><code>MESA_GLX_DEPTH_BITS</code></dt>
<dd>specifies default number of bits for depth buffer.</dd>
<dt><code>MESA_GLX_ALPHA_BITS</code></dt>
<dd>specifies default number of bits for alpha channel.</dd>
</dl>


<h2>i945/i965 driver environment variables (non-Gallium)</h2>

<dl>
<dt><code>INTEL_NO_HW</code></dt>
<dd>if set to 1, prevents batches from being submitted to the hardware.
    This is useful for debugging hangs, etc.</dd>
<dt><code>INTEL_DEBUG</code></dt>
<dd>a comma-separated list of named flags, which do various things:
<dl>
   <dt><code>ann</code></dt>
   <dd>annotate IR in assembly dumps</dd>
   <dt><code>aub</code></dt>
   <dd>dump batches into an AUB trace for use with simulation tools</dd>
   <dt><code>bat</code></dt>
   <dd>emit batch information</dd>
   <dt><code>blit</code></dt>
   <dd>emit messages about blit operations</dd>
   <dt><code>blorp</code></dt>
   <dd>emit messages about the blorp operations (blits &amp; clears)</dd>
   <dt><code>buf</code></dt>
   <dd>emit messages about buffer objects</dd>
   <dt><code>clip</code></dt>
   <dd>emit messages about the clip unit (for old gens, includes the CLIP program)</dd>
   <dt><code>color</code></dt>
   <dd>use color in output</dd>
   <dt><code>cs</code></dt>
   <dd>dump shader assembly for compute shaders</dd>
   <dt><code>do32</code></dt>
   <dd>generate compute shader SIMD32 programs even if workgroup size doesn't exceed the SIMD16 limit</dd>
   <dt><code>dri</code></dt>
   <dd>emit messages about the DRI interface</dd>
   <dt><code>fbo</code></dt>
   <dd>emit messages about framebuffers</dd>
   <dt><code>fs</code></dt>
   <dd>dump shader assembly for fragment shaders</dd>
   <dt><code>gs</code></dt>
   <dd>dump shader assembly for geometry shaders</dd>
   <dt><code>hex</code></dt>
   <dd>print instruction hex dump with the disassembly</dd>
   <dt><code>l3</code></dt>
   <dd>emit messages about the new L3 state during transitions</dd>
   <dt><code>miptree</code></dt>
   <dd>emit messages about miptrees</dd>
   <dt><code>no8</code></dt>
   <dd>don't generate SIMD8 fragment shader</dd>
   <dt><code>no16</code></dt>
   <dd>suppress generation of 16-wide fragment shaders. useful for debugging broken shaders</dd>
   <dt><code>nocompact</code></dt>
   <dd>disable instruction compaction</dd>
   <dt><code>nodualobj</code></dt>
   <dd>suppress generation of dual-object geometry shader code</dd>
   <dt><code>nofc</code></dt>
   <dd>disable fast clears</dd>
   <dt><code>norbc</code></dt>
   <dd>disable single sampled render buffer compression</dd>
   <dt><code>optimizer</code></dt>
   <dd>dump shader assembly to files at each optimization pass and iteration that make progress</dd>
   <dt><code>perf</code></dt>
   <dd>emit messages about performance issues</dd>
   <dt><code>perfmon</code></dt>
   <dd>emit messages about <code>AMD_performance_monitor</code></dd>
   <dt><code>pix</code></dt>
   <dd>emit messages about pixel operations</dd>
   <dt><code>prim</code></dt>
   <dd>emit messages about drawing primitives</dd>
   <dt><code>reemit</code></dt>
   <dd>mark all state dirty on each draw call</dd>
   <dt><code>sf</code></dt>
   <dd>emit messages about the strips &amp; fans unit (for old gens, includes the SF program)</dd>
   <dt><code>shader_time</code></dt>
   <dd>record how much GPU time is spent in each shader</dd>
   <dt><code>spill_fs</code></dt>
   <dd>force spilling of all registers in the scalar backend (useful to debug spilling code)</dd>
   <dt><code>spill_vec4</code></dt>
   <dd>force spilling of all registers in the vec4 backend (useful to debug spilling code)</dd>
   <dt><code>state</code></dt>
   <dd>emit messages about state flag tracking</dd>
   <dt><code>submit</code></dt>
   <dd>emit batchbuffer usage statistics</dd>
   <dt><code>sync</code></dt>
   <dd>after sending each batch, emit a message and wait for that batch to finish rendering</dd>
   <dt><code>tcs</code></dt>
   <dd>dump shader assembly for tessellation control shaders</dd>
   <dt><code>tes</code></dt>
   <dd>dump shader assembly for tessellation evaluation shaders</dd>
   <dt><code>tex</code></dt>
   <dd>emit messages about textures.</dd>
   <dt><code>urb</code></dt>
   <dd>emit messages about URB setup</dd>
   <dt><code>vert</code></dt>
   <dd>emit messages about vertex assembly</dd>
   <dt><code>vs</code></dt>
   <dd>dump shader assembly for vertex shaders</dd>
</dl>
</dd>
<dt><code>INTEL_SCALAR_VS</code> (or <code>TCS</code>, <code>TES</code>,
    <code>GS</code>)</dt>
<dd>force scalar/vec4 mode for a shader stage (Gen8-9 only)</dd>
<dt><code>INTEL_PRECISE_TRIG</code></dt>
<dd>if set to 1, true or yes, then the driver prefers accuracy over
    performance in trig functions.</dd>
</dl>


<h2>Radeon driver environment variables (radeon, r200, and r300g)</h2>

<dl>
<dt><code>RADEON_NO_TCL</code></dt>
<dd>if set, disable hardware-accelerated Transform/Clip/Lighting.</dd>
</dl>


<h2>EGL environment variables</h2>

<p>
Mesa EGL supports different sets of environment variables.  See the
<a href="egl.html">Mesa EGL</a> page for the details.
</p>


<h2>Gallium environment variables</h2>

<dl>
<dt><code>GALLIUM_HUD</code></dt>
<dd>draws various information on the screen, like framerate,
    cpu load, driver statistics, performance counters, etc.
    Set <code>GALLIUM_HUD=help</code> and run e.g.
    <code>glxgears</code> for more info.</dd>
<dt><code>GALLIUM_HUD_PERIOD</code></dt>
<dd>sets the hud update rate in seconds (float). Use zero
    to update every frame. The default period is 1/2 second.</dd>
<dt><code>GALLIUM_HUD_VISIBLE</code></dt>
<dd>control default visibility, defaults to true.</dd>
<dt><code>GALLIUM_HUD_TOGGLE_SIGNAL</code></dt>
<dd>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
    <code>GALLIUM_HUD_VISIBLE</code> to <code>false</code> and
    <code>GALLIUM_HUD_TOGGLE_SIGNAL</code> to <code>10</code>
    (<code>SIGUSR1</code>).
    Use <code>kill -10 &lt;pid&gt;</code> to toggle the hud as desired.</dd>
<dt><code>GALLIUM_HUD_DUMP_DIR</code></dt>
<dd>specifies a directory for writing the displayed hud values into files.</dd>
<dt><code>GALLIUM_DRIVER</code></dt>
<dd>useful in combination with <code>LIBGL_ALWAYS_SOFTWARE=true</code> for
    choosing one of the software renderers <code>softpipe</code>,
    <code>llvmpipe</code> or <code>swr</code>.</dd>
<dt><code>GALLIUM_LOG_FILE</code></dt>
<dd>specifies a file for logging all errors, warnings, etc.
    rather than stderr.</dd>
<dt><code>GALLIUM_PRINT_OPTIONS</code></dt>
<dd>if non-zero, print all the Gallium environment variables which are
    used, and their current values.</dd>
<dt><code>GALLIUM_DUMP_CPU</code></dt>
<dd>if non-zero, print information about the CPU on start-up</dd>
<dt><code>TGSI_PRINT_SANITY</code></dt>
<dd>if set, do extra sanity checking on TGSI shaders and
    print any errors to stderr.</dd>
<dt><code>DRAW_FSE</code></dt>
<dd>???</dd>
<dt><code>DRAW_NO_FSE</code></dt>
<dd>???</dd>
<dt><code>DRAW_USE_LLVM</code></dt>
<dd>if set to zero, the draw module will not use LLVM to execute
    shaders, vertex fetch, etc.</dd>
<dt><code>ST_DEBUG</code></dt>
<dd>controls debug output from the Mesa/Gallium state tracker.
    Setting to <code>tgsi</code>, for example, will print all the TGSI
    shaders. See <code>src/mesa/state_tracker/st_debug.c</code> for other
    options.</dd>
</dl>

<h3>Clover state tracker environment variables</h3>

<dl>
<dt><code>CLOVER_EXTRA_BUILD_OPTIONS</code></dt>
<dd>allows specifying additional compiler and linker
    options. Specified options are appended after the options set by the OpenCL
    program in <code>clBuildProgram</code>.</dd>
<dt><code>CLOVER_EXTRA_COMPILE_OPTIONS</code></dt>
<dd>allows specifying additional compiler
    options. Specified options are appended after the options set by the OpenCL
    program in <code>clCompileProgram</code>.</dd>
<dt><code>CLOVER_EXTRA_LINK_OPTIONS</code></dt>
<dd>allows specifying additional linker
    options. Specified options are appended after the options set by the OpenCL
    program in <code>clLinkProgram</code>.</dd>
</dl>


<h3>Softpipe driver environment variables</h3>
<dl>
<dt><code>SOFTPIPE_DUMP_FS</code></dt>
<dd>if set, the softpipe driver will print fragment shaders to stderr</dd>
<dt><code>SOFTPIPE_DUMP_GS</code></dt>
<dd>if set, the softpipe driver will print geometry shaders to stderr</dd>
<dt><code>SOFTPIPE_NO_RAST</code></dt>
<dd>if set, rasterization is no-op'd.  For profiling purposes.</dd>
<dt><code>SOFTPIPE_USE_LLVM</code></dt>
<dd>if set, the softpipe driver will try to use LLVM JIT for
    vertex shading processing.</dd>
</dl>


<h3>LLVMpipe driver environment variables</h3>
<dl>
<dt><code>LP_NO_RAST</code></dt>
<dd>if set LLVMpipe will no-op rasterization</dd>
<dt><code>LP_DEBUG</code></dt>
<dd>a comma-separated list of debug options is accepted.  See the
    source code for details.</dd>
<dt><code>LP_PERF</code></dt>
<dd>a comma-separated list of options to selectively no-op various
    parts of the driver.  See the source code for details.</dd>
<dt><code>LP_NUM_THREADS</code></dt>
<dd>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.</dd>
</dl>

<h3>VMware SVGA driver environment variables</h3>
<dl>
<dt><code>SVGA_FORCE_SWTNL</code></dt>
<dd>force use of software vertex transformation</dd>
<dt><code>SVGA_NO_SWTNL</code></dt>
<dd>don't allow software vertex transformation fallbacks (will often result
    in incorrect rendering).</dd>
<dt><code>SVGA_DEBUG</code></dt>
<dd>for dumping shaders, constant buffers, etc.  See the code for
    details.</dd>
<dt><code>SVGA_EXTRA_LOGGING</code></dt>
<dd>if set, enables extra logging to the <code>vmware.log</code> file,
    such as the OpenGL program's name and command line arguments.</dd>
<dt><code>SVGA_NO_LOGGING</code></dt>
<dd>if set, disables logging to the <code>vmware.log</code> file. This is
    useful when using Valgrind because it otherwise crashes when
    initializing the host log feature.</dd>
</dl>
<p>See the driver code for other, lesser-used variables.</p>

<h3>WGL environment variables</h3>
<dl>
<dt><code>WGL_SWAP_INTERVAL</code></dt>
<dd>to set a swap interval, equivalent to calling
    <code>wglSwapIntervalEXT()</code> in an application.  If this
    environment variable is set, application calls to
    <code>wglSwapIntervalEXT()</code> will have no effect.</dd>
</dl>

<h3>VA-API state tracker environment variables</h3>
<dl>
<dt><code>VAAPI_MPEG4_ENABLED</code></dt>
<dd>enable MPEG4 for VA-API, disabled by default.</dd>
</dl>


<h3>VC4 driver environment variables</h3>
<dl>
<dt><code>VC4_DEBUG</code></dt>
<dd>a comma-separated list of named flags, which do various things:
<dl>
   <dt><code>cl</code></dt>
   <dd>dump command list during creation</dd>
   <dt><code>qpu</code></dt>
   <dd>dump generated QPU instructions</dd>
   <dt><code>qir</code></dt>
   <dd>dump QPU IR during program compile</dd>
   <dt><code>nir</code></dt>
   <dd>dump NIR during program compile</dd>
   <dt><code>tgsi</code></dt>
   <dd>dump TGSI during program compile</dd>
   <dt><code>shaderdb</code></dt>
   <dd>dump program compile information for shader-db analysis</dd>
   <dt><code>perf</code></dt>
   <dd>print during performance-related events</dd>
   <dt><code>norast</code></dt>
   <dd>skip actual hardware execution of commands</dd>
   <dt><code>always_flush</code></dt>
   <dd>flush after each draw call</dd>
   <dt><code>always_sync</code></dt>
   <dd>wait for finish after each flush</dd>
   <dt><code>dump</code></dt>
   <dd>write a GPU command stream trace file (VC4 simulator only)</dd>
</dl>
</dd>
</dl>


<h3>RADV driver environment variables</h3>
<dl>
<dt><code>RADV_DEBUG</code></dt>
<dd>a comma-separated list of named flags, which do various things:
<dl>
   <dt><code>allbos</code></dt>
   <dd>force all allocated buffers to be referenced in submissions</dd>
   <dt><code>allentrypoints</code></dt>
   <dd>enable all device/instance entrypoints</dd>
   <dt><code>checkir</code></dt>
   <dd>validate the LLVM IR before LLVM compiles the shader</dd>
   <dt><code>errors</code></dt>
   <dd>display more info about errors</dd>
   <dt><code>info</code></dt>
   <dd>show GPU-related information</dd>
   <dt><code>metashaders</code></dt>
   <dd>dump internal meta shaders</dd>
   <dt><code>nobinning</code></dt>
   <dd>disable primitive binning</dd>
   <dt><code>nocache</code></dt>
   <dd>disable shaders cache</dd>
   <dt><code>nocompute</code></dt>
   <dd>disable compute queue</dd>
   <dt><code>nodcc</code></dt>
   <dd>disable Delta Color Compression (DCC) on images</dd>
   <dt><code>nodynamicbounds</code></dt>
   <dd>do not check OOB access for dynamic descriptors</dd>
   <dt><code>nofastclears</code></dt>
   <dd>disable fast color/depthstencil clears</dd>
   <dt><code>nohiz</code></dt>
   <dd>disable HIZ for depthstencil images</dd>
   <dt><code>noibs</code></dt>
   <dd>disable directly recording command buffers in GPU-visible memory</dd>
   <dt><code>noloadstoreopt</code></dt>
   <dd>disable LLVM SILoadStoreOptimizer pass</dd>
   <dt><code>nomemorycache</code></dt>
   <dd>disable memory shaders cache</dd>
   <dt><code>nongg</code></dt>
   <dd>disable NGG for GFX10+</dd>
   <dt><code>nooutoforder</code></dt>
   <dd>disable out-of-order rasterization</dd>
   <dt><code>noshaderballot</code></dt>
   <dd>disable shader ballot</dd>
   <dt><code>nosisched</code></dt>
   <dd>disable LLVM sisched experimental scheduler</dd>
   <dt><code>nothreadllvm</code></dt>
   <dd>disable LLVM threaded compilation</dd>
   <dt><code>preoptir</code></dt>
   <dd>dump LLVM IR before any optimizations</dd>
   <dt><code>shaders</code></dt>
   <dd>dump shaders</dd>
   <dt><code>shaderstats</code></dt>
   <dd>dump shader statistics</dd>
   <dt><code>spirv</code></dt>
   <dd>dump SPIR-V</dd>
   <dt><code>startup</code></dt>
   <dd>display info at startup</dd>
   <dt><code>syncshaders</code></dt>
   <dd>synchronize shaders after all draws/dispatches</dd>
   <dt><code>vmfaults</code></dt>
   <dd>check for VM memory faults via dmesg</dd>
   <dt><code>zerovram</code></dt>
   <dd>initialize all memory allocated in VRAM as zero</dd>
</dl>
</dd>
<dt><code>RADV_FORCE_FAMILY</code></dt>
<dd>force the driver to use a specific family eg. gfx900 (developers only)</dd>
<dt><code>RADV_PERFTEST</code></dt>
<dd>a comma-separated list of named flags, which do various things:
<dl>
   <dt><code>aco</code></dt>
   <dd>enable ACO experimental compiler</dd>
   <dt><code>bolist</code></dt>
   <dd>enable the global BO list</dd>
   <dt><code>cswave32</code></dt>
   <dd>enable wave32 for compute shaders (GFX10+)</dd>
   <dt><code>dccmsaa</code></dt>
   <dd>enable DCC for MSAA images</dd>
   <dt><code>dfsm</code></dt>
   <dd>enable dfsm</dd>
   <dt><code>gewave32</code></dt>
   <dd>enable wave32 for vertex/tess/geometry shaders (GFX10+)</dd>
   <dt><code>localbos</code></dt>
   <dd>enable local BOs</dd>
   <dt><code>nobatchchain</code></dt>
   <dd>disable chained submissions</dd>
   <dt><code>pswave32</code></dt>
   <dd>enable wave32 for pixel shaders (GFX10+)</dd>
   <dt><code>shader_ballot</code></dt>
   <dd>enable shader ballot</dd>
   <dt><code>sisched</code></dt>
   <dd>enable LLVM sisched experimental scheduler</dd>
   <dt><code>tccompatcmask</code></dt>
   <dd>enable TC-compat cmask for MSAA images</dd>
</dl>
</dd>
<dt><code>RADV_SECURE_COMPILE_THREADS</code></dt>
<dd>maximum number of secure compile threads (up to 32)</dd>
<dt><code>RADV_TRACE_FILE</code></dt>
<dd>generate cmdbuffer tracefiles when a GPU hang is detected</dd>
</dl>

<h3>radeonsi driver environment variables</h3>
<dl>
<dt><code>AMD_DEBUG</code></dt>
<dd>a comma-separated list of named flags, which do various things:</dd>
<dl>
<dd></dd>
  <h4>Disable features / workaround flags (useful to diagnose an issue):</h4>
  <dt><code>nodma</code></dt>
  <dd>Disable SDMA</dd>
  <dt><code>nodmaclear</code></dt>
  <dd>Disable SDMA clears</dd>
  <dt><code>nodmacopyimage</code></dt>
  <dd>Disable SDMA image copies</dd>
  <dt><code>zerovram</code></dt>
  <dd>Clear VRAM allocations.</dd>
  <dt><code>nodcc</code></dt>
  <dd>Disable DCC.</dd>
  <dt><code>nodccclear</code></dt>
  <dd>Disable DCC fast clear.</dd>
  <dt><code>nodccfb</code></dt>
  <dd>Disable separate DCC on the main framebuffer</dd>
  <dt><code>nodccmsaa</code></dt>
  <dd>Disable DCC for MSAA</dd>
  <dt><code>nodpbb</code></dt>
  <dd>Disable DPBB.</dd>
  <dt><code>nodfsm</code></dt>
  <dd>Disable DFSM.</dd>
  <dt><code>notiling</code></dt>
  <dd>Disable tiling</dd>
  <dt><code>nofmask</code></dt>
  <dd>Disable MSAA compression</dd>
  <dt><code>nohyperz</code></dt>
  <dd>Disable Hyper-Z</dd>
  <dt><code>norbplus</code></dt>
  <dd>Disable RB+.</dd>
  <dt><code>no2d</code></dt>
  <dd>Disable 2D tiling</dd>
  <h4>Info flags:</h4>
  <dt><code>info</code></dt>
  <dd>Print driver information</dd>
  <dt><code>tex</code></dt>
  <dd>Print texture info</dd>
  <dt><code>compute</code></dt>
  <dd>Print compute info</dd>
  <dt><code>vm</code></dt>
  <dd>Print virtual addresses when creating resources</dd>
  <h4>Print shaders flags:</h4>
  <dt><code>vs</code></dt>
  <dd>Print vertex shaders</dd>
  <dt><code>ps</code></dt>
  <dd>Print pixel shaders</dd>
  <dt><code>gs</code></dt>
  <dd>Print geometry shaders</dd>
  <dt><code>tcs</code></dt>
  <dd>Print tessellation control shaders</dd>
  <dt><code>tes</code></dt>
  <dd>Print tessellation evaluation shaders</dd>
  <dt><code>cs</code></dt>
  <dd>Print compute shaders</dd>
  <dt><code>noir</code></dt>
  <dd>Don't print the LLVM IR</dd>
  <dt><code>nonir</code></dt>
  <dd>Don't print NIR when printing shaders</dd>
  <dt><code>noasm</code></dt>
  <dd>Don't print disassembled shaders</dd>
  <dt><code>preoptir</code></dt>
  <dd>Print the LLVM IR before initial optimizations</dd>
  <h4>Shader compilation tuning flags:</h4>
  <dt><code>sisched</code></dt>
  <dd>Enable LLVM SI Machine Instruction Scheduler.</dd>
  <dt><code>gisel</code></dt>
  <dd>Enable LLVM global instruction selector.</dd>
  <dt><code>w32ge</code></dt>
  <dd>Use Wave32 for vertex, tessellation, and geometry shaders.</dd>
  <dt><code>w32ps</code></dt>
  <dd>Use Wave32 for pixel shaders.</dd>
  <dt><code>w32cs</code></dt>
  <dd>Use Wave32 for computes shaders.</dd>
  <dt><code>w64ge</code></dt>
  <dd>Use Wave64 for vertex, tessellation, and geometry shaders.</dd>
  <dt><code>w64ps</code></dt>
  <dd>Use Wave64 for pixel shaders.</dd>
  <dt><code>w64cs</code></dt>
  <dd>Use Wave64 for computes shaders.</dd>
  <dt><code>checkir</code></dt>
  <dd>Enable additional sanity checks on shader IR</dd>
  <dt><code>mono</code></dt>
  <dd>Use old-style monolithic shaders compiled on demand</dd>
  <dt><code>nooptvariant</code></dt>
  <dd>Disable compiling optimized shader variants.</dd>
  <h4>Advanced usage flags:</h4>
  <dt><code>forcedma</code></dt>
  <dd>Use SDMA for all operations when possible.</dd>
  <dt><code>nowc</code></dt>
  <dd>Disable GTT write combining</dd>
  <dt><code>check_vm</code></dt>
  <dd>Check VM faults and dump debug info.</dd>
  <dt><code>reserve_vmid</code></dt>
  <dd>Force VMID reservation per context.</dd>
  <dt><code>nogfx</code></dt>
  <dd>Disable graphics. Only multimedia compute paths can be used.</dd>
  <dt><code>nongg</code></dt>
  <dd>Disable NGG and use the legacy pipeline.</dd>
  <dt><code>nggc</code></dt>
  <dd>Always use NGG culling even when it can hurt.</dd>
  <dt><code>nonggc</code></dt>
  <dd>Disable NGG culling.</dd>
  <dt><code>alwayspd</code></dt>
  <dd>Always enable the primitive discard compute shader.</dd>
  <dt><code>pd</code></dt>
  <dd>Enable the primitive discard compute shader for large draw calls.</dd>
  <dt><code>nopd</code></dt>
  <dd>Disable the primitive discard compute shader.</dd>
  <dt><code>switch_on_eop</code></dt>
  <dd>Program WD/IA to switch on end-of-packet.</dd>
  <dt><code>nooutoforder</code></dt>
  <dd>Disable out-of-order rasterization</dd>
  <dt><code>dpbb</code></dt>
  <dd>Enable DPBB.</dd>
  <dt><code>dfsm</code></dt>
  <dd>Enable DFSM.</dd>
</dl>

<p>
Other Gallium drivers have their own environment variables.  These may change
frequently so the source code should be consulted for details.
</p>

</div>
</body>
</html>
