envvars.rst revision 7ec681f3
17ec681f3SmrgEnvironment Variables 27ec681f3Smrg===================== 37ec681f3Smrg 47ec681f3SmrgNormally, no environment variables need to be set. Most of the 57ec681f3Smrgenvironment variables used by Mesa/Gallium are for debugging purposes, 67ec681f3Smrgbut they can sometimes be useful for debugging end-user issues. 77ec681f3Smrg 87ec681f3SmrgLibGL environment variables 97ec681f3Smrg--------------------------- 107ec681f3Smrg 117ec681f3Smrg:envvar:`LIBGL_DEBUG` 127ec681f3Smrg If defined debug information will be printed to stderr. If set to 137ec681f3Smrg ``verbose`` additional information will be printed. 147ec681f3Smrg:envvar:`LIBGL_DRIVERS_PATH` 157ec681f3Smrg colon-separated list of paths to search for DRI drivers 167ec681f3Smrg:envvar:`LIBGL_ALWAYS_INDIRECT` 177ec681f3Smrg if set to ``true``, forces an indirect rendering context/connection. 187ec681f3Smrg:envvar:`LIBGL_ALWAYS_SOFTWARE` 197ec681f3Smrg if set to ``true``, always use software rendering 207ec681f3Smrg:envvar:`LIBGL_NO_DRAWARRAYS` 217ec681f3Smrg if set to ``true``, do not use DrawArrays GLX protocol (for 227ec681f3Smrg debugging) 237ec681f3Smrg:envvar:`LIBGL_SHOW_FPS` 247ec681f3Smrg print framerate to stdout based on the number of ``glXSwapBuffers`` 257ec681f3Smrg calls per second. 267ec681f3Smrg:envvar:`LIBGL_DRI2_DISABLE` 277ec681f3Smrg disable DRI2 if set to ``true``. 287ec681f3Smrg:envvar:`LIBGL_DRI3_DISABLE` 297ec681f3Smrg disable DRI3 if set to ``true``. 307ec681f3Smrg 317ec681f3SmrgCore Mesa environment variables 327ec681f3Smrg------------------------------- 337ec681f3Smrg 347ec681f3Smrg:envvar:`MESA_NO_ASM` 357ec681f3Smrg if set, disables all assembly language optimizations 367ec681f3Smrg:envvar:`MESA_NO_MMX` 377ec681f3Smrg if set, disables Intel MMX optimizations 387ec681f3Smrg:envvar:`MESA_NO_3DNOW` 397ec681f3Smrg if set, disables AMD 3DNow! optimizations 407ec681f3Smrg:envvar:`MESA_NO_SSE` 417ec681f3Smrg if set, disables Intel SSE optimizations 427ec681f3Smrg:envvar:`MESA_NO_ERROR` 437ec681f3Smrg if set to 1, error checking is disabled as per ``KHR_no_error``. This 447ec681f3Smrg will result in undefined behavior for invalid use of the API, but 457ec681f3Smrg can reduce CPU use for apps that are known to be error free. 467ec681f3Smrg:envvar:`MESA_DEBUG` 477ec681f3Smrg if set, error messages are printed to stderr. For example, if the 487ec681f3Smrg application generates a ``GL_INVALID_ENUM`` error, a corresponding 497ec681f3Smrg error message indicating where the error occurred, and possibly why, 507ec681f3Smrg will be printed to stderr. For release builds, :envvar:`MESA_DEBUG` 517ec681f3Smrg defaults to off (no debug output). :envvar:`MESA_DEBUG` accepts the 527ec681f3Smrg following comma-separated list of named flags, which adds extra 537ec681f3Smrg behavior to just set :envvar:`MESA_DEBUG` to ``1``: 547ec681f3Smrg 557ec681f3Smrg ``silent`` 567ec681f3Smrg turn off debug messages. Only useful for debug builds. 577ec681f3Smrg ``flush`` 587ec681f3Smrg flush after each drawing command 597ec681f3Smrg ``incomplete_tex`` 607ec681f3Smrg extra debug messages when a texture is incomplete 617ec681f3Smrg ``incomplete_fbo`` 627ec681f3Smrg extra debug messages when a FBO is incomplete 637ec681f3Smrg ``context`` 647ec681f3Smrg create a debug context (see ``GLX_CONTEXT_DEBUG_BIT_ARB``) and 657ec681f3Smrg print error and performance messages to stderr (or 667ec681f3Smrg ``MESA_LOG_FILE``). 677ec681f3Smrg 687ec681f3Smrg:envvar:`MESA_LOG_FILE` 697ec681f3Smrg specifies a file name for logging all errors, warnings, etc., rather 707ec681f3Smrg than stderr 717ec681f3Smrg:envvar:`MESA_TEX_PROG` 727ec681f3Smrg if set, implement conventional texture environment modes with fragment 737ec681f3Smrg programs (intended for developers only) 747ec681f3Smrg:envvar:`MESA_TNL_PROG` 757ec681f3Smrg if set, implement conventional vertex transformation operations with 767ec681f3Smrg vertex programs (intended for developers only). Setting this variable 777ec681f3Smrg automatically sets the :envvar:`MESA_TEX_PROG` variable as well. 787ec681f3Smrg:envvar:`MESA_EXTENSION_OVERRIDE` 797ec681f3Smrg can be used to enable/disable extensions. A value such as 807ec681f3Smrg ``GL_EXT_foo -GL_EXT_bar`` will enable the ``GL_EXT_foo`` extension 817ec681f3Smrg and disable the ``GL_EXT_bar`` extension. 827ec681f3Smrg:envvar:`MESA_EXTENSION_MAX_YEAR` 837ec681f3Smrg The ``GL_EXTENSIONS`` string returned by Mesa is sorted by extension 847ec681f3Smrg year. If this variable is set to year X, only extensions defined on 857ec681f3Smrg or before year X will be reported. This is to work-around a bug in 867ec681f3Smrg some games where the extension string is copied into a fixed-size 877ec681f3Smrg buffer without truncating. If the extension string is too long, the 887ec681f3Smrg buffer overrun can cause the game to crash. This is a work-around for 897ec681f3Smrg that. 907ec681f3Smrg:envvar:`MESA_GL_VERSION_OVERRIDE` 917ec681f3Smrg changes the value returned by ``glGetString(GL_VERSION)`` and 927ec681f3Smrg possibly the GL API type. 937ec681f3Smrg 947ec681f3Smrg - The format should be ``MAJOR.MINOR[FC|COMPAT]`` 957ec681f3Smrg - ``FC`` is an optional suffix that indicates a forward compatible 967ec681f3Smrg context. This is only valid for versions >= 3.0. 977ec681f3Smrg - ``COMPAT`` is an optional suffix that indicates a compatibility 987ec681f3Smrg context or ``GL_ARB_compatibility`` support. This is only valid 997ec681f3Smrg for versions >= 3.1. 1007ec681f3Smrg - GL versions <= 3.0 are set to a compatibility (non-Core) profile 1017ec681f3Smrg - GL versions = 3.1, depending on the driver, it may or may not have 1027ec681f3Smrg the ``ARB_compatibility`` extension enabled. 1037ec681f3Smrg - GL versions >= 3.2 are set to a Core profile 1047ec681f3Smrg - Examples: 1057ec681f3Smrg 1067ec681f3Smrg ``2.1`` 1077ec681f3Smrg select a compatibility (non-Core) profile with GL version 2.1. 1087ec681f3Smrg ``3.0`` 1097ec681f3Smrg select a compatibility (non-Core) profile with GL version 3.0. 1107ec681f3Smrg ``3.0FC`` 1117ec681f3Smrg select a Core+Forward Compatible profile with GL version 3.0. 1127ec681f3Smrg ``3.1`` 1137ec681f3Smrg select GL version 3.1 with ``GL_ARB_compatibility`` enabled per 1147ec681f3Smrg the driver default. 1157ec681f3Smrg ``3.1FC`` 1167ec681f3Smrg select GL version 3.1 with forward compatibility and 1177ec681f3Smrg ``GL_ARB_compatibility`` disabled. 1187ec681f3Smrg ``3.1COMPAT`` 1197ec681f3Smrg select GL version 3.1 with ``GL_ARB_compatibility`` enabled. 1207ec681f3Smrg ``X.Y`` 1217ec681f3Smrg override GL version to X.Y without changing the profile. 1227ec681f3Smrg ``X.YFC`` 1237ec681f3Smrg select a Core+Forward Compatible profile with GL version X.Y. 1247ec681f3Smrg ``X.YCOMPAT`` 1257ec681f3Smrg select a Compatibility profile with GL version X.Y. 1267ec681f3Smrg 1277ec681f3Smrg - Mesa may not really implement all the features of the given 1287ec681f3Smrg version. (for developers only) 1297ec681f3Smrg 1307ec681f3Smrg:envvar:`MESA_GLES_VERSION_OVERRIDE` 1317ec681f3Smrg changes the value returned by ``glGetString(GL_VERSION)`` for OpenGL 1327ec681f3Smrg ES. 1337ec681f3Smrg 1347ec681f3Smrg - The format should be ``MAJOR.MINOR`` 1357ec681f3Smrg - Examples: ``2.0``, ``3.0``, ``3.1`` 1367ec681f3Smrg - Mesa may not really implement all the features of the given 1377ec681f3Smrg version. (for developers only) 1387ec681f3Smrg 1397ec681f3Smrg:envvar:`MESA_GLSL_VERSION_OVERRIDE` 1407ec681f3Smrg changes the value returned by 1417ec681f3Smrg ``glGetString(GL_SHADING_LANGUAGE_VERSION)``. Valid values are 1427ec681f3Smrg integers, such as ``130``. Mesa will not really implement all the 1437ec681f3Smrg features of the given language version if it's higher than what's 1447ec681f3Smrg normally reported. (for developers only) 1457ec681f3Smrg:envvar:`MESA_GLSL_CACHE_DISABLE` 1467ec681f3Smrg if set to ``true``, disables the GLSL shader cache. If set to 1477ec681f3Smrg ``false``, enables the GLSL shader cache when it is disabled by 1487ec681f3Smrg default. 1497ec681f3Smrg:envvar:`MESA_GLSL_CACHE_MAX_SIZE` 1507ec681f3Smrg if set, determines the maximum size of the on-disk cache of compiled 1517ec681f3Smrg GLSL programs. Should be set to a number optionally followed by 1527ec681f3Smrg ``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or 1537ec681f3Smrg gigabytes. By default, gigabytes will be assumed. And if unset, a 1547ec681f3Smrg maximum size of 1GB will be used. 1557ec681f3Smrg 1567ec681f3Smrg .. note:: 1577ec681f3Smrg 1587ec681f3Smrg A separate cache might be created for each architecture that Mesa is 1597ec681f3Smrg installed for on your system. For example under the default settings 1607ec681f3Smrg you may end up with a 1GB cache for x86_64 and another 1GB cache for 1617ec681f3Smrg i386. 1627ec681f3Smrg 1637ec681f3Smrg:envvar:`MESA_GLSL_CACHE_DIR` 1647ec681f3Smrg if set, determines the directory to be used for the on-disk cache of 1657ec681f3Smrg compiled GLSL programs. If this variable is not set, then the cache 1667ec681f3Smrg will be stored in ``$XDG_CACHE_HOME/mesa_shader_cache`` (if that 1677ec681f3Smrg variable is set), or else within ``.cache/mesa_shader_cache`` within 1687ec681f3Smrg the user's home directory. 1697ec681f3Smrg:envvar:`MESA_GLSL` 1707ec681f3Smrg :ref:`shading language compiler options <envvars>` 1717ec681f3Smrg:envvar:`MESA_NO_MINMAX_CACHE` 1727ec681f3Smrg when set, the minmax index cache is globally disabled. 1737ec681f3Smrg:envvar:`MESA_SHADER_CAPTURE_PATH` 1747ec681f3Smrg see :ref:`Capturing Shaders <capture>` 1757ec681f3Smrg:envvar:`MESA_SHADER_DUMP_PATH` and :envvar:`MESA_SHADER_READ_PATH` 1767ec681f3Smrg see :ref:`Experimenting with Shader 1777ec681f3Smrg Replacements <replacement>` 1787ec681f3Smrg:envvar:`MESA_VK_VERSION_OVERRIDE` 1797ec681f3Smrg changes the Vulkan physical device version as returned in 1807ec681f3Smrg ``VkPhysicalDeviceProperties::apiVersion``. 1817ec681f3Smrg 1827ec681f3Smrg - The format should be ``MAJOR.MINOR[.PATCH]`` 1837ec681f3Smrg - This will not let you force a version higher than the driver's 1847ec681f3Smrg instance version as advertised by ``vkEnumerateInstanceVersion`` 1857ec681f3Smrg - This can be very useful for debugging but some features may not be 1867ec681f3Smrg implemented correctly. (For developers only) 1877ec681f3Smrg:envvar:`MESA_VK_WSI_PRESENT_MODE` 1887ec681f3Smrg overrides the WSI present mode clients specify in 1897ec681f3Smrg ``VkSwapchainCreateInfoKHR::presentMode``. Values can be ``fifo``, 1907ec681f3Smrg ``relaxed``, ``mailbox`` or ``immediate``. 1917ec681f3Smrg:envvar:`MESA_LOADER_DRIVER_OVERRIDE` 1927ec681f3Smrg chooses a different driver binary such as ``etnaviv`` or ``zink``. 1937ec681f3Smrg 1947ec681f3SmrgNIR passes environment variables 1957ec681f3Smrg-------------------------------- 1967ec681f3Smrg 1977ec681f3SmrgThe following are only applicable for drivers that uses NIR, as they 1987ec681f3Smrgmodify the behavior for the common ``NIR_PASS`` and ``NIR_PASS_V`` macros, 1997ec681f3Smrgthat wrap calls to NIR lowering/optimizations. 2007ec681f3Smrg 2017ec681f3Smrg:envvar:`NIR_PRINT` 2027ec681f3Smrg If defined, the resulting NIR shader will be printed out at each 2037ec681f3Smrg successful NIR lowering/optimization call. 2047ec681f3Smrg:envvar:`NIR_TEST_CLONE` 2057ec681f3Smrg If defined, cloning a NIR shader would be tested at each successful 2067ec681f3Smrg NIR lowering/optimization call. 2077ec681f3Smrg:envvar:`NIR_TEST_SERIALIZE` 2087ec681f3Smrg If defined, serialize and deserialize a NIR shader would be tested at 2097ec681f3Smrg each successful NIR lowering/optimization call. 2107ec681f3Smrg 2117ec681f3SmrgMesa Xlib driver environment variables 2127ec681f3Smrg-------------------------------------- 2137ec681f3Smrg 2147ec681f3SmrgThe following are only applicable to the Mesa Xlib software driver. See 2157ec681f3Smrgthe :doc:`Xlib software driver page <xlibdriver>` for details. 2167ec681f3Smrg 2177ec681f3Smrg:envvar:`MESA_RGB_VISUAL` 2187ec681f3Smrg specifies the X visual and depth for RGB mode 2197ec681f3Smrg:envvar:`MESA_BACK_BUFFER` 2207ec681f3Smrg specifies how to implement the back color buffer, either ``pixmap`` 2217ec681f3Smrg or ``ximage`` 2227ec681f3Smrg:envvar:`MESA_GAMMA` 2237ec681f3Smrg gamma correction coefficients for red, green, blue channels 2247ec681f3Smrg:envvar:`MESA_XSYNC` 2257ec681f3Smrg enable synchronous X behavior (for debugging only) 2267ec681f3Smrg:envvar:`MESA_GLX_FORCE_CI` 2277ec681f3Smrg if set, force GLX to treat 8 BPP visuals as CI visuals 2287ec681f3Smrg:envvar:`MESA_GLX_FORCE_ALPHA` 2297ec681f3Smrg if set, forces RGB windows to have an alpha channel. 2307ec681f3Smrg:envvar:`MESA_GLX_DEPTH_BITS` 2317ec681f3Smrg specifies default number of bits for depth buffer. 2327ec681f3Smrg:envvar:`MESA_GLX_ALPHA_BITS` 2337ec681f3Smrg specifies default number of bits for alpha channel. 2347ec681f3Smrg 2357ec681f3SmrgIntel driver environment variables 2367ec681f3Smrg---------------------------------------------------- 2377ec681f3Smrg 2387ec681f3Smrg:envvar:`INTEL_BLACKHOLE_DEFAULT` 2397ec681f3Smrg if set to 1, true or yes, then the OpenGL implementation will 2407ec681f3Smrg default ``GL_BLACKHOLE_RENDER_INTEL`` to true, thus disabling any 2417ec681f3Smrg rendering. 2427ec681f3Smrg:envvar:`INTEL_DEBUG` 2437ec681f3Smrg a comma-separated list of named flags, which do various things: 2447ec681f3Smrg 2457ec681f3Smrg ``ann`` 2467ec681f3Smrg annotate IR in assembly dumps 2477ec681f3Smrg ``aub`` 2487ec681f3Smrg dump batches into an AUB trace for use with simulation tools 2497ec681f3Smrg ``bat`` 2507ec681f3Smrg emit batch information 2517ec681f3Smrg ``blit`` 2527ec681f3Smrg emit messages about blit operations 2537ec681f3Smrg ``blorp`` 2547ec681f3Smrg emit messages about the blorp operations (blits & clears) 2557ec681f3Smrg ``buf`` 2567ec681f3Smrg emit messages about buffer objects 2577ec681f3Smrg ``clip`` 2587ec681f3Smrg emit messages about the clip unit (for old gens, includes the CLIP 2597ec681f3Smrg program) 2607ec681f3Smrg ``color`` 2617ec681f3Smrg use color in output 2627ec681f3Smrg ``cs`` 2637ec681f3Smrg dump shader assembly for compute shaders 2647ec681f3Smrg ``do32`` 2657ec681f3Smrg generate compute shader SIMD32 programs even if workgroup size 2667ec681f3Smrg doesn't exceed the SIMD16 limit 2677ec681f3Smrg ``dri`` 2687ec681f3Smrg emit messages about the DRI interface 2697ec681f3Smrg ``fbo`` 2707ec681f3Smrg emit messages about framebuffers 2717ec681f3Smrg ``fs`` 2727ec681f3Smrg dump shader assembly for fragment shaders 2737ec681f3Smrg ``gs`` 2747ec681f3Smrg dump shader assembly for geometry shaders 2757ec681f3Smrg ``hex`` 2767ec681f3Smrg print instruction hex dump with the disassembly 2777ec681f3Smrg ``l3`` 2787ec681f3Smrg emit messages about the new L3 state during transitions 2797ec681f3Smrg ``miptree`` 2807ec681f3Smrg emit messages about miptrees 2817ec681f3Smrg ``no8`` 2827ec681f3Smrg don't generate SIMD8 fragment shader 2837ec681f3Smrg ``no16`` 2847ec681f3Smrg suppress generation of 16-wide fragment shaders. useful for 2857ec681f3Smrg debugging broken shaders 2867ec681f3Smrg ``nocompact`` 2877ec681f3Smrg disable instruction compaction 2887ec681f3Smrg ``nodualobj`` 2897ec681f3Smrg suppress generation of dual-object geometry shader code 2907ec681f3Smrg ``nofc`` 2917ec681f3Smrg disable fast clears 2927ec681f3Smrg ``norbc`` 2937ec681f3Smrg disable single sampled render buffer compression 2947ec681f3Smrg ``optimizer`` 2957ec681f3Smrg dump shader assembly to files at each optimization pass and 2967ec681f3Smrg iteration that make progress 2977ec681f3Smrg ``perf`` 2987ec681f3Smrg emit messages about performance issues 2997ec681f3Smrg ``perfmon`` 3007ec681f3Smrg emit messages about ``AMD_performance_monitor`` 3017ec681f3Smrg ``pix`` 3027ec681f3Smrg emit messages about pixel operations 3037ec681f3Smrg ``prim`` 3047ec681f3Smrg emit messages about drawing primitives 3057ec681f3Smrg ``reemit`` 3067ec681f3Smrg mark all state dirty on each draw call 3077ec681f3Smrg ``sf`` 3087ec681f3Smrg emit messages about the strips & fans unit (for old gens, includes 3097ec681f3Smrg the SF program) 3107ec681f3Smrg ``shader_time`` 3117ec681f3Smrg record how much GPU time is spent in each shader 3127ec681f3Smrg ``spill_fs`` 3137ec681f3Smrg force spilling of all registers in the scalar backend (useful to 3147ec681f3Smrg debug spilling code) 3157ec681f3Smrg ``spill_vec4`` 3167ec681f3Smrg force spilling of all registers in the vec4 backend (useful to 3177ec681f3Smrg debug spilling code) 3187ec681f3Smrg ``state`` 3197ec681f3Smrg emit messages about state flag tracking 3207ec681f3Smrg ``submit`` 3217ec681f3Smrg emit batchbuffer usage statistics 3227ec681f3Smrg ``sync`` 3237ec681f3Smrg after sending each batch, emit a message and wait for that batch 3247ec681f3Smrg to finish rendering 3257ec681f3Smrg ``tcs`` 3267ec681f3Smrg dump shader assembly for tessellation control shaders 3277ec681f3Smrg ``tes`` 3287ec681f3Smrg dump shader assembly for tessellation evaluation shaders 3297ec681f3Smrg ``tex`` 3307ec681f3Smrg emit messages about textures. 3317ec681f3Smrg ``urb`` 3327ec681f3Smrg emit messages about URB setup 3337ec681f3Smrg ``vert`` 3347ec681f3Smrg emit messages about vertex assembly 3357ec681f3Smrg ``vs`` 3367ec681f3Smrg dump shader assembly for vertex shaders 3377ec681f3Smrg 3387ec681f3Smrg:envvar:`INTEL_MEASURE` 3397ec681f3Smrg Collects GPU timestamps over common intervals, and generates a CSV report 3407ec681f3Smrg to show how long rendering took. The overhead of collection is limited to 3417ec681f3Smrg the flushing that is required at the interval boundaries for accurate 3427ec681f3Smrg timestamps. By default, timing data is sent to ``stderr``. To direct output 3437ec681f3Smrg to a file: 3447ec681f3Smrg 3457ec681f3Smrg ``INTEL_MEASURE=file=/tmp/measure.csv {workload}`` 3467ec681f3Smrg 3477ec681f3Smrg To begin capturing timestamps at a particular frame: 3487ec681f3Smrg 3497ec681f3Smrg ``INTEL_MEASURE=file=/tmp/measure.csv,start=15 {workload}`` 3507ec681f3Smrg 3517ec681f3Smrg To capture only 23 frames: 3527ec681f3Smrg 3537ec681f3Smrg ``INTEL_MEASURE=count=23 {workload}`` 3547ec681f3Smrg 3557ec681f3Smrg To capture frames 15-37, stopping before frame 38: 3567ec681f3Smrg 3577ec681f3Smrg ``INTEL_MEASURE=start=15,count=23 {workload}`` 3587ec681f3Smrg 3597ec681f3Smrg Designate an asynchronous control file with: 3607ec681f3Smrg 3617ec681f3Smrg ``INTEL_MEASURE=control=path/to/control.fifo {workload}`` 3627ec681f3Smrg 3637ec681f3Smrg As the workload runs, enable capture for 5 frames with: 3647ec681f3Smrg 3657ec681f3Smrg ``$ echo 5 > path/to/control.fifo`` 3667ec681f3Smrg 3677ec681f3Smrg Enable unbounded capture: 3687ec681f3Smrg 3697ec681f3Smrg ``$ echo -1 > path/to/control.fifo`` 3707ec681f3Smrg 3717ec681f3Smrg and disable with: 3727ec681f3Smrg 3737ec681f3Smrg ``$ echo 0 > path/to/control.fifo`` 3747ec681f3Smrg 3757ec681f3Smrg Select the boundaries of each snapshot with: 3767ec681f3Smrg 3777ec681f3Smrg ``INTEL_MEASURE=draw`` 3787ec681f3Smrg Collects timings for every render (DEFAULT) 3797ec681f3Smrg 3807ec681f3Smrg ``INTEL_MEASURE=rt`` 3817ec681f3Smrg Collects timings when the render target changes 3827ec681f3Smrg 3837ec681f3Smrg ``INTEL_MEASURE=batch`` 3847ec681f3Smrg Collects timings when batches are submitted 3857ec681f3Smrg 3867ec681f3Smrg ``INTEL_MEASURE=frame`` 3877ec681f3Smrg Collects timings at frame boundaries 3887ec681f3Smrg 3897ec681f3Smrg With ``INTEL_MEASURE=interval=5``, the duration of 5 events will be 3907ec681f3Smrg combined into a single record in the output. When possible, a single 3917ec681f3Smrg start and end event will be submitted to the GPU to minimize 3927ec681f3Smrg stalling. Combined events will not span batches, except in 3937ec681f3Smrg the case of ``INTEL_MEASURE=frame``. 3947ec681f3Smrg:envvar:`INTEL_NO_HW` 3957ec681f3Smrg if set to 1, true or yes, prevents batches from being submitted to the 3967ec681f3Smrg hardware. This is useful for debugging hangs, etc. 3977ec681f3Smrg:envvar:`INTEL_PRECISE_TRIG` 3987ec681f3Smrg if set to 1, true or yes, then the driver prefers accuracy over 3997ec681f3Smrg performance in trig functions. 4007ec681f3Smrg:envvar:`INTEL_SHADER_ASM_READ_PATH` 4017ec681f3Smrg if set, determines the directory to be used for overriding shader 4027ec681f3Smrg assembly. The binaries with custom assembly should be placed in 4037ec681f3Smrg this folder and have a name formatted as ``sha1_of_assembly.bin``. 4047ec681f3Smrg The sha1 of a shader assembly is printed when assembly is dumped via 4057ec681f3Smrg corresponding :envvar:`INTEL_DEBUG` flag (e.g. ``vs`` for vertex shader). 4067ec681f3Smrg A binary could be generated from a dumped assembly by ``i965_asm``. 4077ec681f3Smrg For :envvar:`INTEL_SHADER_ASM_READ_PATH` to work it is necessary to enable 4087ec681f3Smrg dumping of corresponding shader stages via :envvar:`INTEL_DEBUG`. 4097ec681f3Smrg It is advised to use ``nocompact`` flag of :envvar:`INTEL_DEBUG` when 4107ec681f3Smrg dumping and overriding shader assemblies. 4117ec681f3Smrg The success of assembly override would be signified by "Successfully 4127ec681f3Smrg overrode shader with sha1 <sha1>" in stderr replacing the original 4137ec681f3Smrg assembly. 4147ec681f3Smrg 4157ec681f3Smrg 4167ec681f3SmrgRadeon driver environment variables (radeon, r200, and r300g) 4177ec681f3Smrg------------------------------------------------------------- 4187ec681f3Smrg 4197ec681f3Smrg:envvar:`RADEON_NO_TCL` 4207ec681f3Smrg if set, disable hardware-accelerated Transform/Clip/Lighting. 4217ec681f3Smrg 4227ec681f3SmrgDRI environment variables 4237ec681f3Smrg------------------------- 4247ec681f3Smrg 4257ec681f3Smrg:envvar:`DRI_NO_MSAA` 4267ec681f3Smrg disable MSAA for GLX/EGL MSAA visuals 4277ec681f3Smrg 4287ec681f3Smrg 4297ec681f3SmrgEGL environment variables 4307ec681f3Smrg------------------------- 4317ec681f3Smrg 4327ec681f3SmrgMesa EGL supports different sets of environment variables. See the 4337ec681f3Smrg:doc:`Mesa EGL <egl>` page for the details. 4347ec681f3Smrg 4357ec681f3SmrgGallium environment variables 4367ec681f3Smrg----------------------------- 4377ec681f3Smrg 4387ec681f3Smrg:envvar:`GALLIUM_HUD` 4397ec681f3Smrg draws various information on the screen, like framerate, CPU load, 4407ec681f3Smrg driver statistics, performance counters, etc. Set 4417ec681f3Smrg :envvar:`GALLIUM_HUD` to ``help`` and run e.g. ``glxgears`` for more info. 4427ec681f3Smrg:envvar:`GALLIUM_HUD_PERIOD` 4437ec681f3Smrg sets the HUD update rate in seconds (float). Use zero to update every 4447ec681f3Smrg frame. The default period is 1/2 second. 4457ec681f3Smrg:envvar:`GALLIUM_HUD_VISIBLE` 4467ec681f3Smrg control default visibility, defaults to true. 4477ec681f3Smrg:envvar:`GALLIUM_HUD_TOGGLE_SIGNAL` 4487ec681f3Smrg toggle visibility via user specified signal. Especially useful to 4497ec681f3Smrg toggle HUD at specific points of application and disable for 4507ec681f3Smrg unencumbered viewing the rest of the time. For example, set 4517ec681f3Smrg :envvar:`GALLIUM_HUD_VISIBLE` to ``false`` and 4527ec681f3Smrg :envvar:`GALLIUM_HUD_TOGGLE_SIGNAL` to ``10`` (``SIGUSR1``). Use 4537ec681f3Smrg ``kill -10 <pid>`` to toggle the HUD as desired. 4547ec681f3Smrg:envvar:`GALLIUM_HUD_SCALE` 4557ec681f3Smrg Scale HUD by an integer factor, for high DPI displays. Default is 1. 4567ec681f3Smrg:envvar:`GALLIUM_HUD_DUMP_DIR` 4577ec681f3Smrg specifies a directory for writing the displayed HUD values into 4587ec681f3Smrg files. 4597ec681f3Smrg:envvar:`GALLIUM_DRIVER` 4607ec681f3Smrg useful in combination with :envvar:`LIBGL_ALWAYS_SOFTWARE`=`true` for 4617ec681f3Smrg choosing one of the software renderers ``softpipe``, ``llvmpipe`` or 4627ec681f3Smrg ``swr``. 4637ec681f3Smrg:envvar:`GALLIUM_LOG_FILE` 4647ec681f3Smrg specifies a file for logging all errors, warnings, etc. rather than 4657ec681f3Smrg stderr. 4667ec681f3Smrg:envvar:`GALLIUM_PIPE_SEARCH_DIR` 4677ec681f3Smrg specifies an alternate search directory for pipe-loader which overrides 4687ec681f3Smrg the compile-time path based on the install location. 4697ec681f3Smrg:envvar:`GALLIUM_PRINT_OPTIONS` 4707ec681f3Smrg if non-zero, print all the Gallium environment variables which are 4717ec681f3Smrg used, and their current values. 4727ec681f3Smrg:envvar:`GALLIUM_DUMP_CPU` 4737ec681f3Smrg if non-zero, print information about the CPU on start-up 4747ec681f3Smrg:envvar:`TGSI_PRINT_SANITY` 4757ec681f3Smrg if set, do extra sanity checking on TGSI shaders and print any errors 4767ec681f3Smrg to stderr. 4777ec681f3Smrg:envvar:`DRAW_FSE` 4787ec681f3Smrg Enable fetch-shade-emit middle-end even though its not correct (e.g. 4797ec681f3Smrg for softpipe) 4807ec681f3Smrg:envvar:`DRAW_NO_FSE` 4817ec681f3Smrg Disable fetch-shade-emit middle-end even when it is correct 4827ec681f3Smrg:envvar:`DRAW_USE_LLVM` 4837ec681f3Smrg if set to zero, the draw module will not use LLVM to execute shaders, 4847ec681f3Smrg vertex fetch, etc. 4857ec681f3Smrg:envvar:`ST_DEBUG` 4867ec681f3Smrg controls debug output from the Mesa/Gallium state tracker. Setting to 4877ec681f3Smrg ``tgsi``, for example, will print all the TGSI shaders. See 4887ec681f3Smrg :file:`src/mesa/state_tracker/st_debug.c` for other options. 4897ec681f3Smrg 4907ec681f3SmrgClover environment variables 4917ec681f3Smrg---------------------------- 4927ec681f3Smrg 4937ec681f3Smrg:envvar:`CLOVER_EXTRA_BUILD_OPTIONS` 4947ec681f3Smrg allows specifying additional compiler and linker options. Specified 4957ec681f3Smrg options are appended after the options set by the OpenCL program in 4967ec681f3Smrg ``clBuildProgram``. 4977ec681f3Smrg:envvar:`CLOVER_EXTRA_COMPILE_OPTIONS` 4987ec681f3Smrg allows specifying additional compiler options. Specified options are 4997ec681f3Smrg appended after the options set by the OpenCL program in 5007ec681f3Smrg ``clCompileProgram``. 5017ec681f3Smrg:envvar:`CLOVER_EXTRA_LINK_OPTIONS` 5027ec681f3Smrg allows specifying additional linker options. Specified options are 5037ec681f3Smrg appended after the options set by the OpenCL program in 5047ec681f3Smrg ``clLinkProgram``. 5057ec681f3Smrg 5067ec681f3SmrgSoftpipe driver environment variables 5077ec681f3Smrg------------------------------------- 5087ec681f3Smrg 5097ec681f3Smrg:envvar:`SOFTPIPE_DEBUG` 5107ec681f3Smrg a comma-separated list of named flags, which do various things: 5117ec681f3Smrg 5127ec681f3Smrg ``vs`` 5137ec681f3Smrg Dump vertex shader assembly to stderr 5147ec681f3Smrg ``fs`` 5157ec681f3Smrg Dump fragment shader assembly to stderr 5167ec681f3Smrg ``gs`` 5177ec681f3Smrg Dump geometry shader assembly to stderr 5187ec681f3Smrg ``cs`` 5197ec681f3Smrg Dump compute shader assembly to stderr 5207ec681f3Smrg ``no_rast`` 5217ec681f3Smrg rasterization is disabled. For profiling purposes. 5227ec681f3Smrg ``use_llvm`` 5237ec681f3Smrg the softpipe driver will try to use LLVM JIT for vertex 5247ec681f3Smrg shading processing. 5257ec681f3Smrg ``use_tgsi`` 5267ec681f3Smrg if set, the softpipe driver will ask to directly consume TGSI, instead 5277ec681f3Smrg of NIR. 5287ec681f3Smrg 5297ec681f3SmrgLLVMpipe driver environment variables 5307ec681f3Smrg------------------------------------- 5317ec681f3Smrg 5327ec681f3Smrg:envvar:`LP_NO_RAST` 5337ec681f3Smrg if set LLVMpipe will no-op rasterization 5347ec681f3Smrg:envvar:`LP_DEBUG` 5357ec681f3Smrg a comma-separated list of debug options is accepted. See the source 5367ec681f3Smrg code for details. 5377ec681f3Smrg:envvar:`LP_PERF` 5387ec681f3Smrg a comma-separated list of options to selectively no-op various parts 5397ec681f3Smrg of the driver. See the source code for details. 5407ec681f3Smrg:envvar:`LP_NUM_THREADS` 5417ec681f3Smrg an integer indicating how many threads to use for rendering. Zero 5427ec681f3Smrg turns off threading completely. The default value is the number of 5437ec681f3Smrg CPU cores present. 5447ec681f3Smrg 5457ec681f3SmrgVMware SVGA driver environment variables 5467ec681f3Smrg---------------------------------------- 5477ec681f3Smrg 5487ec681f3Smrg:envvar`SVGA_FORCE_SWTNL` 5497ec681f3Smrg force use of software vertex transformation 5507ec681f3Smrg:envvar`SVGA_NO_SWTNL` 5517ec681f3Smrg don't allow software vertex transformation fallbacks (will often 5527ec681f3Smrg result in incorrect rendering). 5537ec681f3Smrg:envvar`SVGA_DEBUG` 5547ec681f3Smrg for dumping shaders, constant buffers, etc. See the code for details. 5557ec681f3Smrg:envvar`SVGA_EXTRA_LOGGING` 5567ec681f3Smrg if set, enables extra logging to the ``vmware.log`` file, such as the 5577ec681f3Smrg OpenGL program's name and command line arguments. 5587ec681f3Smrg:envvar`SVGA_NO_LOGGING` 5597ec681f3Smrg if set, disables logging to the ``vmware.log`` file. This is useful 5607ec681f3Smrg when using Valgrind because it otherwise crashes when initializing 5617ec681f3Smrg the host log feature. 5627ec681f3Smrg 5637ec681f3SmrgSee the driver code for other, lesser-used variables. 5647ec681f3Smrg 5657ec681f3SmrgWGL environment variables 5667ec681f3Smrg------------------------- 5677ec681f3Smrg 5687ec681f3Smrg:envvar:`WGL_SWAP_INTERVAL` 5697ec681f3Smrg to set a swap interval, equivalent to calling 5707ec681f3Smrg ``wglSwapIntervalEXT()`` in an application. If this environment 5717ec681f3Smrg variable is set, application calls to ``wglSwapIntervalEXT()`` will 5727ec681f3Smrg have no effect. 5737ec681f3Smrg 5747ec681f3SmrgVA-API environment variables 5757ec681f3Smrg---------------------------- 5767ec681f3Smrg 5777ec681f3Smrg:envvar:`VAAPI_MPEG4_ENABLED` 5787ec681f3Smrg enable MPEG4 for VA-API, disabled by default. 5797ec681f3Smrg 5807ec681f3SmrgVC4 driver environment variables 5817ec681f3Smrg-------------------------------- 5827ec681f3Smrg 5837ec681f3Smrg:envvar:`VC4_DEBUG` 5847ec681f3Smrg a comma-separated list of named flags, which do various things: 5857ec681f3Smrg 5867ec681f3Smrg ``cl`` 5877ec681f3Smrg dump command list during creation 5887ec681f3Smrg ``qpu`` 5897ec681f3Smrg dump generated QPU instructions 5907ec681f3Smrg ``qir`` 5917ec681f3Smrg dump QPU IR during program compile 5927ec681f3Smrg ``nir`` 5937ec681f3Smrg dump NIR during program compile 5947ec681f3Smrg ``tgsi`` 5957ec681f3Smrg dump TGSI during program compile 5967ec681f3Smrg ``shaderdb`` 5977ec681f3Smrg dump program compile information for shader-db analysis 5987ec681f3Smrg ``perf`` 5997ec681f3Smrg print during performance-related events 6007ec681f3Smrg ``norast`` 6017ec681f3Smrg skip actual hardware execution of commands 6027ec681f3Smrg ``always_flush`` 6037ec681f3Smrg flush after each draw call 6047ec681f3Smrg ``always_sync`` 6057ec681f3Smrg wait for finish after each flush 6067ec681f3Smrg ``dump`` 6077ec681f3Smrg write a GPU command stream trace file (VC4 simulator only) 6087ec681f3Smrg 6097ec681f3SmrgRADV driver environment variables 6107ec681f3Smrg--------------------------------- 6117ec681f3Smrg 6127ec681f3Smrg:envvar:`RADV_DEBUG` 6137ec681f3Smrg a comma-separated list of named flags, which do various things: 6147ec681f3Smrg 6157ec681f3Smrg ``llvm`` 6167ec681f3Smrg enable LLVM compiler backend 6177ec681f3Smrg ``allbos`` 6187ec681f3Smrg force all allocated buffers to be referenced in submissions 6197ec681f3Smrg ``checkir`` 6207ec681f3Smrg validate the LLVM IR before LLVM compiles the shader 6217ec681f3Smrg ``forcecompress`` 6227ec681f3Smrg Enables DCC,FMASK,CMASK,HTILE in situations where the driver supports it 6237ec681f3Smrg but normally does not deem it beneficial. 6247ec681f3Smrg ``hang`` 6257ec681f3Smrg enable GPU hangs detection and dump a report to 6267ec681f3Smrg $HOME/radv_dumps_<pid>_<time> if a GPU hang is detected 6277ec681f3Smrg ``img`` 6287ec681f3Smrg Print image info 6297ec681f3Smrg ``info`` 6307ec681f3Smrg show GPU-related information 6317ec681f3Smrg ``invariantgeom`` 6327ec681f3Smrg Mark geometry-affecting outputs as invariant. This works around a common 6337ec681f3Smrg class of application bugs appearing as flickering. 6347ec681f3Smrg ``metashaders`` 6357ec681f3Smrg dump internal meta shaders 6367ec681f3Smrg ``noatocdithering`` 6377ec681f3Smrg disable dithering for alpha to coverage 6387ec681f3Smrg ``nobinning`` 6397ec681f3Smrg disable primitive binning 6407ec681f3Smrg ``nocache`` 6417ec681f3Smrg disable shaders cache 6427ec681f3Smrg ``nocompute`` 6437ec681f3Smrg disable compute queue 6447ec681f3Smrg ``nodcc`` 6457ec681f3Smrg disable Delta Color Compression (DCC) on images 6467ec681f3Smrg ``nodisplaydcc`` 6477ec681f3Smrg disable Delta Color Compression (DCC) on displayable images 6487ec681f3Smrg ``nodynamicbounds`` 6497ec681f3Smrg do not check OOB access for dynamic descriptors 6507ec681f3Smrg ``nofastclears`` 6517ec681f3Smrg disable fast color/depthstencil clears 6527ec681f3Smrg ``nohiz`` 6537ec681f3Smrg disable HIZ for depthstencil images 6547ec681f3Smrg ``noibs`` 6557ec681f3Smrg disable directly recording command buffers in GPU-visible memory 6567ec681f3Smrg ``nomemorycache`` 6577ec681f3Smrg disable memory shaders cache 6587ec681f3Smrg ``nongg`` 6597ec681f3Smrg disable NGG for GFX10+ 6607ec681f3Smrg ``nonggc`` 6617ec681f3Smrg disable NGG culling on GPUs where it's enabled by default (GFX10.3+ only). 6627ec681f3Smrg ``nooutoforder`` 6637ec681f3Smrg disable out-of-order rasterization 6647ec681f3Smrg ``notccompatcmask`` 6657ec681f3Smrg disable TC-compat CMASK for MSAA surfaces 6667ec681f3Smrg ``noumr`` 6677ec681f3Smrg disable UMR dumps during GPU hang detection (only with 6687ec681f3Smrg :envvar:`RADV_DEBUG`=``hang``) 6697ec681f3Smrg ``novrsflatshading`` 6707ec681f3Smrg disable VRS for flat shading (only on GFX10.3+) 6717ec681f3Smrg ``preoptir`` 6727ec681f3Smrg dump LLVM IR before any optimizations 6737ec681f3Smrg ``prologs`` 6747ec681f3Smrg dump vertex shader prologs 6757ec681f3Smrg ``shaders`` 6767ec681f3Smrg dump shaders 6777ec681f3Smrg ``shaderstats`` 6787ec681f3Smrg dump shader statistics 6797ec681f3Smrg ``spirv`` 6807ec681f3Smrg dump SPIR-V 6817ec681f3Smrg ``startup`` 6827ec681f3Smrg display info at startup 6837ec681f3Smrg ``syncshaders`` 6847ec681f3Smrg synchronize shaders after all draws/dispatches 6857ec681f3Smrg ``vmfaults`` 6867ec681f3Smrg check for VM memory faults via dmesg 6877ec681f3Smrg ``zerovram`` 6887ec681f3Smrg initialize all memory allocated in VRAM as zero 6897ec681f3Smrg 6907ec681f3Smrg:envvar:`RADV_FORCE_FAMILY` 6917ec681f3Smrg create a null device to compile shaders without a AMD GPU (e.g. vega10) 6927ec681f3Smrg 6937ec681f3Smrg:envvar:`RADV_FORCE_VRS` 6947ec681f3Smrg allow to force per-pipeline vertex VRS rates on GFX10.3+. This is only 6957ec681f3Smrg forced for pipelines that don't explicitely use VRS or flat shading. 6967ec681f3Smrg The supported values are 2x2, 1x2 and 2x1. Only for testing purposes. 6977ec681f3Smrg 6987ec681f3Smrg:envvar:`RADV_PERFTEST` 6997ec681f3Smrg a comma-separated list of named flags, which do various things: 7007ec681f3Smrg 7017ec681f3Smrg ``bolist`` 7027ec681f3Smrg enable the global BO list 7037ec681f3Smrg ``cswave32`` 7047ec681f3Smrg enable wave32 for compute shaders (GFX10+) 7057ec681f3Smrg ``dccmsaa`` 7067ec681f3Smrg enable DCC for MSAA images 7077ec681f3Smrg ``force_emulate_rt`` 7087ec681f3Smrg forces ray-tracing to be emulated in software, 7097ec681f3Smrg even if there is hardware support. 7107ec681f3Smrg ``gewave32`` 7117ec681f3Smrg enable wave32 for vertex/tess/geometry shaders (GFX10+) 7127ec681f3Smrg ``localbos`` 7137ec681f3Smrg enable local BOs 7147ec681f3Smrg ``nosam`` 7157ec681f3Smrg disable optimizations that get enabled when all VRAM is CPU visible. 7167ec681f3Smrg ``pswave32`` 7177ec681f3Smrg enable wave32 for pixel shaders (GFX10+) 7187ec681f3Smrg ``nggc`` 7197ec681f3Smrg enable NGG culling on GPUs where it's not enabled by default (GFX10.1 only). 7207ec681f3Smrg ``rt`` 7217ec681f3Smrg enable rt extensions whose implementation is still experimental. 7227ec681f3Smrg ``sam`` 7237ec681f3Smrg enable optimizations to move more driver internal objects to VRAM. 7247ec681f3Smrg 7257ec681f3Smrg:envvar:`RADV_TEX_ANISO` 7267ec681f3Smrg force anisotropy filter (up to 16) 7277ec681f3Smrg 7287ec681f3Smrg:envvar:`ACO_DEBUG` 7297ec681f3Smrg a comma-separated list of named flags, which do various things: 7307ec681f3Smrg 7317ec681f3Smrg ``validateir`` 7327ec681f3Smrg validate the ACO IR at various points of compilation (enabled by 7337ec681f3Smrg default for debug/debugoptimized builds) 7347ec681f3Smrg ``validatera`` 7357ec681f3Smrg validate register assignment of ACO IR and catches many RA bugs 7367ec681f3Smrg ``perfwarn`` 7377ec681f3Smrg abort on some suboptimal code generation 7387ec681f3Smrg ``force-waitcnt`` 7397ec681f3Smrg force emitting waitcnt states if there is something to wait for 7407ec681f3Smrg ``novn`` 7417ec681f3Smrg disable value numbering 7427ec681f3Smrg ``noopt`` 7437ec681f3Smrg disable various optimizations 7447ec681f3Smrg ``noscheduling`` 7457ec681f3Smrg disable instructions scheduling 7467ec681f3Smrg ``perfinfo`` 7477ec681f3Smrg print information used to calculate some pipeline statistics 7487ec681f3Smrg ``liveinfo`` 7497ec681f3Smrg print liveness and register demand information before scheduling 7507ec681f3Smrg 7517ec681f3Smrgradeonsi driver environment variables 7527ec681f3Smrg------------------------------------- 7537ec681f3Smrg 7547ec681f3Smrg:envvar:`AMD_DEBUG` 7557ec681f3Smrg a comma-separated list of named flags, which do various things: 7567ec681f3Smrg 7577ec681f3Smrg ``nodcc`` 7587ec681f3Smrg Disable DCC. 7597ec681f3Smrg ``nodccclear`` 7607ec681f3Smrg Disable DCC fast clear. 7617ec681f3Smrg ``nodccmsaa`` 7627ec681f3Smrg Disable DCC for MSAA 7637ec681f3Smrg ``nodpbb`` 7647ec681f3Smrg Disable DPBB. 7657ec681f3Smrg ``nodfsm`` 7667ec681f3Smrg Disable DFSM. 7677ec681f3Smrg ``notiling`` 7687ec681f3Smrg Disable tiling 7697ec681f3Smrg ``nofmask`` 7707ec681f3Smrg Disable MSAA compression 7717ec681f3Smrg ``nohyperz`` 7727ec681f3Smrg Disable Hyper-Z 7737ec681f3Smrg ``no2d`` 7747ec681f3Smrg Disable 2D tiling 7757ec681f3Smrg ``info`` 7767ec681f3Smrg Print driver information 7777ec681f3Smrg ``tex`` 7787ec681f3Smrg Print texture info 7797ec681f3Smrg ``compute`` 7807ec681f3Smrg Print compute info 7817ec681f3Smrg ``vm`` 7827ec681f3Smrg Print virtual addresses when creating resources 7837ec681f3Smrg ``vs`` 7847ec681f3Smrg Print vertex shaders 7857ec681f3Smrg ``ps`` 7867ec681f3Smrg Print pixel shaders 7877ec681f3Smrg ``gs`` 7887ec681f3Smrg Print geometry shaders 7897ec681f3Smrg ``tcs`` 7907ec681f3Smrg Print tessellation control shaders 7917ec681f3Smrg ``tes`` 7927ec681f3Smrg Print tessellation evaluation shaders 7937ec681f3Smrg ``cs`` 7947ec681f3Smrg Print compute shaders 7957ec681f3Smrg ``noir`` 7967ec681f3Smrg Don't print the LLVM IR 7977ec681f3Smrg ``nonir`` 7987ec681f3Smrg Don't print NIR when printing shaders 7997ec681f3Smrg ``noasm`` 8007ec681f3Smrg Don't print disassembled shaders 8017ec681f3Smrg ``preoptir`` 8027ec681f3Smrg Print the LLVM IR before initial optimizations 8037ec681f3Smrg ``gisel`` 8047ec681f3Smrg Enable LLVM global instruction selector. 8057ec681f3Smrg ``w32ge`` 8067ec681f3Smrg Use Wave32 for vertex, tessellation, and geometry shaders. 8077ec681f3Smrg ``w32ps`` 8087ec681f3Smrg Use Wave32 for pixel shaders. 8097ec681f3Smrg ``w32cs`` 8107ec681f3Smrg Use Wave32 for computes shaders. 8117ec681f3Smrg ``w64ge`` 8127ec681f3Smrg Use Wave64 for vertex, tessellation, and geometry shaders. 8137ec681f3Smrg ``w64ps`` 8147ec681f3Smrg Use Wave64 for pixel shaders. 8157ec681f3Smrg ``w64cs`` 8167ec681f3Smrg Use Wave64 for computes shaders. 8177ec681f3Smrg ``checkir`` 8187ec681f3Smrg Enable additional sanity checks on shader IR 8197ec681f3Smrg ``mono`` 8207ec681f3Smrg Use old-style monolithic shaders compiled on demand 8217ec681f3Smrg ``nooptvariant`` 8227ec681f3Smrg Disable compiling optimized shader variants. 8237ec681f3Smrg ``nowc`` 8247ec681f3Smrg Disable GTT write combining 8257ec681f3Smrg ``check_vm`` 8267ec681f3Smrg Check VM faults and dump debug info. 8277ec681f3Smrg ``reserve_vmid`` 8287ec681f3Smrg Force VMID reservation per context. 8297ec681f3Smrg ``nogfx`` 8307ec681f3Smrg Disable graphics. Only multimedia compute paths can be used. 8317ec681f3Smrg ``nongg`` 8327ec681f3Smrg Disable NGG and use the legacy pipeline. 8337ec681f3Smrg ``nggc`` 8347ec681f3Smrg Always use NGG culling even when it can hurt. 8357ec681f3Smrg ``nonggc`` 8367ec681f3Smrg Disable NGG culling. 8377ec681f3Smrg ``switch_on_eop`` 8387ec681f3Smrg Program WD/IA to switch on end-of-packet. 8397ec681f3Smrg ``nooutoforder`` 8407ec681f3Smrg Disable out-of-order rasterization 8417ec681f3Smrg ``dpbb`` 8427ec681f3Smrg Enable DPBB. 8437ec681f3Smrg ``dfsm`` 8447ec681f3Smrg Enable DFSM. 8457ec681f3Smrg 8467ec681f3Smrgr600 driver environment variables 8477ec681f3Smrg--------------------------------- 8487ec681f3Smrg 8497ec681f3Smrg:envvar:`R600_DEBUG` 8507ec681f3Smrg a comma-separated list of named flags, which do various things: 8517ec681f3Smrg 8527ec681f3Smrg ``nocpdma`` 8537ec681f3Smrg Disable CP DMA 8547ec681f3Smrg ``nosb`` 8557ec681f3Smrg Disable sb backend for graphics shaders 8567ec681f3Smrg ``sbcl`` 8577ec681f3Smrg Enable sb backend for compute shaders 8587ec681f3Smrg ``sbdry`` 8597ec681f3Smrg Don't use optimized bytecode (just print the dumps) 8607ec681f3Smrg ``sbstat`` 8617ec681f3Smrg Print optimization statistics for shaders 8627ec681f3Smrg ``sbdump`` 8637ec681f3Smrg Print IR dumps after some optimization passes 8647ec681f3Smrg ``sbnofallback`` 8657ec681f3Smrg Abort on errors instead of fallback 8667ec681f3Smrg ``sbdisasm`` 8677ec681f3Smrg Use sb disassembler for shader dumps 8687ec681f3Smrg ``sbsafemath`` 8697ec681f3Smrg Disable unsafe math optimizations 8707ec681f3Smrg ``nirsb`` 8717ec681f3Smrg Enable NIR with SB optimizer 8727ec681f3Smrg ``tex`` 8737ec681f3Smrg Print texture info 8747ec681f3Smrg ``nir`` 8757ec681f3Smrg Enable experimental NIR shaders 8767ec681f3Smrg ``compute`` 8777ec681f3Smrg Print compute info 8787ec681f3Smrg ``vm`` 8797ec681f3Smrg Print virtual addresses when creating resources 8807ec681f3Smrg ``info`` 8817ec681f3Smrg Print driver information 8827ec681f3Smrg ``fs`` 8837ec681f3Smrg Print fetch shaders 8847ec681f3Smrg ``vs`` 8857ec681f3Smrg Print vertex shaders 8867ec681f3Smrg ``gs`` 8877ec681f3Smrg Print geometry shaders 8887ec681f3Smrg ``ps`` 8897ec681f3Smrg Print pixel shaders 8907ec681f3Smrg ``cs`` 8917ec681f3Smrg Print compute shaders 8927ec681f3Smrg ``tcs`` 8937ec681f3Smrg Print tessellation control shaders 8947ec681f3Smrg ``tes`` 8957ec681f3Smrg Print tessellation evaluation shaders 8967ec681f3Smrg ``noir`` 8977ec681f3Smrg Don't print the LLVM IR 8987ec681f3Smrg ``notgsi`` 8997ec681f3Smrg Don't print the TGSI 9007ec681f3Smrg ``noasm`` 9017ec681f3Smrg Don't print disassembled shaders 9027ec681f3Smrg ``preoptir`` 9037ec681f3Smrg Print the LLVM IR before initial optimizations 9047ec681f3Smrg ``checkir`` 9057ec681f3Smrg Enable additional sanity checks on shader IR 9067ec681f3Smrg ``nooptvariant`` 9077ec681f3Smrg Disable compiling optimized shader variants. 9087ec681f3Smrg ``testdma`` 9097ec681f3Smrg Invoke SDMA tests and exit. 9107ec681f3Smrg ``testvmfaultcp`` 9117ec681f3Smrg Invoke a CP VM fault test and exit. 9127ec681f3Smrg ``testvmfaultsdma`` 9137ec681f3Smrg Invoke a SDMA VM fault test and exit. 9147ec681f3Smrg ``testvmfaultshader`` 9157ec681f3Smrg Invoke a shader VM fault test and exit. 9167ec681f3Smrg ``nodma`` 9177ec681f3Smrg Disable asynchronous DMA 9187ec681f3Smrg ``nohyperz`` 9197ec681f3Smrg Disable Hyper-Z 9207ec681f3Smrg ``noinvalrange`` 9217ec681f3Smrg Disable handling of INVALIDATE_RANGE map flags 9227ec681f3Smrg ``no2d`` 9237ec681f3Smrg Disable 2D tiling 9247ec681f3Smrg ``notiling`` 9257ec681f3Smrg Disable tiling 9267ec681f3Smrg ``switch_on_eop`` 9277ec681f3Smrg Program WD/IA to switch on end-of-packet. 9287ec681f3Smrg ``forcedma`` 9297ec681f3Smrg Use asynchronous DMA for all operations when possible. 9307ec681f3Smrg ``precompile`` 9317ec681f3Smrg Compile one shader variant at shader creation. 9327ec681f3Smrg ``nowc`` 9337ec681f3Smrg Disable GTT write combining 9347ec681f3Smrg ``check_vm`` 9357ec681f3Smrg Check VM faults and dump debug info. 9367ec681f3Smrg ``unsafemath`` 9377ec681f3Smrg Enable unsafe math shader optimizations 9387ec681f3Smrg 9397ec681f3Smrg:envvar:`R600_DEBUG_COMPUTE` 9407ec681f3Smrg if set to ``true``, various compute-related debug information will 9417ec681f3Smrg be printed to stderr. Defaults to ``false``. 9427ec681f3Smrg:envvar:`R600_DUMP_SHADERS` 9437ec681f3Smrg if set to ``true``, NIR shaders will be printed to stderr. Defaults 9447ec681f3Smrg to ``false``. 9457ec681f3Smrg:envvar:`R600_HYPERZ` 9467ec681f3Smrg If set to ``false``, disables HyperZ optimizations. Defaults to ``true``. 9477ec681f3Smrg:envvar:`R600_NIR_DEBUG` 9487ec681f3Smrg a comma-separated list of named flags, which do various things: 9497ec681f3Smrg 9507ec681f3Smrg ``instr`` 9517ec681f3Smrg Log all consumed nir instructions 9527ec681f3Smrg ``ir`` 9537ec681f3Smrg Log created R600 IR 9547ec681f3Smrg ``cc`` 9557ec681f3Smrg Log R600 IR to assembly code creation 9567ec681f3Smrg ``noerr`` 9577ec681f3Smrg Don't log shader conversion errors 9587ec681f3Smrg ``si`` 9597ec681f3Smrg Log shader info (non-zero values) 9607ec681f3Smrg ``reg`` 9617ec681f3Smrg Log register allocation and lookup 9627ec681f3Smrg ``io`` 9637ec681f3Smrg Log shader in and output 9647ec681f3Smrg ``ass`` 9657ec681f3Smrg Log IR to assembly conversion 9667ec681f3Smrg ``flow`` 9677ec681f3Smrg Log control flow instructions 9687ec681f3Smrg ``merge`` 9697ec681f3Smrg Log register merge operations 9707ec681f3Smrg ``nomerge`` 9717ec681f3Smrg Skip register merge step 9727ec681f3Smrg ``tex`` 9737ec681f3Smrg Log texture ops 9747ec681f3Smrg ``trans`` 9757ec681f3Smrg Log generic translation messages 9767ec681f3Smrg 9777ec681f3SmrgOther Gallium drivers have their own environment variables. These may 9787ec681f3Smrgchange frequently so the source code should be consulted for details. 979