<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.
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>
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=true for
<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>