<li>LIBGL_DEBUG - If defined debug information will be printed to stderr.
If set to 'verbose' additional information will be printed.
<li>LIBGL_DRIVERS_PATH - colon-separated list of paths to search for DRI drivers
-<li>LIBGL_ALWAYS_INDIRECT - forces an indirect rendering context/connection.
-<li>LIBGL_ALWAYS_SOFTWARE - if set, always use software rendering
-<li>LIBGL_NO_DRAWARRAYS - if set do not use DrawArrays GLX protocol (for debugging)
+<li>LIBGL_ALWAYS_INDIRECT - if set to `true`, forces an indirect rendering context/connection.
+<li>LIBGL_ALWAYS_SOFTWARE - if set to `true`, always use software rendering
+<li>LIBGL_NO_DRAWARRAYS - if set to `true`, do not use DrawArrays GLX protocol (for debugging)
<li>LIBGL_SHOW_FPS - print framerate to stdout based on the number of glXSwapBuffers
calls per second.
-<li>LIBGL_DRI3_DISABLE - disable DRI3 if set (the value does not matter)
+<li>LIBGL_DRI3_DISABLE - disable DRI3 if set to `true`.
</ul>
<li>MESA_NO_MMX - if set, disables Intel MMX optimizations
<li>MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations
<li>MESA_NO_SSE - if set, disables Intel SSE optimizations
-<li>MESA_NO_ERROR - if set error checking is disabled as per KHR_no_error.
+<li>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.</li>
<li>MESA_DEBUG - if set, error messages are printed to stderr. For example,
<li>MESA_GL_VERSION_OVERRIDE - changes the value returned by
glGetString(GL_VERSION) and possibly the GL API type.
<ul>
-<li> The format should be MAJOR.MINOR[FC]
-<li> FC is an optional suffix that indicates a forward compatible context.
-This is only valid for versions >= 3.0.
-<li> GL versions < 3.0 are set to a compatibility (non-Core) profile
-<li> GL versions = 3.0, see below
-<li> GL versions > 3.0 are set to a Core profile
-<li> Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC
-<ul>
-<li> 2.1 - select a compatibility (non-Core) profile with GL version 2.1
-<li> 3.0 - select a compatibility (non-Core) profile with GL version 3.0
-<li> 3.0FC - select a Core+Forward Compatible profile with GL version 3.0
-<li> 3.1 - select a Core profile with GL version 3.1
-<li> 3.1FC - select a Core+Forward Compatible profile with GL version 3.1
-</ul>
-<li> Mesa may not really implement all the features of the given version.
-(for developers only)
+ <li>The format should be MAJOR.MINOR[FC|COMPAT]
+ <li>FC is an optional suffix that indicates a forward compatible
+ context. This is only valid for versions >= 3.0.
+ <li>COMPAT is an optional suffix that indicates a compatibility
+ context or GL_ARB_compatibility support. This is only valid for
+ versions >= 3.1.
+ <li>GL versions <= 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 ARB_compatibility extension enabled.
+ <li>GL versions >= 3.2 are set to a Core profile
+ <li>Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC, 3.1COMPAT, X.Y, X.YFC,
+ X.YCOMPAT.
+ <ul>
+ <li>2.1 - select a compatibility (non-Core) profile with GL
+ version 2.1.
+ <li>3.0 - select a compatibility (non-Core) profile with GL
+ version 3.0.
+ <li>3.0FC - select a Core+Forward Compatible profile with GL
+ version 3.0.
+ <li>3.1 - select GL version 3.1 with GL_ARB_compatibility enabled
+ per the driver default.
+ <li>3.1FC - select GL version 3.1 with forward compatibility and
+ GL_ARB_compatibility disabled.
+ <li>3.1COMPAT - select GL version 3.1 with GL_ARB_compatibility
+ enabled.
+ <li>X.Y - override GL version to X.Y without changing the profile.
+ <li>X.YFC - select a Core+Forward Compatible profile with GL
+ version X.Y.
+ <li>X.YCOMPAT - select a Compatibility profile with GL version
+ X.Y.
+ </ul>
+ <li>Mesa may not really implement all the features of the given
+ version. (for developers only)
</ul>
<li>MESA_GLES_VERSION_OVERRIDE - changes the value returned by
glGetString(GL_VERSION) for OpenGL ES.
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)
-<li>MESA_GLSL_CACHE_DISABLE - if set, disables the GLSL shader cache
+<li>MESA_GLSL_CACHE_DISABLE - if set to `true`, disables the GLSL shader cache
<li>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
cache for x86_64 and another 1GB cache for i386.
<li>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 (if
-that variable is set), or else within .cache/mesa within the user's
+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.
<li>MESA_GLSL - <a href="shading.html#envvars">shading language compiler options</a>
<li>MESA_NO_MINMAX_CACHE - when set, the minmax index cache is globally disabled.
+<li>MESA_SHADER_CAPTURE_PATH - see <a href="shading.html#capture">Capturing Shaders</a></li>
+<li>MESA_SHADER_DUMP_PATH and MESA_SHADER_READ_PATH - see <a href="shading.html#replacement">Experimenting with Shader Replacements</a></li>
+<li>MESA_VK_VERSION_OVERRIDE - changes the Vulkan physical device version
+ as returned in VkPhysicalDeviceProperties::apiVersion.
+ <ul>
+ <li>The format should be MAJOR.MINOR[.PATCH]</li>
+ <li>This will not let you force a version higher than the driver's
+ instance versionas advertised by vkEnumerateInstanceVersion</li>
+ <li>This can be very useful for debugging but some features may not be
+ implemented correctly. (For developers only)</li>
+ </ul>
+</li>
</ul>
<li>perfmon - emit messages about AMD_performance_monitor</li>
<li>pix - emit messages about pixel operations</li>
<li>prim - emit messages about drawing primitives</li>
+ <li>reemit - mark all state dirty on each draw call</li>
<li>sf - emit messages about the strips & fans unit (for old gens, includes the SF program)</li>
<li>shader_time - record how much GPU time is spent in each shader</li>
<li>spill_fs - force spilling of all registers in the scalar backend (useful to debug spilling code)</li>
<li>spill_vec4 - force spilling of all registers in the vec4 backend (useful to debug spilling code)</li>
<li>state - emit messages about state flag tracking</li>
+ <li>submit - emit batchbuffer usage statistics</li>
<li>sync - after sending each batch, emit a message and wait for that batch to finish rendering</li>
<li>tcs - dump shader assembly for tessellation control shaders</li>
<li>tes - dump shader assembly for tessellation evaluation shaders</li>
<li>tex - emit messages about textures.</li>
<li>urb - emit messages about URB setup</li>
- <li>vec4 - force vec4 mode in vertex shader</li>
<li>vert - emit messages about vertex assembly</li>
<li>vs - dump shader assembly for vertex shaders</li>
</ul>
+<li>INTEL_SCALAR_VS (or TCS, TES, GS) - force scalar/vec4 mode for a shader stage (Gen8-9 only)</li>
<li>INTEL_PRECISE_TRIG - if set to 1, true or yes, then the driver prefers
accuracy over performance in trig functions.</li>
</ul>
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.
+ Use kill -10 <pid> to toggle the hud as desired.
<li>GALLIUM_HUD_DUMP_DIR - specifies a directory for writing the displayed
hud values into files.
-<li>GALLIUM_DRIVER - useful in combination with LIBGL_ALWAYS_SOFTWARE=1 for
+<li>GALLIUM_DRIVER - useful in combination with LIBGL_ALWAYS_SOFTWARE=true for
choosing one of the software renderers "softpipe", "llvmpipe" or "swr".
<li>GALLIUM_LOG_FILE - specifies a file for logging all errors, warnings, etc.
rather than stderr.
<li>See the driver code for other, lesser-used variables.
</ul>
+<h3>WGL environment variables</h3>
+<ul>
+<li>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.
+</ul>
<h3>VA-API state tracker environment variables</h3>
<ul>