util: use standard name for strncmp()
[mesa.git] / src / util / 00-mesa-defaults.conf
index 5d15b3819fb6b6272abbbdb4a59751d7512c3e1f..ae29d8837d581987d70b666a66e72a8e120f9e21 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" standalone="yes"?>
 <!--
 
 ============================================
@@ -21,10 +22,24 @@ Application bugs worked around in this file:
   built-ins (specifically gl_VertexID), which causes the vertex shaders to fail
   to compile.
 
+* Applications that are not suitable for adapative sync are blacklisted here.
+
 TODO: document the other workarounds.
 
 -->
 
+<!DOCTYPE driconf [
+   <!ELEMENT driconf      (device+)>
+   <!ELEMENT device       (application+)>
+   <!ATTLIST device       driver CDATA #IMPLIED>
+   <!ELEMENT application  (option+)>
+   <!ATTLIST application  name CDATA #REQUIRED
+                          executable CDATA #REQUIRED>
+   <!ELEMENT option       EMPTY>
+   <!ATTLIST option       name CDATA #REQUIRED
+                          value CDATA #REQUIRED>
+]>
+
 <driconf>
     <!-- Please always enable app-specific workarounds for all drivers and
          screens. -->
@@ -96,6 +111,11 @@ TODO: document the other workarounds.
             <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
         </application>
 
+        <application name="Doom 3: BFG" executable="Doom3BFG.exe">
+            <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
+            <option name="force_glsl_extensions_warn" value="true" />
+        </application>
+
         <application name="Dying Light" executable="DyingLightGame">
             <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
         </application>
@@ -195,6 +215,19 @@ TODO: document the other workarounds.
 
         <application name="No Mans Sky" executable="NMS.exe">
             <option name="force_glsl_extensions_warn" value="true" />
+            <option name="allow_glsl_layout_qualifier_on_function_parameters" value="true" />
+        </application>
+
+        <application name="Wolfenstein The Old Blood" executable="WolfOldBlood_x64.exe">
+            <option name="force_compat_profile" value="true" />
+        </application>
+
+        <application name="ARMA 3" executable="arma3.x86_64">
+            <option name="glsl_correct_derivatives_after_discard" value="true"/>
+        </application>
+
+        <application name="Epic Games Launcher" executable="EpicGamesLauncher.exe">
+            <option name="force_compat_profile" value="true" />
         </application>
 
         <!-- The GL thread whitelist is below, workarounds are above.
@@ -218,6 +251,9 @@ TODO: document the other workarounds.
         <application name="Civilization 6" executable="Civ6">
             <option name="mesa_glthread" value="true"/>
         </application>
+        <application name="Civilization 6" executable="Civ6Sub">
+            <option name="mesa_glthread" value="true"/>
+        </application>
 
         <application name="Dreamfall Chapters" executable="Dreamfall Chapters">
             <option name="mesa_glthread" value="true"/>
@@ -305,6 +341,119 @@ TODO: document the other workarounds.
         <application name="Far Cry 2 (wine)" executable="farcry2.exe">
             <option name="mesa_glthread" value="true"/>
         </application>
+
+        <application name="Talos Principle" executable="Talos">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="Talos Principle (Unrestricted)" executable="Talos_Unrestricted">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+
+        <!-- Adaptive sync blacklist follows below: -->
+        <application name="gnome-shell" executable="gnome-shell">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Desktop — Plasma" executable="plasmashell">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="budgie-wm" executable="budgie-wm">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="kwin_x11" executable="kwin_x11">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="ksmserver-logout-greeter" executable="ksmserver-logout-greeter">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="ksmserver-switchuser-greeter" executable="ksmserver-switchuser-greeter">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="kscreenlocker_greet" executable="kscreenlocker_greet">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="startplasma" executable="startplasma">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="sddm-greeter" executable="sddm-greeter">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="krunner" executable="krunner">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="spectacle" executable="spectacle">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="marco" executable="marco">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="compton" executable="compton">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="xfwm4" executable="xfwm4">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Enlightenment" executable="enlightenment">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="mutter" executable="mutter">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="muffin" executable="muffin">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="compiz" executable="compiz">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Firefox" executable="firefox">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Firefox ESR" executable="firefox-esr">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Chromium" executable="chromium">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Google Chrome" executable="chrome">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Iceweasel" executable="iceweasel">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Epiphany" executable="epiphany">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Konqueror" executable="konqueror">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Falkon" executable="falkon">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Seamonkey" executable="seamonkey">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Waterfox" executable="waterfox">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="VLC Media Player" executable="vlc">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Totem" executable="totem">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Dragon Player" executable="dragon">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="mpv" executable="mpv">
+            <option name="adaptive_sync" value="false" />
+        </application>
+        <application name="Xorg" executable="Xorg">
+            <option name="v3d_nonmsaa_texture_size_limit" value="true" />
+        </application>
+
+        <!-- Gallium Nine workarounds: -->
+        <application name="Rayman Legends" executable="Rayman Legends.exe">
+            <option name="dynamic_texture_workaround" value="true" />
+        </application>
     </device>
     <!-- vmwgfx doesn't like full buffer swaps and can't sync to vertical retraces.-->
     <device driver="vmwgfx">
@@ -322,8 +471,49 @@ TODO: document the other workarounds.
         <application name="ARK: Survival Evolved (and unintentionally the UE4 demo template)" executable="ShooterGame">
             <option name="radeonsi_clear_db_cache_before_clear" value="true" />
         </application>
+        <application name="American Truck Simulator" executable="amtrucks">
+            <option name="radeonsi_zerovram" value="true" />
+        </application>
+        <application name="Counter-Strike Global Offensive" executable="csgo_linux64">
+            <option name="radeonsi_zerovram" value="true" />
+        </application>
         <application name="No Mans Sky" executable="NMS.exe">
             <option name="radeonsi_zerovram" value="true" />
         </application>
+        <application name="Civilization 6" executable="Civ6">
+            <option name="radeonsi_enable_nir" value="true"/>
+        </application>
+        <application name="Civilization 6" executable="Civ6Sub">
+            <option name="radeonsi_enable_nir" value="true"/>
+        </application>
+        <application name="DiRT Rally" executable="DirtRally">
+            <option name="radeonsi_prim_restart_tri_strips_only" value="true"/>
+        </application>
+    </device>
+    <device driver="virtio_gpu">
+        <!-- Some Valve games do a final blit to a BRGA_sRGB surface. On a GLES
+        host this format is not supported and the blit will go to BGRA_UNORM
+        resulting in an unintended linearization and the final output being
+        too dark. -->
+        <application name="Half Life 2" executable="hl2_linux">
+            <option name="gles_emulate_bgra" value="true" />
+        </application>
+        <application name="Portal" executable="hl2_linux">
+            <option name="gles_emulate_bgra" value="true" />
+        </application>
+        <application name="Left 4 Dead 2" executable="hl2_linux">
+            <option name="gles_emulate_bgra" value="true" />
+        </application>
+        <application name="Dota 2" executable="dota2">
+            <option name="gles_emulate_bgra" value="true" />
+        </application>
+        <!-- The Raven Remastered expects a BGRA_sRGB surface and a BGRA_sRGB
+         surface that is capable to do texture views, since on GLES the BGRA
+         format provided by EXT_texture_BGRA8888 has no sRGB counterpart and
+         is not in the list of suppoerted TextureView formats we need to
+         emulate this  -->
+        <application name="The Raven Remastered" executable="Raven">
+            <option name="gles_emulate_bgra" value="true" />
+        </application>
     </device>
 </driconf>