docs/envvars: update RADV_FORCE_FAMILY
[mesa.git] / docs / envvars.html
index c41820b8d39151184dbb8e281293f848cec32e22..0bf95a128436aa9b3bae79af81d84b592a475206 100644 (file)
@@ -133,13 +133,14 @@ sometimes be useful for debugging end-user issues.
     <dt><code>3.0FC</code></dt>
     <dd>select a Core+Forward Compatible profile with GL version 3.0.</dd>
     <dt><code>3.1</code></dt>
-    <dd>select GL version 3.1 with GL_ARB_compatibility enabled per the
-        driver default.</dd>
+    <dd>select GL version 3.1 with <code>GL_ARB_compatibility</code>
+        enabled per the driver default.</dd>
     <dt><code>3.1FC</code></dt>
     <dd>select GL version 3.1 with forward compatibility and
-        GL_ARB_compatibility disabled.</dd>
+        <code>GL_ARB_compatibility</code> disabled.</dd>
     <dt><code>3.1COMPAT</code></dt>
-    <dd>select GL version 3.1 with GL_ARB_compatibility enabled.</dd>
+    <dd>select GL version 3.1 with <code>GL_ARB_compatibility</code>
+        enabled.</dd>
     <dt><code>X.Y</code></dt>
     <dd>override GL version to X.Y without changing the profile.</dd>
     <dt><code>X.YFC</code></dt>
@@ -164,9 +165,9 @@ sometimes be useful for debugging end-user issues.
 <dt><code>MESA_GLSL_VERSION_OVERRIDE</code></dt>
 <dd>changes the value returned by
     <code>glGetString(GL_SHADING_LANGUAGE_VERSION)</code>.
-    Valid values are integers, such as "130".  Mesa will not really implement
-    all the features of the given language version if it's higher than what's
-    normally reported. (for developers only)
+    Valid values are integers, such as <code>130</code>.  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)
 </dd>
 <dt><code>MESA_GLSL_CACHE_DISABLE</code></dt>
 <dd>if set to <code>true</code>, disables the GLSL shader cache</dd>
@@ -200,7 +201,7 @@ sometimes be useful for debugging end-user issues.
   <ul>
     <li>The format should be <code>MAJOR.MINOR[.PATCH]</code></li>
     <li>This will not let you force a version higher than the driver's
-        instance versionas advertised by
+        instance version as advertised by
         <code>vkEnumerateInstanceVersion</code></li>
     <li>This can be very useful for debugging but some features may not be
         implemented correctly. (For developers only)</li>
@@ -209,6 +210,23 @@ sometimes be useful for debugging end-user issues.
 </dl>
 
 
+<h2>NIR passes enviroment variables</h2>
+<p>
+The following are only applicable for drivers that uses NIR, as they
+modify the behaviour for the common NIR_PASS and NIR_PASS_V macros,
+that wrap calls to NIR lowering/optimizations.
+</p>
+
+<dl>
+  <dt><code>NIR_PRINT</code></dt>
+  <dd>If defined, the resulting NIR shader will be printed out at each succesful NIR lowering/optimization call.</dd>
+  <dt><code>NIR_TEST_CLONE</code></dt>
+  <dd>If defined, cloning a NIR shader would be tested at each succesful NIR lowering/optimization call.</dd>
+  <dt><code>NIR_TEST_SERIALIZE</code></dt>
+  <dd>If defined, serialize and deserialize a NIR shader would be tested at each succesful NIR lowering/optimization call.</dd>
+</dl>
+
+
 <h2>Mesa Xlib driver environment variables</h2>
 
 <p>
@@ -289,6 +307,8 @@ See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
    <dd>disable instruction compaction</dd>
    <dt><code>nodualobj</code></dt>
    <dd>suppress generation of dual-object geometry shader code</dd>
+   <dt><code>nofc</code></dt>
+   <dd>disable fast clears</dd>
    <dt><code>norbc</code></dt>
    <dd>disable single sampled render buffer compression</dd>
    <dt><code>optimizer</code></dt>
@@ -362,8 +382,8 @@ Mesa EGL supports different sets of environment variables.  See the
 <dt><code>GALLIUM_HUD</code></dt>
 <dd>draws various information on the screen, like framerate,
     cpu load, driver statistics, performance counters, etc.
-    Set <code>GALLIUM_HUD=help</code> and run e.g. glxgears for more
-    info.</dd>
+    Set <code>GALLIUM_HUD=help</code> and run e.g.
+    <code>glxgears</code> for more info.</dd>
 <dt><code>GALLIUM_HUD_PERIOD</code></dt>
 <dd>sets the hud update rate in seconds (float). Use zero
     to update every frame. The default period is 1/2 second.</dd>
