xmlconfig: remove GL type dependencies
[mesa.git] / src / mesa / drivers / dri / common / drirc
index a13941f681e7f7314998464e5df646d65203a937..30ac9c839be57eb4e2a661408dd41d5753b23554 100644 (file)
+<!--
+
+============================================
+Application bugs worked around in this file:
+============================================
+
+* Unigine Heaven 3.0 and older contain too many bugs and can't be supported
+  by drivers that want to be compliant.
+
+* Various Unigine products don't use the #version and #extension GLSL
+  directives, meaning they only get GLSL 1.10 and no extensions for their
+  shaders.
+  Enabling all extensions for Unigine fixes most issues, but the GLSL version
+  is still 1.10.
+
+* If ARB_sample_shading is supported, Unigine Heaven 4.0 and Valley 1.0 uses
+  an #extension directive in the middle of its shaders, which is illegal
+  in GLSL.
+
+* Dying Light and Dead Island Definitive Edition redeclare vertex shader
+  built-ins (specifically gl_VertexID), which causes the vertex shaders to fail
+  to compile.
+
+TODO: document the other workarounds.
+
+-->
+
 <driconf>
-    <device screen="0" driver="i965">
+    <!-- Please always enable app-specific workarounds for all drivers and
+         screens. -->
+    <device>
         <application name="Unigine Sanctuary" executable="Sanctuary">
             <option name="force_glsl_extensions_warn" value="true" />
             <option name="disable_blend_func_extended" value="true" />
-       </application>
+        </application>
+
         <application name="Unigine Tropics" executable="Tropics">
             <option name="force_glsl_extensions_warn" value="true" />
             <option name="disable_blend_func_extended" value="true" />
-       </application>
+        </application>
+
         <application name="Unigine Heaven (32-bit)" executable="heaven_x86">
-            <option name="force_glsl_extensions_warn" value="true" />
-            <option name="disable_blend_func_extended" value="true" />
-       </application>
+            <option name="allow_glsl_extension_directive_midshader" value="true" />
+            <!-- remove dual_color_blend_by_location if 4.1 ever comes out -->
+            <option name="dual_color_blend_by_location" value="true" />
+        </application>
+
         <application name="Unigine Heaven (64-bit)" executable="heaven_x64">
-            <option name="force_glsl_extensions_warn" value="true" />
-            <option name="disable_blend_func_extended" value="true" />
-       </application>
+            <option name="allow_glsl_extension_directive_midshader" value="true" />
+            <!-- remove dual_color_blend_by_location if 4.1 ever comes out -->
+            <option name="dual_color_blend_by_location" value="true" />
+        </application>
+
+        <application name="Unigine Valley (32-bit)" executable="valley_x86">
+            <option name="allow_glsl_extension_directive_midshader" value="true" />
+            <!-- remove dual_color_blend_by_location if 1.1 ever comes out -->
+            <option name="dual_color_blend_by_location" value="true" />
+        </application>
+
+        <application name="Unigine Valley (64-bit)" executable="valley_x64">
+            <option name="allow_glsl_extension_directive_midshader" value="true" />
+            <!-- remove dual_color_blend_by_location if 1.1 ever comes out -->
+            <option name="dual_color_blend_by_location" value="true" />
+        </application>
+
         <application name="Unigine OilRush (32-bit)" executable="OilRush_x86">
             <option name="disable_blend_func_extended" value="true" />
-       </application>
+            <option name="allow_glsl_extension_directive_midshader" value="true" />
+        </application>
+
         <application name="Unigine OilRush (64-bit)" executable="OilRush_x64">
             <option name="disable_blend_func_extended" value="true" />
-       </application>
+            <option name="allow_glsl_extension_directive_midshader" value="true" />
+        </application>
+
         <application name="Savage 2" executable="savage2.bin">
             <option name="disable_glsl_line_continuations" value="true" />
         </application>
