docs/envvars: update RADV_FORCE_FAMILY
[mesa.git] / docs / envvars.html
index ce3be81e75418aa89c82a45d97d388f21cbe3a56..0bf95a128436aa9b3bae79af81d84b592a475206 100644 (file)
@@ -201,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>
@@ -210,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>
@@ -290,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>
@@ -378,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>
@@ -525,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.