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_DEBUGIf defined debug information will be printed to stderr. If set to
verboseadditional information will be printed.LIBGL_DRIVERS_PATHcolon-separated list of paths to search for DRI drivers
LIBGL_ALWAYS_INDIRECTif set to
true, forces an indirect rendering context/connection.LIBGL_ALWAYS_SOFTWAREif set to
true, always use software renderingLIBGL_NO_DRAWARRAYSif set to
true, do not use DrawArrays GLX protocol (for debugging)LIBGL_SHOW_FPSprint framerate to stdout based on the number of
glXSwapBufferscalls per second.LIBGL_DRI2_DISABLEdisable DRI2 if set to
true.LIBGL_DRI3_DISABLEdisable DRI3 if set to
true.
Core Mesa environment variables¶
MESA_NO_ASMif set, disables all assembly language optimizations
MESA_NO_MMXif set, disables Intel MMX optimizations
MESA_NO_3DNOWif set, disables AMD 3DNow! optimizations
MESA_NO_SSEif set, disables Intel SSE optimizations
MESA_NO_ERRORif set to 1, error checking is disabled as per
KHR_no_error. This will result in undefined behavior for invalid use of the API, but can reduce CPU use for apps that are known to be error free.MESA_DEBUGif set, error messages are printed to stderr. For example, if the application generates a
GL_INVALID_ENUMerror, a corresponding error message indicating where the error occurred, and possibly why, will be printed to stderr. For release builds,MESA_DEBUGdefaults to off (no debug output).MESA_DEBUGaccepts the following comma-separated list of named flags, which adds extra behavior to just setMESA_DEBUGto1:silentturn off debug messages. Only useful for debug builds.
flushflush after each drawing command
incomplete_texextra debug messages when a texture is incomplete
incomplete_fboextra debug messages when a FBO is incomplete
contextcreate a debug context (see
GLX_CONTEXT_DEBUG_BIT_ARB) and print error and performance messages to stderr (orMESA_LOG_FILE).
MESA_LOG_FILEspecifies a file name for logging all errors, warnings, etc., rather than stderr
MESA_EXTENSION_OVERRIDEcan be used to enable/disable extensions. A value such as
GL_EXT_foo -GL_EXT_barwill enable theGL_EXT_fooextension and disable theGL_EXT_barextension. Note that this will override extensions override configured using driconf.MESA_EXTENSION_MAX_YEARThe
GL_EXTENSIONSstring 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_OVERRIDEchanges the value returned by
glGetString(GL_VERSION)and possibly the GL API type.The format should be
MAJOR.MINOR[FC|COMPAT]FCis an optional suffix that indicates a forward compatible context. This is only valid for versions >= 3.0.COMPATis an optional suffix that indicates a compatibility context orGL_ARB_compatibilitysupport. 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_compatibilityextension enabled.GL versions >= 3.2 are set to a Core profile
Examples:
2.1select a compatibility (non-Core) profile with GL version 2.1.
3.0select a compatibility (non-Core) profile with GL version 3.0.
3.0FCselect a Core+Forward Compatible profile with GL version 3.0.
3.1select GL version 3.1 with
GL_ARB_compatibilityenabled per the driver default.3.1FCselect GL version 3.1 with forward compatibility and
GL_ARB_compatibilitydisabled.3.1COMPATselect GL version 3.1 with
GL_ARB_compatibilityenabled.X.Yoverride GL version to X.Y without changing the profile.
X.YFCselect a Core+Forward Compatible profile with GL version X.Y.
X.YCOMPATselect 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_OVERRIDEchanges the value returned by
glGetString(GL_VERSION)for OpenGL ES.The format should be
MAJOR.MINORExamples:
2.0,3.0,3.1Mesa may not really implement all the features of the given version. (for developers only)
MESA_GLSL_VERSION_OVERRIDEchanges the value returned by
glGetString(GL_SHADING_LANGUAGE_VERSION). Valid values are integers, such as130. 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_DISABLEif set to
true, disables the GLSL shader cache. If set tofalse, enables the GLSL shader cache when it is disabled by default.MESA_GLSL_CACHE_MAX_SIZEif 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, orGto 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_DIRif 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_cachewithin the user’s home directory.MESA_GLSLMESA_NO_MINMAX_CACHEwhen set, the minmax index cache is globally disabled.
MESA_SHADER_CAPTURE_PATHMESA_SHADER_DUMP_PATHandMESA_SHADER_READ_PATHMESA_VK_VERSION_OVERRIDEchanges 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
vkEnumerateInstanceVersionThis can be very useful for debugging but some features may not be implemented correctly. (For developers only)
MESA_VK_WSI_PRESENT_MODEoverrides the WSI present mode clients specify in
VkSwapchainCreateInfoKHR::presentMode. Values can befifo,relaxed,mailboxorimmediate.MESA_VK_ABORT_ON_DEVICE_LOSScauses the Vulkan driver to call abort() immediately after detecting a lost device. This is extremely useful when testing as it prevents the test suite from continuing on with a lost device.
MESA_VK_ENABLE_SUBMIT_THREADfor Vulkan drivers which support real timeline semaphores, this forces them to use a submit thread from the beginning, regardless of whether or not they ever see a wait-before-signal condition.
MESA_LOADER_DRIVER_OVERRIDEchooses a different driver binary such as
etnavivorzink.
NIR passes environment variables¶
The following are only applicable for drivers that uses NIR, as they
modify the behavior for the common NIR_PASS and NIR_PASS_V macros,
that wrap calls to NIR lowering/optimizations.
NIR_DEBUGa comma-separated list of debug options to apply to NIR shaders. Use NIR_DEBUG=help to print a list of available options.
NIR_SKIPa comma-separated list of optimization/lowering passes to skip.
Mesa Xlib driver environment variables¶
The following are only applicable to the Mesa Xlib software driver. See the Xlib software driver page for details.
MESA_RGB_VISUALspecifies the X visual and depth for RGB mode
MESA_BACK_BUFFERspecifies how to implement the back color buffer, either
pixmaporximageMESA_XSYNCenable synchronous X behavior (for debugging only)
MESA_GLX_FORCE_ALPHAif set, forces RGB windows to have an alpha channel.
MESA_GLX_DEPTH_BITSspecifies default number of bits for depth buffer.
MESA_GLX_ALPHA_BITSspecifies default number of bits for alpha channel.
Intel driver environment variables¶
INTEL_BLACKHOLE_DEFAULTif set to 1, true or yes, then the OpenGL implementation will default
GL_BLACKHOLE_RENDER_INTELto true, thus disabling any rendering.INTEL_DEBUGa comma-separated list of named flags, which do various things:
annannotate IR in assembly dumps
aubdump batches into an AUB trace for use with simulation tools
batemit batch information
blitemit messages about blit operations
blorpemit messages about the blorp operations (blits & clears)
bufemit messages about buffer objects
clipemit messages about the clip unit (for old gens, includes the CLIP program)
coloruse color in output
csdump shader assembly for compute shaders
do32generate compute shader SIMD32 programs even if workgroup size doesn’t exceed the SIMD16 limit
fsdump shader assembly for fragment shaders
gsdump shader assembly for geometry shaders
hexprint instruction hex dump with the disassembly
l3emit messages about the new L3 state during transitions
no8don’t generate SIMD8 fragment shader
no16suppress generation of 16-wide fragment shaders. useful for debugging broken shaders
nocompactdisable instruction compaction
nodualobjsuppress generation of dual-object geometry shader code
nofcdisable fast clears
norbcdisable single sampled render buffer compression
optimizerdump shader assembly to files at each optimization pass and iteration that make progress
perfemit messages about performance issues
perfmonemit messages about
AMD_performance_monitorreemitmark all state dirty on each draw call
sfemit messages about the strips & fans unit (for old gens, includes the SF program)
shader_timerecord how much GPU time is spent in each shader
spill_fsforce spilling of all registers in the scalar backend (useful to debug spilling code)
spill_vec4force spilling of all registers in the vec4 backend (useful to debug spilling code)
submitemit batchbuffer usage statistics
syncafter sending each batch, emit a message and wait for that batch to finish rendering
tcsdump shader assembly for tessellation control shaders
tesdump shader assembly for tessellation evaluation shaders
texemit messages about textures.
urbemit messages about URB setup
vsdump shader assembly for vertex shaders
INTEL_MEASURECollects GPU timestamps over common intervals, and generates a CSV report to show how long rendering took. The overhead of collection is limited to the flushing that is required at the interval boundaries for accurate timestamps. By default, timing data is sent to
stderr. To direct output to a file:INTEL_MEASURE=file=/tmp/measure.csv {workload}To begin capturing timestamps at a particular frame:
INTEL_MEASURE=file=/tmp/measure.csv,start=15 {workload}To capture only 23 frames:
INTEL_MEASURE=count=23 {workload}To capture frames 15-37, stopping before frame 38:
INTEL_MEASURE=start=15,count=23 {workload}Designate an asynchronous control file with:
INTEL_MEASURE=control=path/to/control.fifo {workload}As the workload runs, enable capture for 5 frames with:
$ echo 5 > path/to/control.fifoEnable unbounded capture:
$ echo -1 > path/to/control.fifoand disable with:
$ echo 0 > path/to/control.fifoSelect the boundaries of each snapshot with:
INTEL_MEASURE=drawCollects timings for every render (DEFAULT)
INTEL_MEASURE=rtCollects timings when the render target changes
INTEL_MEASURE=batchCollects timings when batches are submitted
INTEL_MEASURE=frameCollects timings at frame boundaries
With
INTEL_MEASURE=interval=5, the duration of 5 events will be combined into a single record in the output. When possible, a single start and end event will be submitted to the GPU to minimize stalling. Combined events will not span batches, except in the case ofINTEL_MEASURE=frame.INTEL_NO_HWif set to 1, true or yes, prevents batches from being submitted to the hardware. This is useful for debugging hangs, etc.
INTEL_PRECISE_TRIGif set to 1, true or yes, then the driver prefers accuracy over performance in trig functions.
INTEL_SHADER_ASM_READ_PATHif set, determines the directory to be used for overriding shader assembly. The binaries with custom assembly should be placed in this folder and have a name formatted as
sha1_of_assembly.bin. The sha1 of a shader assembly is printed when assembly is dumped via correspondingINTEL_DEBUGflag (e.g.vsfor vertex shader). A binary could be generated from a dumped assembly byi965_asm. ForINTEL_SHADER_ASM_READ_PATHto work it is necessary to enable dumping of corresponding shader stages viaINTEL_DEBUG. It is advised to usenocompactflag ofINTEL_DEBUGwhen dumping and overriding shader assemblies. The success of assembly override would be signified by “Successfully overrode shader with sha1 <sha1>” in stderr replacing the original assembly.
DRI environment variables¶
DRI_NO_MSAAdisable MSAA for GLX/EGL MSAA visuals
EGL environment variables¶
Mesa EGL supports different sets of environment variables. See the Mesa EGL page for the details.
Gallium environment variables¶
GALLIUM_HUDdraws various information on the screen, like framerate, CPU load, driver statistics, performance counters, etc. Set
GALLIUM_HUDtohelpand run e.g.glxgearsfor more info.GALLIUM_HUD_PERIODsets the HUD update rate in seconds (float). Use zero to update every frame. The default period is 1/2 second.
GALLIUM_HUD_VISIBLEcontrol default visibility, defaults to true.
GALLIUM_HUD_TOGGLE_SIGNALtoggle 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_VISIBLEtofalseandGALLIUM_HUD_TOGGLE_SIGNALto10(SIGUSR1). Usekill -10 <pid>to toggle the HUD as desired.GALLIUM_HUD_SCALEScale HUD by an integer factor, for high DPI displays. Default is 1.
GALLIUM_HUD_DUMP_DIRspecifies a directory for writing the displayed HUD values into files.
GALLIUM_DRIVERuseful in combination with
LIBGL_ALWAYS_SOFTWARE`=`truefor choosing one of the software rendererssoftpipeorllvmpipe.GALLIUM_LOG_FILEspecifies a file for logging all errors, warnings, etc. rather than stderr.
GALLIUM_PIPE_SEARCH_DIRspecifies an alternate search directory for pipe-loader which overrides the compile-time path based on the install location.
GALLIUM_PRINT_OPTIONSif non-zero, print all the Gallium environment variables which are used, and their current values.
GALLIUM_DUMP_CPUif non-zero, print information about the CPU on start-up
TGSI_PRINT_SANITYif set, do extra sanity checking on TGSI shaders and print any errors to stderr.
DRAW_FSEEnable fetch-shade-emit middle-end even though its not correct (e.g. for softpipe)
DRAW_NO_FSEDisable fetch-shade-emit middle-end even when it is correct
DRAW_USE_LLVMif set to zero, the draw module will not use LLVM to execute shaders, vertex fetch, etc.
ST_DEBUGcontrols debug output from the Mesa/Gallium state tracker. Setting to
tgsi, for example, will print all the TGSI shaders. Seesrc/mesa/state_tracker/st_debug.cfor other options.
Clover environment variables¶
CLOVER_EXTRA_BUILD_OPTIONSallows specifying additional compiler and linker options. Specified options are appended after the options set by the OpenCL program in
clBuildProgram.CLOVER_EXTRA_COMPILE_OPTIONSallows specifying additional compiler options. Specified options are appended after the options set by the OpenCL program in
clCompileProgram.CLOVER_EXTRA_LINK_OPTIONSallows specifying additional linker options. Specified options are appended after the options set by the OpenCL program in
clLinkProgram.
Softpipe driver environment variables¶
SOFTPIPE_DEBUGa comma-separated list of named flags, which do various things:
vsDump vertex shader assembly to stderr
fsDump fragment shader assembly to stderr
gsDump geometry shader assembly to stderr
csDump compute shader assembly to stderr
no_rastrasterization is disabled. For profiling purposes.
use_llvmthe softpipe driver will try to use LLVM JIT for vertex shading processing.
use_tgsiif set, the softpipe driver will ask to directly consume TGSI, instead of NIR.
LLVMpipe driver environment variables¶
LP_NO_RASTif set LLVMpipe will no-op rasterization
LP_DEBUGa comma-separated list of debug options is accepted. See the source code for details.
LP_PERFa comma-separated list of options to selectively no-op various parts of the driver. See the source code for details.
LP_NUM_THREADSan 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¶
- :envvar`SVGA_FORCE_SWTNL`
force use of software vertex transformation
- :envvar`SVGA_NO_SWTNL`
don’t allow software vertex transformation fallbacks (will often result in incorrect rendering).
- :envvar`SVGA_DEBUG`
for dumping shaders, constant buffers, etc. See the code for details.
- :envvar`SVGA_EXTRA_LOGGING`
if set, enables extra logging to the
vmware.logfile, such as the OpenGL program’s name and command line arguments.- :envvar`SVGA_NO_LOGGING`
if set, disables logging to the
vmware.logfile. 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_INTERVALto set a swap interval, equivalent to calling
wglSwapIntervalEXT()in an application. If this environment variable is set, application calls towglSwapIntervalEXT()will have no effect.
VA-API environment variables¶
VAAPI_MPEG4_ENABLEDenable MPEG4 for VA-API, disabled by default.
VC4 driver environment variables¶
VC4_DEBUGa comma-separated list of named flags, which do various things:
cldump command list during creation
qpudump generated QPU instructions
qirdump QPU IR during program compile
nirdump NIR during program compile
tgsidump TGSI during program compile
shaderdbdump program compile information for shader-db analysis
perfprint during performance-related events
norastskip actual hardware execution of commands
always_flushflush after each draw call
always_syncwait for finish after each flush
dumpwrite a GPU command stream trace file (VC4 simulator only)
RADV driver environment variables¶
RADV_DEBUGa comma-separated list of named flags, which do various things:
llvmenable LLVM compiler backend
allbosforce all allocated buffers to be referenced in submissions
checkirvalidate the LLVM IR before LLVM compiles the shader
forcecompressEnables DCC,FMASK,CMASK,HTILE in situations where the driver supports it but normally does not deem it beneficial.
hangenable GPU hangs detection and dump a report to $HOME/radv_dumps_<pid>_<time> if a GPU hang is detected
imgPrint image info
infoshow GPU-related information
invariantgeomMark geometry-affecting outputs as invariant. This works around a common class of application bugs appearing as flickering.
metashadersdump internal meta shaders
noatocditheringdisable dithering for alpha to coverage
nobinningdisable primitive binning
nocachedisable shaders cache
nocomputedisable compute queue
nodccdisable Delta Color Compression (DCC) on images
nodisplaydccdisable Delta Color Compression (DCC) on displayable images
nodynamicboundsdo not check OOB access for dynamic descriptors
nofastclearsdisable fast color/depthstencil clears
nohizdisable HIZ for depthstencil images
noibsdisable directly recording command buffers in GPU-visible memory
nomemorycachedisable memory shaders cache
nonggdisable NGG for GFX10+
nonggcdisable NGG culling on GPUs where it’s enabled by default (GFX10.3+ only).
nooutoforderdisable out-of-order rasterization
notccompatcmaskdisable TC-compat CMASK for MSAA surfaces
noumrdisable UMR dumps during GPU hang detection (only with
RADV_DEBUG`=``hang`)novrsflatshadingdisable VRS for flat shading (only on GFX10.3+)
preoptirdump LLVM IR before any optimizations
prologsdump vertex shader prologs
shadersdump shaders
shaderstatsdump shader statistics
spirvdump SPIR-V
startupdisplay info at startup
syncshaderssynchronize shaders after all draws/dispatches
vmfaultscheck for VM memory faults via dmesg
zerovraminitialize all memory allocated in VRAM as zero
RADV_FORCE_FAMILYcreate a null device to compile shaders without a AMD GPU (e.g. VEGA10)
RADV_FORCE_VRSallow to force per-pipeline vertex VRS rates on GFX10.3+. This is only forced for pipelines that don’t explicitely use VRS or flat shading. The supported values are 2x2, 1x2 and 2x1. Only for testing purposes.
RADV_PERFTESTa comma-separated list of named flags, which do various things:
bolistenable the global BO list
cswave32enable wave32 for compute shaders (GFX10+)
dccmsaaenable DCC for MSAA images
force_emulate_rtforces ray-tracing to be emulated in software, even if there is hardware support.
gewave32enable wave32 for vertex/tess/geometry shaders (GFX10+)
localbosenable local BOs
nosamdisable optimizations that get enabled when all VRAM is CPU visible.
pswave32enable wave32 for pixel shaders (GFX10+)
nggcenable NGG culling on GPUs where it’s not enabled by default (GFX10.1 only).
rtenable rt extensions whose implementation is still experimental.
samenable optimizations to move more driver internal objects to VRAM.
RADV_TEX_ANISOforce anisotropy filter (up to 16)
RADV_THREAD_TRACEenable frame based SQTT/RGP captures (eg. export RADV_THREAD_TRACE=100 will capture the frame #100)
RADV_THREAD_TRACE_BUFFER_SIZEset the SQTT/RGP buffer size in bytes (default value is 32MiB, the buffer is automatically resized if too small)
RADV_THREAD_TRACE_CACHE_COUNTERSenable/disable SQTT/RGP cache counters on GFX10+ (disabled by default)
RADV_THREAD_TRACE_INSTRUCTION_TIMINGenable/disable SQTT/RGP instruction timing (enabled by default)
RADV_THREAD_TRACE_TRIGGERenable trigger file based SQTT/RGP captures (eg. export RADV_THREAD_TRACE_TRIGGER=/tmp/radv_sqtt_trigger and then touch /tmp/radv_sqtt_trigger to capture a frame)
ACO_DEBUGa comma-separated list of named flags, which do various things:
validateirvalidate the ACO IR at various points of compilation (enabled by default for debug/debugoptimized builds)
validateravalidate register assignment of ACO IR and catches many RA bugs
perfwarnabort on some suboptimal code generation
force-waitcntforce emitting waitcnt states if there is something to wait for
novndisable value numbering
nooptdisable various optimizations
noschedulingdisable instructions scheduling
perfinfoprint information used to calculate some pipeline statistics
liveinfoprint liveness and register demand information before scheduling
radeonsi driver environment variables¶
AMD_DEBUGa comma-separated list of named flags, which do various things:
nodccDisable DCC.
nodccclearDisable DCC fast clear.
nodccmsaaDisable DCC for MSAA
nodpbbDisable DPBB.
nodfsmDisable DFSM.
notilingDisable tiling
nofmaskDisable MSAA compression
nohyperzDisable Hyper-Z
no2dDisable 2D tiling
infoPrint driver information
texPrint texture info
computePrint compute info
vmPrint virtual addresses when creating resources
vsPrint vertex shaders
psPrint pixel shaders
gsPrint geometry shaders
tcsPrint tessellation control shaders
tesPrint tessellation evaluation shaders
csPrint compute shaders
noirDon’t print the LLVM IR
nonirDon’t print NIR when printing shaders
noasmDon’t print disassembled shaders
preoptirPrint the LLVM IR before initial optimizations
giselEnable LLVM global instruction selector.
w32geUse Wave32 for vertex, tessellation, and geometry shaders.
w32psUse Wave32 for pixel shaders.
w32csUse Wave32 for computes shaders.
w64geUse Wave64 for vertex, tessellation, and geometry shaders.
w64psUse Wave64 for pixel shaders.
w64csUse Wave64 for computes shaders.
checkirEnable additional sanity checks on shader IR
monoUse old-style monolithic shaders compiled on demand
nooptvariantDisable compiling optimized shader variants.
nowcDisable GTT write combining
check_vmCheck VM faults and dump debug info.
reserve_vmidForce VMID reservation per context.
nogfxDisable graphics. Only multimedia compute paths can be used.
nonggDisable NGG and use the legacy pipeline.
nggcAlways use NGG culling even when it can hurt.
nonggcDisable NGG culling.
switch_on_eopProgram WD/IA to switch on end-of-packet.
nooutoforderDisable out-of-order rasterization
dpbbEnable DPBB.
dfsmEnable DFSM.
r600 driver environment variables¶
R600_DEBUGa comma-separated list of named flags, which do various things:
nocpdmaDisable CP DMA
nosbDisable sb backend for graphics shaders
sbclEnable sb backend for compute shaders
sbdryDon’t use optimized bytecode (just print the dumps)
sbstatPrint optimization statistics for shaders
sbdumpPrint IR dumps after some optimization passes
sbnofallbackAbort on errors instead of fallback
sbdisasmUse sb disassembler for shader dumps
sbsafemathDisable unsafe math optimizations
nirsbEnable NIR with SB optimizer
texPrint texture info
nirEnable experimental NIR shaders
computePrint compute info
vmPrint virtual addresses when creating resources
infoPrint driver information
fsPrint fetch shaders
vsPrint vertex shaders
gsPrint geometry shaders
psPrint pixel shaders
csPrint compute shaders
tcsPrint tessellation control shaders
tesPrint tessellation evaluation shaders
noirDon’t print the LLVM IR
notgsiDon’t print the TGSI
noasmDon’t print disassembled shaders
preoptirPrint the LLVM IR before initial optimizations
checkirEnable additional sanity checks on shader IR
nooptvariantDisable compiling optimized shader variants.
testdmaInvoke SDMA tests and exit.
testvmfaultcpInvoke a CP VM fault test and exit.
testvmfaultsdmaInvoke a SDMA VM fault test and exit.
testvmfaultshaderInvoke a shader VM fault test and exit.
nodmaDisable asynchronous DMA
nohyperzDisable Hyper-Z
noinvalrangeDisable handling of INVALIDATE_RANGE map flags
no2dDisable 2D tiling
notilingDisable tiling
switch_on_eopProgram WD/IA to switch on end-of-packet.
forcedmaUse asynchronous DMA for all operations when possible.
precompileCompile one shader variant at shader creation.
nowcDisable GTT write combining
check_vmCheck VM faults and dump debug info.
unsafemathEnable unsafe math shader optimizations
R600_DEBUG_COMPUTEif set to
true, various compute-related debug information will be printed to stderr. Defaults tofalse.R600_DUMP_SHADERSif set to
true, NIR shaders will be printed to stderr. Defaults tofalse.R600_HYPERZIf set to
false, disables HyperZ optimizations. Defaults totrue.R600_NIR_DEBUGa comma-separated list of named flags, which do various things:
instrLog all consumed nir instructions
irLog created R600 IR
ccLog R600 IR to assembly code creation
noerrDon’t log shader conversion errors
siLog shader info (non-zero values)
regLog register allocation and lookup
ioLog shader in and output
assLog IR to assembly conversion
flowLog control flow instructions
mergeLog register merge operations
nomergeSkip register merge step
texLog texture ops
transLog generic translation messages
r300 driver environment variables¶
RADEON_DEBUGa comma-separated list of named flags, which do various things:
infoPrint hardware info (printed by default on debug builds
fpLog fragment program compilation
vpLog vertex program compilation
drawLog draw calls
swtclLog SWTCL-specific info
rsblockLog rasterizer registers
pscLog vertex stream registers
texLog basic info about textures
texallocLog texture mipmap tree info
rsLog rasterizer
fbLog framebuffer
cbzbLog fast color clear info
hyperzLog HyperZ info
scissorLog scissor info
msaaLog MSAA resources
anisohqUse high quality anisotropic filtering
notilingDisable tiling
noimmdDisable immediate mode
nooptDisable shader optimizations
nocbzbDisable fast color clear
nozmaskDisable zbuffer compression
nohizDisable hierarchical zbuffer
nocmaskDisable AA compression and fast AA clear
use_tgsiRequest TGSI shaders from the state tracker
notclDisable hardware accelerated Transform/Clip/Lighting
Other Gallium drivers have their own environment variables. These may change frequently so the source code should be consulted for details.