1 <?xml version="1.0" standalone="yes"?>
4 ============================================
5 Application bugs worked around in this file:
6 ============================================
8 * Unigine Heaven 3.0 and older contain too many bugs and can't be supported
9 by drivers that want to be compliant.
11 * Various Unigine products don't use the #version and #extension GLSL
12 directives, meaning they only get GLSL 1.10 and no extensions for their
14 Enabling all extensions for Unigine fixes most issues, but the GLSL version
17 * If ARB_sample_shading is supported, Unigine Heaven 4.0 and Valley 1.0 uses
18 an #extension directive in the middle of its shaders, which is illegal
21 * Dying Light and Dead Island Definitive Edition redeclare vertex shader
22 built-ins (specifically gl_VertexID), which causes the vertex shaders to fail
25 * Applications that are not suitable for adapative sync are blacklisted here.
27 TODO: document the other workarounds.
32 <!ELEMENT driconf (device+)>
33 <!ELEMENT device (application | engine)+>
34 <!ATTLIST device driver CDATA #IMPLIED>
35 <!ELEMENT application (option+)>
36 <!ATTLIST application name CDATA #REQUIRED
37 executable CDATA #REQUIRED>
38 <!ELEMENT engine (option+)>
40 <!-- engine_name_match: A regexp matching the engine name -->
41 <!-- engine_version: A list of version in range format
42 (version 1 to 4 and version 7 to 8 : "1:4,7:8") -->
44 <!ATTLIST engine engine_name_match CDATA #REQUIRED
45 engine_versions CDATA #REQUIRED>
47 <!ELEMENT option EMPTY>
48 <!ATTLIST option name CDATA #REQUIRED
49 value CDATA #REQUIRED>
53 <!-- Please always enable app-specific workarounds for all drivers and
56 <application name="Unigine Sanctuary" executable="Sanctuary">
57 <option name="force_glsl_extensions_warn" value="true" />
58 <option name="disable_blend_func_extended" value="true" />
61 <application name="Unigine Tropics" executable="Tropics">
62 <option name="force_glsl_extensions_warn" value="true" />
63 <option name="disable_blend_func_extended" value="true" />
66 <application name="Unigine Heaven (32-bit)" executable="heaven_x86">
67 <option name="allow_glsl_extension_directive_midshader" value="true" />
68 <!-- remove dual_color_blend_by_location if 4.1 ever comes out -->
69 <option name="dual_color_blend_by_location" value="true" />
72 <application name="Unigine Heaven (64-bit)" executable="heaven_x64">
73 <option name="allow_glsl_extension_directive_midshader" value="true" />
74 <!-- remove dual_color_blend_by_location if 4.1 ever comes out -->
75 <option name="dual_color_blend_by_location" value="true" />
78 <application name="Unigine Valley (32-bit)" executable="valley_x86">
79 <option name="allow_glsl_extension_directive_midshader" value="true" />
80 <!-- remove dual_color_blend_by_location if 1.1 ever comes out -->
81 <option name="dual_color_blend_by_location" value="true" />
84 <application name="Unigine Valley (64-bit)" executable="valley_x64">
85 <option name="allow_glsl_extension_directive_midshader" value="true" />
86 <!-- remove dual_color_blend_by_location if 1.1 ever comes out -->
87 <option name="dual_color_blend_by_location" value="true" />
90 <application name="Unigine OilRush (32-bit)" executable="OilRush_x86">
91 <option name="disable_blend_func_extended" value="true" />
92 <option name="allow_glsl_extension_directive_midshader" value="true" />
95 <application name="Unigine OilRush (64-bit)" executable="OilRush_x64">
96 <option name="disable_blend_func_extended" value="true" />
97 <option name="allow_glsl_extension_directive_midshader" value="true" />
100 <application name="Savage 2" executable="savage2.bin">
101 <option name="disable_glsl_line_continuations" value="true" />
104 <application name="Topogun (32-bit)" executable="topogun32">
105 <option name="always_have_depth_buffer" value="true" />
108 <application name="Topogun (64-bit)" executable="topogun64">
109 <option name="always_have_depth_buffer" value="true" />
112 <application name="Dead Island (incl. Definitive Edition)" executable="DeadIslandGame">
113 <option name="allow_glsl_extension_directive_midshader" value="true" />
115 <!-- For the Definitive Edition which shares the same executable name -->
116 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
119 <application name="Dead Island Riptide Definitive Edition" executable="DeadIslandRiptideGame">
120 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
123 <application name="Doom 3: BFG" executable="Doom3BFG.exe">
124 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
125 <option name="force_glsl_extensions_warn" value="true" />
128 <application name="Dying Light" executable="DyingLightGame">
129 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
132 <application name="RAGE (64-bit)" executable="Rage64.exe">
133 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
136 <application name="RAGE (32-bit)" executable="Rage.exe">
137 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
140 <application name="Second Life" executable="do-not-directly-run-secondlife-bin">
141 <option name="allow_glsl_extension_directive_midshader" value="true" />
144 <application name="Warsow (32-bit)" executable="warsow.i386">
145 <option name="allow_glsl_extension_directive_midshader" value="true" />
148 <application name="Warsow (64-bit)" executable="warsow.x86_64">
149 <option name="allow_glsl_extension_directive_midshader" value="true" />
152 <application name="Rust" executable="rust">
153 <option name="glsl_zero_init" value="true"/>
156 <application name="Divinity: Original Sin Enhanced Edition" executable="EoCApp">
157 <option name="allow_glsl_extension_directive_midshader" value="true" />
158 <option name="glsl_correct_derivatives_after_discard" value="true" />
159 <option name="force_gl_vendor" value="ATI Technologies, Inc."/>
162 <application name="Metro 2033 Redux / Metro Last Night Redux" executable="metro">
163 <option name="allow_glsl_extension_directive_midshader" value="true" />
166 <application name="Worms W.M.D" executable="Worms W.M.Dx64">
167 <option name="allow_higher_compat_version" value="true" />
170 <application name="Crookz - The Big Heist" executable="Crookz">
171 <option name="allow_higher_compat_version" value="true" />
174 <application name="Tropico 5" executable="Tropico5">
175 <option name="allow_higher_compat_version" value="true" />
178 <application name="The Culling" executable="Victory">
179 <option name="force_glsl_version" value="440" />
182 <application name="Spec Ops: The Line (32-bit)" executable="specops.i386">
183 <option name="force_glsl_abs_sqrt" value="true" />
186 <application name="Spec Ops: The Line (64-bit)" executable="specops">
187 <option name="force_glsl_abs_sqrt" value="true" />
190 <application name="Kerbal Space Program (32-bit)" executable="KSP.x86">
191 <option name="glsl_zero_init" value="true"/>
194 <application name="Kerbal Space Program (64-bit)" executable="KSP.x86_64">
195 <option name="glsl_zero_init" value="true"/>
198 <application name="Rocket League" executable="RocketLeague">
199 <option name="glsl_correct_derivatives_after_discard" value="true"/>
202 <application name="The Witcher 2" executable="witcher2">
203 <option name="glsl_correct_derivatives_after_discard" value="true"/>
206 <application name="Unreal 4 Editor" executable="UE4Editor">
207 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
210 <application name="Observer" executable="TheObserver-Linux-Shipping">
211 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
214 <application name="Steamroll" executable="Steamroll-Linux-Shipping">
215 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
218 <application name="Refunct" executable="Refunct-Linux-Shipping">
219 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
222 <application name="Google Earth VR" executable="Earth.exe">
223 <option name="allow_glsl_builtin_const_expression" value="true"/>
224 <option name="allow_glsl_relaxed_es" value="true"/>
227 <application name="No Mans Sky" executable="NMS.exe">
228 <option name="force_glsl_extensions_warn" value="true" />
229 <option name="allow_glsl_layout_qualifier_on_function_parameters" value="true" />
232 <application name="Wolfenstein The Old Blood" executable="WolfOldBlood_x64.exe">
233 <option name="force_compat_profile" value="true" />
236 <application name="ARMA 3" executable="arma3.x86_64">
237 <option name="glsl_correct_derivatives_after_discard" value="true"/>
240 <application name="Epic Games Launcher" executable="EpicGamesLauncher.exe">
241 <option name="force_compat_profile" value="true" />
244 <!-- The GL thread whitelist is below, workarounds are above.
245 Keep it that way. -->
247 <application name="Alien Isolation" executable="AlienIsolation">
248 <option name="mesa_glthread" value="true"/>
251 <application name="BioShock Infinite" executable="bioshock.i386">
252 <option name="mesa_glthread" value="true"/>
255 <application name="Borderlands 2" executable="Borderlands2">
256 <option name="mesa_glthread" value="true"/>
259 <application name="Civilization 5" executable="Civ5XP">
260 <option name="mesa_glthread" value="true"/>
262 <application name="Civilization 6" executable="Civ6">
263 <option name="mesa_glthread" value="true"/>
265 <application name="Civilization 6" executable="Civ6Sub">
266 <option name="mesa_glthread" value="true"/>
269 <application name="Dreamfall Chapters" executable="Dreamfall Chapters">
270 <option name="mesa_glthread" value="true"/>
273 <application name="Hitman" executable="HitmanPro">
274 <option name="mesa_glthread" value="true"/>
277 <application name="Renowned Explorers: International Society" executable="abbeycore_steam">
278 <option name="mesa_glthread" value="true"/>
281 <application name="Saints Row 2" executable="saintsrow2.i386">
282 <option name="mesa_glthread" value="true"/>
284 <application name="Saints Row: The Third" executable="SaintsRow3.i386">
285 <option name="mesa_glthread" value="true"/>
287 <application name="Saints Row IV" executable="SaintsRow4.i386">
288 <option name="mesa_glthread" value="true"/>
290 <application name="Saints Row: Gat out of Hell" executable="SaintsRow4GooH.i386">
291 <option name="mesa_glthread" value="true"/>
294 <application name="Sid Meier's: Civilization Beyond Earth" executable="CivBE">
295 <option name="mesa_glthread" value="true"/>
298 <application name="The Witcher 2" executable="witcher2">
299 <option name="mesa_glthread" value="true"/>
302 <application name="American Truck Simulator" executable="amtrucks">
303 <option name="mesa_glthread" value="true"/>
305 <application name="Euro Truck Simulator 2" executable="eurotrucks2">
306 <option name="mesa_glthread" value="true"/>
309 <application name="Overlord" executable="overlord.i386">
310 <option name="mesa_glthread" value="true"/>
312 <application name="Overlord 2" executable="overlord2.i386">
313 <option name="mesa_glthread" value="true"/>
316 <application name="Oil Rush" executable="OilRush_x86">
317 <option name="mesa_glthread" value="true"/>
320 <application name="War Thunder" executable="aces">
321 <option name="mesa_glthread" value="true"/>
323 <application name="War Thunder (Wine)" executable="aces.exe">
324 <option name="mesa_glthread" value="true"/>
327 <application name="Outlast" executable="OLGame.x86_64">
328 <option name="mesa_glthread" value="true"/>
331 <application name="Spec Ops: The Line (32-bit)" executable="specops.i386">
332 <option name="mesa_glthread" value="true"/>
334 <application name="Spec Ops: The Line (64-bit)" executable="specops">
335 <option name="mesa_glthread" value="true"/>
337 <application name="Mount and Blade Warband" executable="mb_warband_linux">
338 <option name="mesa_glthread" value="true"/>
341 <!-- around 18% performance increase in min and avg fps, max fps capped at 60fps. -->
342 <application name="Medieval II: Total War" executable="Medieval2">
343 <option name="mesa_glthread" value="true"/>
346 <!-- min fps ~21 ===> ~27 while standing still in game, also higher gpu load. -->
347 <application name="Carnivores: Dinosaur Hunter Reborn (wine)" executable="Carnivores-master.exe">
348 <option name="mesa_glthread" value="true"/>
351 <!-- around 30% increase in avg fps -->
352 <application name="Far Cry 2 (wine)" executable="farcry2.exe">
353 <option name="mesa_glthread" value="true"/>
356 <application name="Talos Principle" executable="Talos">
357 <option name="mesa_glthread" value="true"/>
359 <application name="Talos Principle (Unrestricted)" executable="Talos_Unrestricted">
360 <option name="mesa_glthread" value="true"/>
363 <!-- Adaptive sync blacklist follows below: -->
364 <application name="gnome-shell" executable="gnome-shell">
365 <option name="adaptive_sync" value="false" />
367 <application name="Desktop — Plasma" executable="plasmashell">
368 <option name="adaptive_sync" value="false" />
370 <application name="budgie-wm" executable="budgie-wm">
371 <option name="adaptive_sync" value="false" />
373 <application name="kwin_x11" executable="kwin_x11">
374 <option name="adaptive_sync" value="false" />
376 <application name="ksmserver-logout-greeter" executable="ksmserver-logout-greeter">
377 <option name="adaptive_sync" value="false" />
379 <application name="ksmserver-switchuser-greeter" executable="ksmserver-switchuser-greeter">
380 <option name="adaptive_sync" value="false" />
382 <application name="kscreenlocker_greet" executable="kscreenlocker_greet">
383 <option name="adaptive_sync" value="false" />
385 <application name="startplasma" executable="startplasma">
386 <option name="adaptive_sync" value="false" />
388 <application name="sddm-greeter" executable="sddm-greeter">
389 <option name="adaptive_sync" value="false" />
391 <application name="krunner" executable="krunner">
392 <option name="adaptive_sync" value="false" />
394 <application name="spectacle" executable="spectacle">
395 <option name="adaptive_sync" value="false" />
397 <application name="marco" executable="marco">
398 <option name="adaptive_sync" value="false" />
400 <application name="compton" executable="compton">
401 <option name="adaptive_sync" value="false" />
403 <application name="xfwm4" executable="xfwm4">
404 <option name="adaptive_sync" value="false" />
406 <application name="Enlightenment" executable="enlightenment">
407 <option name="adaptive_sync" value="false" />
409 <application name="mutter" executable="mutter">
410 <option name="adaptive_sync" value="false" />
412 <application name="muffin" executable="muffin">
413 <option name="adaptive_sync" value="false" />
415 <application name="compiz" executable="compiz">
416 <option name="adaptive_sync" value="false" />
418 <application name="Firefox" executable="firefox">
419 <option name="adaptive_sync" value="false" />
421 <application name="Firefox ESR" executable="firefox-esr">
422 <option name="adaptive_sync" value="false" />
424 <application name="Chromium" executable="chromium">
425 <option name="adaptive_sync" value="false" />
427 <application name="Google Chrome" executable="chrome">
428 <option name="adaptive_sync" value="false" />
430 <application name="Iceweasel" executable="iceweasel">
431 <option name="adaptive_sync" value="false" />
433 <application name="Epiphany" executable="epiphany">
434 <option name="adaptive_sync" value="false" />
436 <application name="Konqueror" executable="konqueror">
437 <option name="adaptive_sync" value="false" />
439 <application name="Falkon" executable="falkon">
440 <option name="adaptive_sync" value="false" />
442 <application name="Seamonkey" executable="seamonkey">
443 <option name="adaptive_sync" value="false" />
445 <application name="Waterfox" executable="waterfox">
446 <option name="adaptive_sync" value="false" />
448 <application name="VLC Media Player" executable="vlc">
449 <option name="adaptive_sync" value="false" />
451 <application name="Totem" executable="totem">
452 <option name="adaptive_sync" value="false" />
454 <application name="Dragon Player" executable="dragon">
455 <option name="adaptive_sync" value="false" />
457 <application name="mpv" executable="mpv">
458 <option name="adaptive_sync" value="false" />
460 <application name="Xorg" executable="Xorg">
461 <option name="v3d_nonmsaa_texture_size_limit" value="true" />
464 <application name="gfxbench" executable="testfw_app">
465 <option name="vk_x11_override_min_image_count" value="2" />
468 <!-- Gallium Nine workarounds: -->
469 <application name="Rayman Legends" executable="Rayman Legends.exe">
470 <option name="dynamic_texture_workaround" value="true" />
473 <!-- Vulkan workarounds: -->
475 <!-- Works around the game not starting (does not deal with
476 the implementation returning more images than the minimum
477 specified by the application. -->
478 <engine engine_name_match="UnrealEngine4.*" engine_versions="0:21">
479 <option name="vk_x11_strict_image_count" value="true" />
482 <!-- vmwgfx doesn't like full buffer swaps and can't sync to vertical retraces.-->
483 <device driver="vmwgfx">
484 <application name="gnome-shell" executable="gnome-shell">
485 <option name="glx_disable_ext_buffer_age" value="true" />
486 <option name="glx_disable_oml_sync_control" value="true" />
487 <option name="glx_disable_sgi_video_sync" value="true" />
489 <application name="Compiz" executable="Compiz">
490 <option name="glx_disable_ext_buffer_age" value="true" />
491 <option name="glx_disable_oml_sync_control" value="true" />
494 <device driver="radeonsi">
495 <application name="ARK: Survival Evolved (and unintentionally the UE4 demo template)" executable="ShooterGame">
496 <option name="radeonsi_clear_db_cache_before_clear" value="true" />
498 <application name="American Truck Simulator" executable="amtrucks">
499 <option name="radeonsi_zerovram" value="true" />
501 <application name="Counter-Strike Global Offensive" executable="csgo_linux64">
502 <option name="radeonsi_zerovram" value="true" />
504 <application name="No Mans Sky" executable="NMS.exe">
505 <option name="radeonsi_zerovram" value="true" />
507 <application name="Civilization 6" executable="Civ6">
508 <option name="radeonsi_enable_nir" value="true"/>
510 <application name="Civilization 6" executable="Civ6Sub">
511 <option name="radeonsi_enable_nir" value="true"/>
513 <application name="DiRT Rally" executable="DirtRally">
514 <option name="radeonsi_prim_restart_tri_strips_only" value="true"/>
517 <device driver="virtio_gpu">
518 <!-- Some Valve games do a final blit to a BRGA_sRGB surface. On a GLES
519 host this format is not supported and the blit will go to BGRA_UNORM
520 resulting in an unintended linearization and the final output being
522 <application name="Half Life 2" executable="hl2_linux">
523 <option name="gles_emulate_bgra" value="true" />
525 <application name="Portal" executable="hl2_linux">
526 <option name="gles_emulate_bgra" value="true" />
528 <application name="Left 4 Dead 2" executable="hl2_linux">
529 <option name="gles_emulate_bgra" value="true" />
531 <application name="Dota 2" executable="dota2">
532 <option name="gles_emulate_bgra" value="true" />
534 <!-- The Raven Remastered expects a BGRA_sRGB surface and a BGRA_sRGB
535 surface that is capable to do texture views, since on GLES the BGRA
536 format provided by EXT_texture_BGRA8888 has no sRGB counterpart and
537 is not in the list of suppoerted TextureView formats we need to
539 <application name="The Raven Remastered" executable="Raven">
540 <option name="gles_emulate_bgra" value="true" />