@@ -377,6 +397,8 @@ Mesa EGL supports different sets of environment variables.  See the
     <code>GALLIUM_HUD_TOGGLE_SIGNAL</code> to <code>10</code>
     (<code>SIGUSR1</code>).
     Use <code>kill -10 &lt;pid&gt;</code> to toggle the hud as desired.</dd>
+<dt><code>GALLIUM_HUD_SCALE</code></dt>
+<dd>Scale hud by an integer factor, for high DPI displays. Default is 1.</dd>
 <dt><code>GALLIUM_HUD_DUMP_DIR</code></dt>
 <dd>specifies a directory for writing the displayed hud values into files.</dd>
 <dt><code>GALLIUM_DRIVER</code></dt>
@@ -467,12 +489,12 @@ Mesa EGL supports different sets of environment variables.  See the
 <dd>for dumping shaders, constant buffers, etc.  See the code for
     details.</dd>
 <dt><code>SVGA_EXTRA_LOGGING</code></dt>
-<dd>if set, enables extra logging to the vmware.log file, such as the
-    OpenGL program's name and command line arguments.</dd>
+<dd>if set, enables extra logging to the <code>vmware.log</code> file,
+    such as the OpenGL program's name and command line arguments.</dd>
 <dt><code>SVGA_NO_LOGGING</code></dt>
-<dd>if set, disables logging to the vmware.log file. This is useful when
-    using Valgrind because it otherwise crashes when initializing the host
-    log feature.</dd>
+<dd>if set, disables logging to the <code>vmware.log</code> file. This is
+    useful when using Valgrind because it otherwise crashes when
+    initializing the host log feature.</dd>
 </dl>
 <p>See the driver code for other, lesser-used variables.</p>
 
@@ -524,6 +546,236 @@ Mesa EGL supports different sets of environment variables.  See the
 </dl>
 
 
