1848b8605Smrg<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2848b8605Smrg<html lang="en">
3848b8605Smrg<head>
4848b8605Smrg  <meta http-equiv="content-type" content="text/html; charset=utf-8">
5848b8605Smrg  <title>Environment Variables</title>
6848b8605Smrg  <link rel="stylesheet" type="text/css" href="mesa.css">
7848b8605Smrg</head>
8848b8605Smrg<body>
9848b8605Smrg
10848b8605Smrg<div class="header">
11848b8605Smrg  <h1>The Mesa 3D Graphics Library</h1>
12848b8605Smrg</div>
13848b8605Smrg
14848b8605Smrg<iframe src="contents.html"></iframe>
15848b8605Smrg<div class="content">
16848b8605Smrg
17848b8605Smrg<h1>Environment Variables</h1>
18848b8605Smrg
19848b8605Smrg<p>
20848b8605SmrgNormally, no environment variables need to be set.  Most of the environment
21848b8605Smrgvariables used by Mesa/Gallium are for debugging purposes, but they can
22848b8605Smrgsometimes be useful for debugging end-user issues.
23848b8605Smrg</p>
24848b8605Smrg
25848b8605Smrg
26848b8605Smrg<h2>LibGL environment variables</h2>
27848b8605Smrg
28848b8605Smrg<ul>
29848b8605Smrg<li>LIBGL_DEBUG - If defined debug information will be printed to stderr.
30848b8605Smrg   If set to 'verbose' additional information will be printed.
31848b8605Smrg<li>LIBGL_DRIVERS_PATH - colon-separated list of paths to search for DRI drivers
32b8e80941Smrg<li>LIBGL_ALWAYS_INDIRECT - if set to `true`, forces an indirect rendering context/connection.
33b8e80941Smrg<li>LIBGL_ALWAYS_SOFTWARE - if set to `true`, always use software rendering
34b8e80941Smrg<li>LIBGL_NO_DRAWARRAYS - if set to `true`, do not use DrawArrays GLX protocol (for debugging)
35848b8605Smrg<li>LIBGL_SHOW_FPS - print framerate to stdout based on the number of glXSwapBuffers
36848b8605Smrg    calls per second.
37b8e80941Smrg<li>LIBGL_DRI3_DISABLE - disable DRI3 if set to `true`.
38848b8605Smrg</ul>
39848b8605Smrg
40848b8605Smrg
41848b8605Smrg
42848b8605Smrg<h2>Core Mesa environment variables</h2>
43848b8605Smrg
44848b8605Smrg<ul>
45848b8605Smrg<li>MESA_NO_ASM - if set, disables all assembly language optimizations
46848b8605Smrg<li>MESA_NO_MMX - if set, disables Intel MMX optimizations
47848b8605Smrg<li>MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations
48848b8605Smrg<li>MESA_NO_SSE - if set, disables Intel SSE optimizations
49b8e80941Smrg<li>MESA_NO_ERROR - if set to 1, error checking is disabled as per KHR_no_error.
50b8e80941Smrg   This will result in undefined behaviour for invalid use of the api, but
51b8e80941Smrg   can reduce CPU use for apps that are known to be error free.</li>
52848b8605Smrg<li>MESA_DEBUG - if set, error messages are printed to stderr.  For example,
53848b8605Smrg   if the application generates a GL_INVALID_ENUM error, a corresponding error
54848b8605Smrg   message indicating where the error occurred, and possibly why, will be
55848b8605Smrg   printed to stderr.<br>
56b8e80941Smrg
57b8e80941Smrg   For release builds, MESA_DEBUG defaults to off (no debug output).
58b8e80941Smrg
59b8e80941Smrg   MESA_DEBUG accepts the following comma-separated list of named
60b8e80941Smrg   flags, which adds extra behaviour to just set MESA_DEBUG=1:
61b8e80941Smrg   <ul>
62b8e80941Smrg     <li>silent - turn off debug messages. Only useful for debug builds.</li>
63b8e80941Smrg     <li>flush - flush after each drawing command</li>
64b8e80941Smrg     <li>incomplete_tex - extra debug messages when a texture is incomplete</li>
65b8e80941Smrg     <li>incomplete_fbo - extra debug messages when a fbo is incomplete</li>
66b8e80941Smrg     <li>context - create a debug context (see GLX_CONTEXT_DEBUG_BIT_ARB) and
67b8e80941Smrg         print error and performance messages to stderr (or MESA_LOG_FILE).</li>
68b8e80941Smrg   </ul>
69848b8605Smrg<li>MESA_LOG_FILE - specifies a file name for logging all errors, warnings,
70848b8605Smrgetc., rather than stderr
71848b8605Smrg<li>MESA_TEX_PROG - if set, implement conventional texture env modes with
72848b8605Smrgfragment programs (intended for developers only)
73848b8605Smrg<li>MESA_TNL_PROG - if set, implement conventional vertex transformation
74848b8605Smrgoperations with vertex programs (intended for developers only).
75848b8605SmrgSetting this variable automatically sets the MESA_TEX_PROG variable as well.
76848b8605Smrg<li>MESA_EXTENSION_OVERRIDE - can be used to enable/disable extensions.
77848b8605SmrgA value such as "GL_EXT_foo -GL_EXT_bar" will enable the GL_EXT_foo extension
78848b8605Smrgand disable the GL_EXT_bar extension.
79848b8605Smrg<li>MESA_EXTENSION_MAX_YEAR - The GL_EXTENSIONS string returned by Mesa is sorted
80848b8605Smrgby extension year.
81848b8605SmrgIf this variable is set to year X, only extensions defined on or before year
82848b8605SmrgX will be reported.
83848b8605SmrgThis is to work-around a bug in some games where the extension string is
84848b8605Smrgcopied into a fixed-size buffer without truncating.
85848b8605SmrgIf the extension string is too long, the buffer overrun can cause the game
86848b8605Smrgto crash.
87848b8605SmrgThis is a work-around for that.
88848b8605Smrg<li>MESA_GL_VERSION_OVERRIDE - changes the value returned by
89848b8605SmrgglGetString(GL_VERSION) and possibly the GL API type.
90848b8605Smrg<ul>
91b8e80941Smrg  <li>The format should be MAJOR.MINOR[FC|COMPAT]
92b8e80941Smrg  <li>FC is an optional suffix that indicates a forward compatible
93b8e80941Smrg      context. This is only valid for versions &gt;= 3.0.
94b8e80941Smrg  <li>COMPAT is an optional suffix that indicates a compatibility
95b8e80941Smrg      context or GL_ARB_compatibility support. This is only valid for
96b8e80941Smrg      versions &gt;= 3.1.
97b8e80941Smrg  <li>GL versions &lt;= 3.0 are set to a compatibility (non-Core)
98b8e80941Smrg      profile
99b8e80941Smrg  <li>GL versions = 3.1, depending on the driver, it may or may not
100b8e80941Smrg      have the ARB_compatibility extension enabled.
101b8e80941Smrg  <li>GL versions &gt;= 3.2 are set to a Core profile
102b8e80941Smrg  <li>Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC, 3.1COMPAT, X.Y, X.YFC,
103b8e80941Smrg      X.YCOMPAT.
104b8e80941Smrg  <ul>
105b8e80941Smrg    <li>2.1 - select a compatibility (non-Core) profile with GL
106b8e80941Smrg        version 2.1.
107b8e80941Smrg    <li>3.0 - select a compatibility (non-Core) profile with GL
108b8e80941Smrg        version 3.0.
109b8e80941Smrg    <li>3.0FC - select a Core+Forward Compatible profile with GL
110b8e80941Smrg        version 3.0.
111b8e80941Smrg    <li>3.1 - select GL version 3.1 with GL_ARB_compatibility enabled
112b8e80941Smrg        per the driver default.
113b8e80941Smrg    <li>3.1FC - select GL version 3.1 with forward compatibility and
114b8e80941Smrg        GL_ARB_compatibility disabled.
115b8e80941Smrg    <li>3.1COMPAT - select GL version 3.1 with GL_ARB_compatibility
116b8e80941Smrg        enabled.
117b8e80941Smrg    <li>X.Y - override GL version to X.Y without changing the profile.
118b8e80941Smrg    <li>X.YFC - select a Core+Forward Compatible profile with GL
119b8e80941Smrg        version X.Y.
120b8e80941Smrg    <li>X.YCOMPAT - select a Compatibility profile with GL version
121b8e80941Smrg        X.Y.
122b8e80941Smrg  </ul>
123b8e80941Smrg  <li>Mesa may not really implement all the features of the given
124b8e80941Smrg      version. (for developers only)
125848b8605Smrg</ul>
126b8e80941Smrg<li>MESA_GLES_VERSION_OVERRIDE - changes the value returned by
127b8e80941SmrgglGetString(GL_VERSION) for OpenGL ES.
128b8e80941Smrg<ul>
129b8e80941Smrg<li> The format should be MAJOR.MINOR
130b8e80941Smrg<li> Examples: 2.0, 3.0, 3.1
131848b8605Smrg<li> Mesa may not really implement all the features of the given version.
132848b8605Smrg(for developers only)
133848b8605Smrg</ul>
134848b8605Smrg<li>MESA_GLSL_VERSION_OVERRIDE - changes the value returned by
135848b8605SmrgglGetString(GL_SHADING_LANGUAGE_VERSION). Valid values are integers, such as
136848b8605Smrg"130".  Mesa will not really implement all the features of the given language version
137848b8605Smrgif it's higher than what's normally reported. (for developers only)
138b8e80941Smrg<li>MESA_GLSL_CACHE_DISABLE - if set to `true`, disables the GLSL shader cache
139b8e80941Smrg<li>MESA_GLSL_CACHE_MAX_SIZE - if set, determines the maximum size of
140b8e80941Smrgthe on-disk cache of compiled GLSL programs. Should be set to a number
141b8e80941Smrgoptionally followed by 'K', 'M', or 'G' to specify a size in
142b8e80941Smrgkilobytes, megabytes, or gigabytes. By default, gigabytes will be
143b8e80941Smrgassumed. And if unset, a maximum size of 1GB will be used. Note: A separate
144b8e80941Smrgcache might be created for each architecture that Mesa is installed for on
145b8e80941Smrgyour system. For example under the default settings you may end up with a 1GB
146b8e80941Smrgcache for x86_64 and another 1GB cache for i386.
147b8e80941Smrg<li>MESA_GLSL_CACHE_DIR - if set, determines the directory to be used
148b8e80941Smrgfor the on-disk cache of compiled GLSL programs. If this variable is
149b8e80941Smrgnot set, then the cache will be stored in $XDG_CACHE_HOME/mesa_shader_cache (if
150b8e80941Smrgthat variable is set), or else within .cache/mesa_shader_cache within the user's
151b8e80941Smrghome directory.
152848b8605Smrg<li>MESA_GLSL - <a href="shading.html#envvars">shading language compiler options</a>
153b8e80941Smrg<li>MESA_NO_MINMAX_CACHE - when set, the minmax index cache is globally disabled.
154b8e80941Smrg<li>MESA_SHADER_CAPTURE_PATH - see <a href="shading.html#capture">Capturing Shaders</a></li>
155b8e80941Smrg<li>MESA_SHADER_DUMP_PATH and MESA_SHADER_READ_PATH - see <a href="shading.html#replacement">Experimenting with Shader Replacements</a></li>
156b8e80941Smrg<li>MESA_VK_VERSION_OVERRIDE - changes the Vulkan physical device version
157b8e80941Smrg    as returned in VkPhysicalDeviceProperties::apiVersion.
158b8e80941Smrg  <ul>
159b8e80941Smrg    <li>The format should be MAJOR.MINOR[.PATCH]</li>
160b8e80941Smrg    <li>This will not let you force a version higher than the driver's
161b8e80941Smrg        instance versionas advertised by vkEnumerateInstanceVersion</li>
162b8e80941Smrg    <li>This can be very useful for debugging but some features may not be
163b8e80941Smrg        implemented correctly. (For developers only)</li>
164b8e80941Smrg  </ul>
165b8e80941Smrg</li>
166848b8605Smrg</ul>
167848b8605Smrg
168848b8605Smrg
169848b8605Smrg<h2>Mesa Xlib driver environment variables</h2>
170848b8605Smrg
171848b8605Smrg<p>
172848b8605SmrgThe following are only applicable to the Mesa Xlib software driver.
173848b8605SmrgSee the <a href="xlibdriver.html">Xlib software driver page</a> for details.
174848b8605Smrg</p>
175848b8605Smrg<ul>
176848b8605Smrg<li>MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode
177848b8605Smrg<li>MESA_CI_VISUAL - specifies the X visual and depth for CI mode
178848b8605Smrg<li>MESA_BACK_BUFFER - specifies how to implement the back color buffer,
179848b8605Smrg    either "pixmap" or "ximage"
180848b8605Smrg<li>MESA_GAMMA - gamma correction coefficients for red, green, blue channels
181848b8605Smrg<li>MESA_XSYNC - enable synchronous X behavior (for debugging only)
182848b8605Smrg<li>MESA_GLX_FORCE_CI - if set, force GLX to treat 8bpp visuals as CI visuals
183848b8605Smrg<li>MESA_GLX_FORCE_ALPHA - if set, forces RGB windows to have an alpha channel.
184848b8605Smrg<li>MESA_GLX_DEPTH_BITS - specifies default number of bits for depth buffer.
185848b8605Smrg<li>MESA_GLX_ALPHA_BITS - specifies default number of bits for alpha channel.
186848b8605Smrg</ul>
187848b8605Smrg
188848b8605Smrg
189848b8605Smrg<h2>i945/i965 driver environment variables (non-Gallium)</h2>
190848b8605Smrg
191848b8605Smrg<ul>
192848b8605Smrg<li>INTEL_NO_HW - if set to 1, prevents batches from being submitted to the hardware.
193848b8605Smrg   This is useful for debugging hangs, etc.</li>
194848b8605Smrg<li>INTEL_DEBUG - a comma-separated list of named flags, which do various things:
195848b8605Smrg<ul>
196b8e80941Smrg   <li>ann - annotate IR in assembly dumps</li>
197b8e80941Smrg   <li>aub - dump batches into an AUB trace for use with simulation tools</li>
198848b8605Smrg   <li>bat - emit batch information</li>
199b8e80941Smrg   <li>blit - emit messages about blit operations</li>
200b8e80941Smrg   <li>blorp - emit messages about the blorp operations (blits &amp; clears)</li>
201848b8605Smrg   <li>buf - emit messages about buffer objects</li>
202b8e80941Smrg   <li>clip - emit messages about the clip unit (for old gens, includes the CLIP program)</li>
203b8e80941Smrg   <li>color - use color in output</li>
204b8e80941Smrg   <li>cs - dump shader assembly for compute shaders</li>
205b8e80941Smrg   <li>do32 - generate compute shader SIMD32 programs even if workgroup size doesn't exceed the SIMD16 limit</li>
206b8e80941Smrg   <li>dri - emit messages about the DRI interface</li>
207848b8605Smrg   <li>fbo - emit messages about framebuffers</li>
208848b8605Smrg   <li>fs - dump shader assembly for fragment shaders</li>
209848b8605Smrg   <li>gs - dump shader assembly for geometry shaders</li>
210b8e80941Smrg   <li>hex - print instruction hex dump with the disassembly</li>
211b8e80941Smrg   <li>l3 - emit messages about the new L3 state during transitions</li>
212b8e80941Smrg   <li>miptree - emit messages about miptrees</li>
213b8e80941Smrg   <li>no8 - don't generate SIMD8 fragment shader</li>
214b8e80941Smrg   <li>no16 - suppress generation of 16-wide fragment shaders. useful for debugging broken shaders</li>
215b8e80941Smrg   <li>nocompact - disable instruction compaction</li>
216b8e80941Smrg   <li>nodualobj - suppress generation of dual-object geometry shader code</li>
217b8e80941Smrg   <li>norbc - disable single sampled render buffer compression</li>
218b8e80941Smrg   <li>optimizer - dump shader assembly to files at each optimization pass and iteration that make progress</li>
219b8e80941Smrg   <li>perf - emit messages about performance issues</li>
220b8e80941Smrg   <li>perfmon - emit messages about AMD_performance_monitor</li>
221b8e80941Smrg   <li>pix - emit messages about pixel operations</li>
222848b8605Smrg   <li>prim - emit messages about drawing primitives</li>
223b8e80941Smrg   <li>reemit - mark all state dirty on each draw call</li>
224848b8605Smrg   <li>sf - emit messages about the strips &amp; fans unit (for old gens, includes the SF program)</li>
225b8e80941Smrg   <li>shader_time - record how much GPU time is spent in each shader</li>
226b8e80941Smrg   <li>spill_fs - force spilling of all registers in the scalar backend (useful to debug spilling code)</li>
227b8e80941Smrg   <li>spill_vec4 - force spilling of all registers in the vec4 backend (useful to debug spilling code)</li>
228b8e80941Smrg   <li>state - emit messages about state flag tracking</li>
229b8e80941Smrg   <li>submit - emit batchbuffer usage statistics</li>
230b8e80941Smrg   <li>sync - after sending each batch, emit a message and wait for that batch to finish rendering</li>
231b8e80941Smrg   <li>tcs - dump shader assembly for tessellation control shaders</li>
232b8e80941Smrg   <li>tes - dump shader assembly for tessellation evaluation shaders</li>
233b8e80941Smrg   <li>tex - emit messages about textures.</li>
234848b8605Smrg   <li>urb - emit messages about URB setup</li>
235b8e80941Smrg   <li>vert - emit messages about vertex assembly</li>
236848b8605Smrg   <li>vs - dump shader assembly for vertex shaders</li>
237848b8605Smrg</ul>
238b8e80941Smrg<li>INTEL_SCALAR_VS (or TCS, TES, GS) - force scalar/vec4 mode for a shader stage (Gen8-9 only)</li>
239b8e80941Smrg<li>INTEL_PRECISE_TRIG - if set to 1, true or yes, then the driver prefers
240b8e80941Smrg   accuracy over performance in trig functions.</li>
241848b8605Smrg</ul>
242848b8605Smrg
243848b8605Smrg
244848b8605Smrg<h2>Radeon driver environment variables (radeon, r200, and r300g)</h2>
245848b8605Smrg
246848b8605Smrg<ul>
247848b8605Smrg<li>RADEON_NO_TCL - if set, disable hardware-accelerated Transform/Clip/Lighting.
248848b8605Smrg</ul>
249848b8605Smrg
250848b8605Smrg
251848b8605Smrg<h2>EGL environment variables</h2>
252848b8605Smrg
253848b8605Smrg<p>
254848b8605SmrgMesa EGL supports different sets of environment variables.  See the
255848b8605Smrg<a href="egl.html">Mesa EGL</a> page for the details.
256848b8605Smrg</p>
257848b8605Smrg
258848b8605Smrg
259848b8605Smrg<h2>Gallium environment variables</h2>
260848b8605Smrg
261848b8605Smrg<ul>
262848b8605Smrg<li>GALLIUM_HUD - draws various information on the screen, like framerate,
263848b8605Smrg    cpu load, driver statistics, performance counters, etc.
264848b8605Smrg    Set GALLIUM_HUD=help and run e.g. glxgears for more info.
265b8e80941Smrg<li>GALLIUM_HUD_PERIOD - sets the hud update rate in seconds (float). Use zero
266b8e80941Smrg    to update every frame. The default period is 1/2 second.
267b8e80941Smrg<li>GALLIUM_HUD_VISIBLE - control default visibility, defaults to true.
268b8e80941Smrg<li>GALLIUM_HUD_TOGGLE_SIGNAL - toggle visibility via user specified signal.
269b8e80941Smrg    Especially useful to toggle hud at specific points of application and
270b8e80941Smrg    disable for unencumbered viewing the rest of the time. For example, set
271b8e80941Smrg    GALLIUM_HUD_VISIBLE to false and GALLIUM_HUD_TOGGLE_SIGNAL to 10 (SIGUSR1).
272b8e80941Smrg    Use kill -10 &lt;pid&gt; to toggle the hud as desired.
273b8e80941Smrg<li>GALLIUM_HUD_DUMP_DIR - specifies a directory for writing the displayed
274b8e80941Smrg    hud values into files.
275b8e80941Smrg<li>GALLIUM_DRIVER - useful in combination with LIBGL_ALWAYS_SOFTWARE=true for
276b8e80941Smrg    choosing one of the software renderers "softpipe", "llvmpipe" or "swr".
277848b8605Smrg<li>GALLIUM_LOG_FILE - specifies a file for logging all errors, warnings, etc.
278848b8605Smrg    rather than stderr.
279848b8605Smrg<li>GALLIUM_PRINT_OPTIONS - if non-zero, print all the Gallium environment
280848b8605Smrg    variables which are used, and their current values.
281848b8605Smrg<li>GALLIUM_DUMP_CPU - if non-zero, print information about the CPU on start-up
282848b8605Smrg<li>TGSI_PRINT_SANITY - if set, do extra sanity checking on TGSI shaders and
283848b8605Smrg    print any errors to stderr.
284848b8605Smrg<LI>DRAW_FSE - ???
285848b8605Smrg<LI>DRAW_NO_FSE - ???
286848b8605Smrg<li>DRAW_USE_LLVM - if set to zero, the draw module will not use LLVM to execute
287848b8605Smrg    shaders, vertex fetch, etc.
288848b8605Smrg<li>ST_DEBUG - controls debug output from the Mesa/Gallium state tracker.
289848b8605SmrgSetting to "tgsi", for example, will print all the TGSI shaders.
290848b8605SmrgSee src/mesa/state_tracker/st_debug.c for other options.
291848b8605Smrg</ul>
292848b8605Smrg
293b8e80941Smrg<h3>Clover state tracker environment variables</h3>
294b8e80941Smrg
295b8e80941Smrg<ul>
296b8e80941Smrg<li>CLOVER_EXTRA_BUILD_OPTIONS - allows specifying additional compiler and linker
297b8e80941Smrg    options. Specified options are appended after the options set by the OpenCL
298b8e80941Smrg    program in clBuildProgram.
299b8e80941Smrg<li>CLOVER_EXTRA_COMPILE_OPTIONS - allows specifying additional compiler
300b8e80941Smrg    options. Specified options are appended after the options set by the OpenCL
301b8e80941Smrg    program in clCompileProgram.
302b8e80941Smrg<li>CLOVER_EXTRA_LINK_OPTIONS - allows specifying additional linker
303b8e80941Smrg    options. Specified options are appended after the options set by the OpenCL
304b8e80941Smrg    program in clLinkProgram.
305b8e80941Smrg</ul>
306b8e80941Smrg
307b8e80941Smrg
308848b8605Smrg<h3>Softpipe driver environment variables</h3>
309848b8605Smrg<ul>
310848b8605Smrg<li>SOFTPIPE_DUMP_FS - if set, the softpipe driver will print fragment shaders
311848b8605Smrg    to stderr
312848b8605Smrg<li>SOFTPIPE_DUMP_GS - if set, the softpipe driver will print geometry shaders
313848b8605Smrg    to stderr
314848b8605Smrg<li>SOFTPIPE_NO_RAST - if set, rasterization is no-op'd.  For profiling purposes.
315848b8605Smrg<li>SOFTPIPE_USE_LLVM - if set, the softpipe driver will try to use LLVM JIT for
316848b8605Smrg    vertex shading processing.
317848b8605Smrg</ul>
318848b8605Smrg
319848b8605Smrg
320848b8605Smrg<h3>LLVMpipe driver environment variables</h3>
321848b8605Smrg<ul>
322848b8605Smrg<li>LP_NO_RAST - if set LLVMpipe will no-op rasterization
323848b8605Smrg<li>LP_DEBUG - a comma-separated list of debug options is accepted.  See the
324848b8605Smrg    source code for details.
325848b8605Smrg<li>LP_PERF - a comma-separated list of options to selectively no-op various
326848b8605Smrg    parts of the driver.  See the source code for details.
327848b8605Smrg<li>LP_NUM_THREADS - an integer indicating how many threads to use for rendering.
328b8e80941Smrg    Zero turns off threading completely.  The default value is the number of CPU
329848b8605Smrg    cores present.
330848b8605Smrg</ul>
331848b8605Smrg
332848b8605Smrg<h3>VMware SVGA driver environment variables</h3>
333848b8605Smrg<ul>
334848b8605Smrg<li>SVGA_FORCE_SWTNL - force use of software vertex transformation
335848b8605Smrg<li>SVGA_NO_SWTNL - don't allow software vertex transformation fallbacks
336848b8605Smrg(will often result in incorrect rendering).
337848b8605Smrg<li>SVGA_DEBUG - for dumping shaders, constant buffers, etc.  See the code
338848b8605Smrgfor details.
339b8e80941Smrg<li>SVGA_EXTRA_LOGGING - if set, enables extra logging to the vmware.log file,
340b8e80941Smrgsuch as the OpenGL program's name and command line arguments.
341b8e80941Smrg<li>SVGA_NO_LOGGING - if set, disables logging to the vmware.log file.
342b8e80941SmrgThis is useful when using Valgrind because it otherwise crashes when
343b8e80941Smrginitializing the host log feature.
344848b8605Smrg<li>See the driver code for other, lesser-used variables.
345848b8605Smrg</ul>
346848b8605Smrg
347b8e80941Smrg<h3>WGL environment variables</h3>
348b8e80941Smrg<ul>
349b8e80941Smrg<li>WGL_SWAP_INTERVAL - to set a swap interval, equivalent to calling
350b8e80941SmrgwglSwapIntervalEXT() in an application.  If this environment variable
351b8e80941Smrgis set, application calls to wglSwapIntervalEXT() will have no effect.
352b8e80941Smrg</ul>
353b8e80941Smrg
354b8e80941Smrg<h3>VA-API state tracker environment variables</h3>
355b8e80941Smrg<ul>
356b8e80941Smrg<li>VAAPI_MPEG4_ENABLED - enable MPEG4 for VA-API, disabled by default.
357b8e80941Smrg</ul>
358b8e80941Smrg
359b8e80941Smrg
360b8e80941Smrg<h3>VC4 driver environment variables</h3>
361b8e80941Smrg<ul>
362b8e80941Smrg<li>VC4_DEBUG - a comma-separated list of named flags, which do various things:
363b8e80941Smrg<ul>
364b8e80941Smrg   <li>cl - dump command list during creation</li>
365b8e80941Smrg   <li>qpu - dump generated QPU instructions</li>
366b8e80941Smrg   <li>qir - dump QPU IR during program compile</li>
367b8e80941Smrg   <li>nir - dump NIR during program compile</li>
368b8e80941Smrg   <li>tgsi - dump TGSI during program compile</li>
369b8e80941Smrg   <li>shaderdb - dump program compile information for shader-db analysis</li>
370b8e80941Smrg   <li>perf - print during performance-related events</li>
371b8e80941Smrg   <li>norast - skip actual hardware execution of commands</li>
372b8e80941Smrg   <li>always_flush - flush after each draw call</li>
373b8e80941Smrg   <li>always_sync - wait for finish after each flush</li>
374b8e80941Smrg   <li>dump - write a GPU command stream trace file (VC4 simulator only)</li>
375b8e80941Smrg</ul>
376b8e80941Smrg</ul>
377b8e80941Smrg
378848b8605Smrg
379848b8605Smrg<p>
380848b8605SmrgOther Gallium drivers have their own environment variables.  These may change
381848b8605Smrgfrequently so the source code should be consulted for details.
382848b8605Smrg</p>
383848b8605Smrg
384848b8605Smrg</div>
385848b8605Smrg</body>
386848b8605Smrg</html>
387