+
+        <application name="Topogun (32-bit)" executable="topogun32">
+            <option name="always_have_depth_buffer" value="true" />
+        </application>
+
+        <application name="Topogun (64-bit)" executable="topogun64">
+            <option name="always_have_depth_buffer" value="true" />
+        </application>
+
+        <application name="Dead Island (incl. Definitive Edition)" executable="DeadIslandGame">
+            <option name="allow_glsl_extension_directive_midshader" value="true" />
+
+            <!-- For the Definitive Edition which shares the same executable name -->
+            <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
+        </application>
+
+        <application name="Dead Island Riptide Definitive Edition" executable="DeadIslandRiptideGame">
+            <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
+        </application>
+
+        <application name="Dying Light" executable="DyingLightGame">
+            <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
+        </application>
+
+        <application name="Second Life" executable="do-not-directly-run-secondlife-bin">
+            <option name="allow_glsl_extension_directive_midshader" value="true" />
+        </application>
+
+        <application name="Warsow (32-bit)" executable="warsow.i386">
+            <option name="allow_glsl_extension_directive_midshader" value="true" />
+        </application>
+
+        <application name="Warsow (64-bit)" executable="warsow.x86_64">
+            <option name="allow_glsl_extension_directive_midshader" value="true" />
+        </application>
+
+        <application name="Rust" executable="rust">
+            <option name="glsl_zero_init" value="true"/>
+        </application>
+
+        <application name="Divinity: Original Sin Enhanced Edition" executable="EoCApp">
+            <option name="allow_glsl_extension_directive_midshader" value="true" />
+        </application>
+
+        <application name="Worms W.M.D" executable="Worms W.M.Dx64">
+            <option name="allow_higher_compat_version" value="true" />
+        </application>
+
+        <application name="Crookz - The Big Heist" executable="Crookz">
+            <option name="allow_higher_compat_version" value="true" />
+        </application>
+
+        <application name="Tropico 5" executable="Tropico5">
+            <option name="allow_higher_compat_version" value="true" />
+        </application>
+
+        <application name="The Culling" executable="Victory">
+            <option name="force_glsl_version" value="440" />
+        </application>
+
+        <application name="Spec Ops: The Line (32-bit)" executable="specops.i386">
+            <option name="force_glsl_abs_sqrt" value="true" />
+        </application>
+
+        <application name="Spec Ops: The Line (64-bit)" executable="specops">
+            <option name="force_glsl_abs_sqrt" value="true" />
+        </application>
+
+        <application name="Kerbal Space Program (32-bit)" executable="KSP.x86">
+            <option name="glsl_zero_init" value="true"/>
+        </application>
+
+        <application name="Kerbal Space Program (64-bit)" executable="KSP.x86_64">
+            <option name="glsl_zero_init" value="true"/>
+        </application>
+
+        <application name="Rocket League" executable="RocketLeague">
+            <option name="glsl_correct_derivatives_after_discard" value="true"/>
+        </application>
+
+        <application name="The Witcher 2" executable="witcher2">
+            <option name="glsl_correct_derivatives_after_discard" value="true"/>
+        </application>
+
+        <!-- The GL thread whitelist is below, workarounds are above.
+             Keep it that way. -->
+
+        <application name="Alien Isolation" executable="AlienIsolation">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="Civilization 6" executable="Civ6">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="BioShock Infinite" executable="bioshock.i386">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="Borderlands 2" executable="Borderlands2">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="Civilization 5" executable="Civ5XP">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="The Witcher 2" executable="witcher2">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="American Truck Simulator" executable="amtrucks">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="Euro Truck Simulator 2" executable="eurotrucks2">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="Overlord" executable="overlord.i386">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="Overlord 2" executable="overlord2.i386">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="Oil Rush" executable="OilRush_x86">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="War Thunder" executable="aces">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="Saints Row 2" executable="saintsrow2.i386">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+        <application name="War Thunder (Wine)" executable="aces.exe">
+            <option name="mesa_glthread" value="true"/>
+        </application>
+    </device>
+    <!-- vmwgfx doesn't like full buffer swaps and can't sync to vertical retraces.-->
+    <device driver="vmwgfx">
+        <application name="gnome-shell" executable="gnome-shell">
+            <option name="glx_disable_ext_buffer_age" value="true" />
+            <option name="glx_disable_oml_sync_control" value="true" />
+        </application>
+       <application name="Compiz" executable="Compiz">
+            <option name="glx_disable_ext_buffer_age" value="true" />
+           <option name="glx_disable_oml_sync_control" value="true" />
+        </application>
     </device>
 </driconf>