+<h3>RADV driver environment variables</h3>
+<dl>
+<dt><code>RADV_DEBUG</code></dt>
+<dd>a comma-separated list of named flags, which do various things:
+<dl>
+   <dt><code>allbos</code></dt>
+   <dd>force all allocated buffers to be referenced in submissions</dd>
+   <dt><code>allentrypoints</code></dt>
+   <dd>enable all device/instance entrypoints</dd>
+   <dt><code>checkir</code></dt>
+   <dd>validate the LLVM IR before LLVM compiles the shader</dd>
+   <dt><code>errors</code></dt>
+   <dd>display more info about errors</dd>
+   <dt><code>info</code></dt>
+   <dd>show GPU-related information</dd>
+   <dt><code>metashaders</code></dt>
+   <dd>dump internal meta shaders</dd>
+   <dt><code>nobinning</code></dt>
+   <dd>disable primitive binning</dd>
+   <dt><code>nocache</code></dt>
+   <dd>disable shaders cache</dd>
+   <dt><code>nocompute</code></dt>
+   <dd>disable compute queue</dd>
+   <dt><code>nodcc</code></dt>
+   <dd>disable Delta Color Compression (DCC) on images</dd>
+   <dt><code>nodynamicbounds</code></dt>
+   <dd>do not check OOB access for dynamic descriptors</dd>
+   <dt><code>nofastclears</code></dt>
+   <dd>disable fast color/depthstencil clears</dd>
+   <dt><code>nohiz</code></dt>
+   <dd>disable HIZ for depthstencil images</dd>
+   <dt><code>noibs</code></dt>
+   <dd>disable directly recording command buffers in GPU-visible memory</dd>
+   <dt><code>noloadstoreopt</code></dt>
+   <dd>disable LLVM SILoadStoreOptimizer pass</dd>
+   <dt><code>nomemorycache</code></dt>
+   <dd>disable memory shaders cache</dd>
+   <dt><code>nongg</code></dt>
+   <dd>disable NGG for GFX10+</dd>
+   <dt><code>nooutoforder</code></dt>
+   <dd>disable out-of-order rasterization</dd>
+   <dt><code>noshaderballot</code></dt>
+   <dd>disable shader ballot</dd>
+   <dt><code>nothreadllvm</code></dt>
+   <dd>disable LLVM threaded compilation</dd>
+   <dt><code>preoptir</code></dt>
+   <dd>dump LLVM IR before any optimizations</dd>
+   <dt><code>shaders</code></dt>
+   <dd>dump shaders</dd>
+   <dt><code>shaderstats</code></dt>
+   <dd>dump shader statistics</dd>
+   <dt><code>spirv</code></dt>
+   <dd>dump SPIR-V</dd>
+   <dt><code>startup</code></dt>
+   <dd>display info at startup</dd>
+   <dt><code>syncshaders</code></dt>
+   <dd>synchronize shaders after all draws/dispatches</dd>
+   <dt><code>vmfaults</code></dt>
+   <dd>check for VM memory faults via dmesg</dd>
+   <dt><code>zerovram</code></dt>
+   <dd>initialize all memory allocated in VRAM as zero</dd>
+</dl>
+</dd>
+<dt><code>RADV_FORCE_FAMILY</code></dt>
+<dd>create a null device to compile shaders without a AMD GPU (eg. gfx900)</dd>
+<dt><code>RADV_PERFTEST</code></dt>
+<dd>a comma-separated list of named flags, which do various things:
+<dl>
+   <dt><code>aco</code></dt>
+   <dd>enable ACO experimental compiler</dd>
+   <dt><code>bolist</code></dt>
+   <dd>enable the global BO list</dd>
+   <dt><code>cswave32</code></dt>
+   <dd>enable wave32 for compute shaders (GFX10+)</dd>
+   <dt><code>dccmsaa</code></dt>
+   <dd>enable DCC for MSAA images</dd>
+   <dt><code>dfsm</code></dt>
+   <dd>enable dfsm</dd>
+   <dt><code>gewave32</code></dt>
+   <dd>enable wave32 for vertex/tess/geometry shaders (GFX10+)</dd>
+   <dt><code>localbos</code></dt>
+   <dd>enable local BOs</dd>
+   <dt><code>pswave32</code></dt>
+   <dd>enable wave32 for pixel shaders (GFX10+)</dd>
+   <dt><code>shader_ballot</code></dt>
+   <dd>enable shader ballot</dd>
+   <dt><code>tccompatcmask</code></dt>
+   <dd>enable TC-compat cmask for MSAA images</dd>
+</dl>
+</dd>
+<dt><code>RADV_SECURE_COMPILE_THREADS</code></dt>
+<dd>maximum number of secure compile threads (up to 32)</dd>
+<dt><code>RADV_TEX_ANISO</code></dt>
+<dd>force anisotropy filter (up to 16)</dd>
+<dt><code>RADV_TRACE_FILE</code></dt>
+<dd>generate cmdbuffer tracefiles when a GPU hang is detected</dd>
+<dt><code>ACO_DEBUG</code></dt>
+<dd>a comma-separated list of named flags, which do various things:
+<dl>
+   <dt><code>validateir</code></dt>
+   <dd>validate the ACO IR at various points of compilation (enabled by default for debug/debugoptimized builds)</dd>
+   <dt><code>validatera</code></dt>
+   <dd>validate register assignment of ACO IR and catches many RA bugs</dd>
+   <dt><code>perfwarn</code></dt>
+   <dd>abort on some suboptimal code generation</dd>
+</dl>
+</dd>
+</dl>
+
+<h3>radeonsi driver environment variables</h3>
+<dl>
+<dt><code>AMD_DEBUG</code></dt>
+<dd>a comma-separated list of named flags, which do various things:</dd>
+<dl>
+<dd></dd>
+  <h4>Disable features / workaround flags (useful to diagnose an issue):</h4>
+  <dt><code>nodma</code></dt>
+  <dd>Disable SDMA</dd>
+  <dt><code>nodmaclear</code></dt>
+  <dd>Disable SDMA clears</dd>
+  <dt><code>nodmacopyimage</code></dt>
+  <dd>Disable SDMA image copies</dd>
+  <dt><code>zerovram</code></dt>
+  <dd>Clear VRAM allocations.</dd>
+  <dt><code>nodcc</code></dt>
+  <dd>Disable DCC.</dd>
+  <dt><code>nodccclear</code></dt>
+  <dd>Disable DCC fast clear.</dd>
+  <dt><code>nodccfb</code></dt>
+  <dd>Disable separate DCC on the main framebuffer</dd>
+  <dt><code>nodccmsaa</code></dt>
+  <dd>Disable DCC for MSAA</dd>
+  <dt><code>nodpbb</code></dt>
+  <dd>Disable DPBB.</dd>
+  <dt><code>nodfsm</code></dt>
+  <dd>Disable DFSM.</dd>
+  <dt><code>notiling</code></dt>
+  <dd>Disable tiling</dd>
+  <dt><code>nofmask</code></dt>
+  <dd>Disable MSAA compression</dd>
+  <dt><code>nohyperz</code></dt>
+  <dd>Disable Hyper-Z</dd>
+  <dt><code>norbplus</code></dt>
+  <dd>Disable RB+.</dd>
+  <dt><code>no2d</code></dt>
+  <dd>Disable 2D tiling</dd>
+  <h4>Info flags:</h4>
+  <dt><code>info</code></dt>
+  <dd>Print driver information</dd>
+  <dt><code>tex</code></dt>
+  <dd>Print texture info</dd>
+  <dt><code>compute</code></dt>
+  <dd>Print compute info</dd>
+  <dt><code>vm</code></dt>
+  <dd>Print virtual addresses when creating resources</dd>
+  <h4>Print shaders flags:</h4>
+  <dt><code>vs</code></dt>
+  <dd>Print vertex shaders</dd>
+  <dt><code>ps</code></dt>
+  <dd>Print pixel shaders</dd>
+  <dt><code>gs</code></dt>
+  <dd>Print geometry shaders</dd>
+  <dt><code>tcs</code></dt>
+  <dd>Print tessellation control shaders</dd>
+  <dt><code>tes</code></dt>
+  <dd>Print tessellation evaluation shaders</dd>
+  <dt><code>cs</code></dt>
+  <dd>Print compute shaders</dd>
+  <dt><code>noir</code></dt>
+  <dd>Don't print the LLVM IR</dd>
+  <dt><code>nonir</code></dt>
+  <dd>Don't print NIR when printing shaders</dd>
+  <dt><code>noasm</code></dt>
+  <dd>Don't print disassembled shaders</dd>
+  <dt><code>preoptir</code></dt>
+  <dd>Print the LLVM IR before initial optimizations</dd>
+  <h4>Shader compilation tuning flags:</h4>
+  <dt><code>gisel</code></dt>
+  <dd>Enable LLVM global instruction selector.</dd>
+  <dt><code>w32ge</code></dt>
+  <dd>Use Wave32 for vertex, tessellation, and geometry shaders.</dd>
+  <dt><code>w32ps</code></dt>
+  <dd>Use Wave32 for pixel shaders.</dd>
+  <dt><code>w32cs</code></dt>
+  <dd>Use Wave32 for computes shaders.</dd>
+  <dt><code>w64ge</code></dt>
+  <dd>Use Wave64 for vertex, tessellation, and geometry shaders.</dd>
+  <dt><code>w64ps</code></dt>
+  <dd>Use Wave64 for pixel shaders.</dd>
+  <dt><code>w64cs</code></dt>
+  <dd>Use Wave64 for computes shaders.</dd>
+  <dt><code>checkir</code></dt>
+  <dd>Enable additional sanity checks on shader IR</dd>
+  <dt><code>mono</code></dt>
+  <dd>Use old-style monolithic shaders compiled on demand</dd>
+  <dt><code>nooptvariant</code></dt>
+  <dd>Disable compiling optimized shader variants.</dd>
+  <h4>Advanced usage flags:</h4>
+  <dt><code>forcedma</code></dt>
+  <dd>Use SDMA for all operations when possible.</dd>
+  <dt><code>nowc</code></dt>
+  <dd>Disable GTT write combining</dd>
+  <dt><code>check_vm</code></dt>
+  <dd>Check VM faults and dump debug info.</dd>
+  <dt><code>reserve_vmid</code></dt>
+  <dd>Force VMID reservation per context.</dd>
+  <dt><code>nogfx</code></dt>
+  <dd>Disable graphics. Only multimedia compute paths can be used.</dd>
+  <dt><code>nongg</code></dt>
+  <dd>Disable NGG and use the legacy pipeline.</dd>
+  <dt><code>nggc</code></dt>
+  <dd>Always use NGG culling even when it can hurt.</dd>
+  <dt><code>nonggc</code></dt>
+  <dd>Disable NGG culling.</dd>
+  <dt><code>alwayspd</code></dt>
+  <dd>Always enable the primitive discard compute shader.</dd>
+  <dt><code>pd</code></dt>
+  <dd>Enable the primitive discard compute shader for large draw calls.</dd>
+  <dt><code>nopd</code></dt>
+  <dd>Disable the primitive discard compute shader.</dd>
+  <dt><code>switch_on_eop</code></dt>
+  <dd>Program WD/IA to switch on end-of-packet.</dd>
+  <dt><code>nooutoforder</code></dt>
+  <dd>Disable out-of-order rasterization</dd>
+  <dt><code>dpbb</code></dt>
+  <dd>Enable DPBB.</dd>
+  <dt><code>dfsm</code></dt>
+  <dd>Enable DFSM.</dd>
+</dl>
+
 <p>
 Other Gallium drivers have their own environment variables.  These may change
 frequently so the source code should be consulted for details.