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
39 <!ELEMENT engine (option+)>
41 <!-- engine_name_match: A regexp matching the engine name -->
42 <!-- engine_version: A list of version in range format
43 (version 1 to 4 and version 7 to 8 : "1:4,7:8") -->
45 <!ATTLIST engine engine_name_match CDATA #REQUIRED
46 engine_versions CDATA #REQUIRED>
48 <!ELEMENT option EMPTY>
49 <!ATTLIST option name CDATA #REQUIRED
50 value CDATA #REQUIRED>
54 <!-- Please always enable app-specific workarounds for all drivers and
57 <application name="Unigine Sanctuary" executable="Sanctuary">
58 <option name="force_glsl_extensions_warn" value="true" />
59 <option name="disable_blend_func_extended" value="true" />
60 <option name="disable_arb_gpu_shader5" value="true" />
63 <application name="Unigine Tropics" executable="Tropics">
64 <option name="force_glsl_extensions_warn" value="true" />
65 <option name="disable_blend_func_extended" value="true" />
66 <option name="disable_arb_gpu_shader5" value="true" />
69 <application name="Unigine Heaven (32-bit)" executable="heaven_x86">
70 <option name="allow_glsl_extension_directive_midshader" value="true" />
71 <!-- remove dual_color_blend_by_location if 4.1 ever comes out -->
72 <option name="dual_color_blend_by_location" value="true" />
75 <application name="Unigine Heaven (64-bit)" executable="heaven_x64">
76 <option name="allow_glsl_extension_directive_midshader" value="true" />
77 <!-- remove dual_color_blend_by_location if 4.1 ever comes out -->
78 <option name="dual_color_blend_by_location" value="true" />
81 <application name="Unigine Valley (32-bit)" executable="valley_x86">
82 <option name="allow_glsl_extension_directive_midshader" value="true" />
83 <!-- remove dual_color_blend_by_location if 1.1 ever comes out -->
84 <option name="dual_color_blend_by_location" value="true" />
87 <application name="Unigine Valley (64-bit)" executable="valley_x64">
88 <option name="allow_glsl_extension_directive_midshader" value="true" />
89 <!-- remove dual_color_blend_by_location if 1.1 ever comes out -->
90 <option name="dual_color_blend_by_location" value="true" />
93 <application name="Unigine OilRush (32-bit)" executable="OilRush_x86">
94 <option name="disable_blend_func_extended" value="true" />
95 <option name="allow_glsl_extension_directive_midshader" value="true" />
98 <application name="Unigine OilRush (64-bit)" executable="OilRush_x64">
99 <option name="disable_blend_func_extended" value="true" />
100 <option name="allow_glsl_extension_directive_midshader" value="true" />
103 <application name="Savage 2" executable="savage2.bin">
104 <option name="disable_glsl_line_continuations" value="true" />
107 <application name="Topogun (32-bit)" executable="topogun32">
108 <option name="always_have_depth_buffer" value="true" />
111 <application name="Topogun (64-bit)" executable="topogun64">
112 <option name="always_have_depth_buffer" value="true" />
115 <application name="Dead Island (incl. Definitive Edition)" executable="DeadIslandGame">
116 <option name="allow_glsl_extension_directive_midshader" value="true" />
118 <!-- For the Definitive Edition which shares the same executable name -->
119 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
122 <application name="Dead Island Riptide Definitive Edition" executable="DeadIslandRiptideGame">
123 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
126 <application name="Doom 3: BFG" executable="Doom3BFG.exe">
127 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
128 <option name="force_glsl_extensions_warn" value="true" />
131 <application name="Dying Light" executable="DyingLightGame">
132 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
135 <application name="RAGE (64-bit)" executable="Rage64.exe">
136 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
139 <application name="RAGE (32-bit)" executable="Rage.exe">
140 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
143 <application name="Second Life" executable="do-not-directly-run-secondlife-bin">
144 <option name="allow_glsl_extension_directive_midshader" value="true" />
147 <application name="Warsow (32-bit)" executable="warsow.i386">
148 <option name="allow_glsl_extension_directive_midshader" value="true" />
151 <application name="Warsow (64-bit)" executable="warsow.x86_64">
152 <option name="allow_glsl_extension_directive_midshader" value="true" />
155 <application name="Rust" executable="rust">
156 <option name="glsl_zero_init" value="true"/>
159 <application name="Divinity: Original Sin Enhanced Edition" executable="EoCApp">
160 <option name="allow_glsl_extension_directive_midshader" value="true" />
161 <option name="glsl_correct_derivatives_after_discard" value="true" />
162 <option name="force_gl_vendor" value="ATI Technologies, Inc."/>
165 <application name="Metro 2033 Redux / Metro Last Night Redux" executable="metro">
166 <option name="allow_glsl_extension_directive_midshader" value="true" />
169 <application name="Worms W.M.D" executable="Worms W.M.Dx64">
170 <option name="allow_higher_compat_version" value="true" />
173 <application name="Crookz - The Big Heist" executable="Crookz">
174 <option name="allow_higher_compat_version" value="true" />
177 <application name="Tropico 5" executable="Tropico5">
178 <option name="allow_higher_compat_version" value="true" />
181 <application name="Faster than Light (32-bit)" executable="FTL.x86">
182 <option name="allow_higher_compat_version" value="true" />
185 <application name="Faster than Light (64-bit)" executable="FTL.amd64">
186 <option name="allow_higher_compat_version" value="true" />
189 <application name="Final Fantasy VIII: Remastered" executable="FFVIII.exe">
190 <option name="allow_higher_compat_version" value="true" />
193 <application name="The Culling" executable="Victory">
194 <option name="force_glsl_version" value="440" />
197 <application name="Spec Ops: The Line (32-bit)" executable="specops.i386">
198 <option name="force_glsl_abs_sqrt" value="true" />
201 <application name="Spec Ops: The Line (64-bit)" executable="specops">
202 <option name="force_glsl_abs_sqrt" value="true" />
205 <application name="Kerbal Space Program (32-bit)" executable="KSP.x86">
206 <option name="glsl_zero_init" value="true"/>
209 <application name="Kerbal Space Program (64-bit)" executable="KSP.x86_64">
210 <option name="glsl_zero_init" value="true"/>
213 <application name="Rocket League" executable="RocketLeague">
214 <option name="glsl_correct_derivatives_after_discard" value="true"/>
217 <application name="The Witcher 2" executable="witcher2">
218 <option name="glsl_correct_derivatives_after_discard" value="true"/>
221 <application name="Unreal 4 Editor" executable="UE4Editor">
222 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
225 <application name="Observer" executable="TheObserver-Linux-Shipping">
226 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
229 <application name="Steamroll" executable="Steamroll-Linux-Shipping">
230 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
233 <application name="Refunct" executable="Refunct-Linux-Shipping">
234 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
237 <application name="Google Earth VR" executable="Earth.exe">
238 <option name="allow_glsl_builtin_const_expression" value="true"/>
239 <option name="allow_glsl_relaxed_es" value="true"/>
242 <application name="No Mans Sky" executable="NMS.exe">
243 <option name="force_glsl_extensions_warn" value="true" />
244 <option name="allow_glsl_layout_qualifier_on_function_parameters" value="true" />
247 <application name="Wolfenstein The Old Blood" executable="WolfOldBlood_x64.exe">
248 <option name="force_compat_profile" value="true" />
251 <application name="ARMA 3" executable="arma3.x86_64">
252 <option name="glsl_correct_derivatives_after_discard" value="true"/>
255 <application name="Epic Games Launcher" executable="EpicGamesLauncher.exe">
256 <option name="force_compat_profile" value="true" />
259 <application name="GpuTest" executable="GpuTest">
260 <!-- GiMark benchmark from GpuTest does not initialize .w channel of
261 lightDir0 and lightDir1 varyings in the vertex shader while
262 uses it in the fragment shader. -->
263 <option name="glsl_zero_init" value="true"/>
266 <application name="Curse of the Dead Gods" executable="Curse of the Dead Gods.exe">
267 <!-- https://gitlab.freedesktop.org/mesa/mesa/issues/2598 -->
268 <option name="glsl_zero_init" value="true" />
271 <!-- The GL thread whitelist is below, workarounds are above.
272 Keep it that way. -->
274 <application name="Alien Isolation" executable="AlienIsolation">
275 <option name="mesa_glthread" value="true"/>
278 <application name="BioShock Infinite" executable="bioshock.i386">
279 <option name="mesa_glthread" value="true"/>
282 <application name="Borderlands 2" executable="Borderlands2">
283 <option name="mesa_glthread" value="true"/>
286 <application name="Civilization 5" executable="Civ5XP">
287 <option name="mesa_glthread" value="true"/>
289 <application name="Civilization 6" executable="Civ6">
290 <option name="mesa_glthread" value="true"/>
292 <application name="Civilization 6" executable="Civ6Sub">
293 <option name="mesa_glthread" value="true"/>
296 <application name="Dreamfall Chapters" executable="Dreamfall Chapters">
297 <option name="mesa_glthread" value="true"/>
300 <application name="Hitman" executable="HitmanPro">
301 <option name="mesa_glthread" value="true"/>
304 <application name="Renowned Explorers: International Society" executable="abbeycore_steam">
305 <option name="mesa_glthread" value="true"/>
308 <application name="Saints Row 2" executable="saintsrow2.i386">
309 <option name="mesa_glthread" value="true"/>
311 <application name="Saints Row: The Third" executable="SaintsRow3.i386">
312 <option name="mesa_glthread" value="true"/>
314 <application name="Saints Row IV" executable="SaintsRow4.i386">
315 <option name="mesa_glthread" value="true"/>
317 <application name="Saints Row: Gat out of Hell" executable="SaintsRow4GooH.i386">
318 <option name="mesa_glthread" value="true"/>
321 <application name="Sid Meier's: Civilization Beyond Earth" executable="CivBE">
322 <option name="mesa_glthread" value="true"/>
325 <application name="The Witcher 2" executable="witcher2">
326 <option name="mesa_glthread" value="true"/>
329 <application name="American Truck Simulator" executable="amtrucks">
330 <option name="mesa_glthread" value="true"/>
332 <application name="Euro Truck Simulator 2" executable="eurotrucks2">
333 <option name="mesa_glthread" value="true"/>
336 <application name="Overlord" executable="overlord.i386">
337 <option name="mesa_glthread" value="true"/>
339 <application name="Overlord 2" executable="overlord2.i386">
340 <option name="mesa_glthread" value="true"/>
343 <application name="Oil Rush" executable="OilRush_x86">
344 <option name="mesa_glthread" value="true"/>
347 <application name="War Thunder" executable="aces">
348 <option name="mesa_glthread" value="true"/>
350 <application name="War Thunder (Wine)" executable="aces.exe">
351 <option name="mesa_glthread" value="true"/>
354 <application name="Outlast" executable="OLGame.x86_64">
355 <option name="mesa_glthread" value="true"/>
358 <application name="Spec Ops: The Line (32-bit)" executable="specops.i386">
359 <option name="mesa_glthread" value="true"/>
361 <application name="Spec Ops: The Line (64-bit)" executable="specops">
362 <option name="mesa_glthread" value="true"/>
364 <application name="Mount and Blade Warband" executable="mb_warband_linux">
365 <option name="mesa_glthread" value="true"/>
368 <!-- around 18% performance increase in min and avg fps, max fps capped at 60fps. -->
369 <application name="Medieval II: Total War" executable="Medieval2">
370 <option name="mesa_glthread" value="true"/>
373 <!-- min fps ~21 ===> ~27 while standing still in game, also higher gpu load. -->
374 <application name="Carnivores: Dinosaur Hunter Reborn (wine)" executable="Carnivores-master.exe">
375 <option name="mesa_glthread" value="true"/>
378 <!-- around 30% increase in avg fps -->
379 <application name="Far Cry 2 (wine)" executable="farcry2.exe">
380 <option name="mesa_glthread" value="true"/>
383 <application name="Talos Principle" executable="Talos">
384 <option name="mesa_glthread" value="true"/>
386 <application name="Talos Principle (Unrestricted)" executable="Talos_Unrestricted">
387 <option name="mesa_glthread" value="true"/>
390 <!-- roughly 30% increase in fps -->
391 <application name="7 Days To Die (64-bit)" executable="7DaysToDie.x86_64">
392 <option name="mesa_glthread" value="true"/>
394 <application name="7 Days To Die (32-bit)" executable="7DaysToDie.x86">
395 <option name="mesa_glthread" value="true"/>
398 <!-- Emulator tends to have a high CPU load for GPU emulation, so separating the driver overhead yield an improvement. -->
399 <application name="Dolphin Emulator" executable="dolphin-emu">
400 <option name="mesa_glthread" value="true"/>
402 <application name="Citra - Nintendo 3DS Emulator" executable="citra-qt">
403 <option name="mesa_glthread" value="true"/>
405 <application name="Yuzu - Nintendo Switch Emulator" executable="yuzu">
406 <option name="mesa_glthread" value="true"/>
409 <application name="From The Depths" executable="From_The_Depths.x86_64">
410 <option name="mesa_glthread" value="true"/>
413 <!-- #Minimum fps 136 ==> 144 -->
414 <application name="Plague Inc Evolved (32-bit)" executable="PlagueIncEvolved.x86">
415 <option name="mesa_glthread" value="true" />
417 <application name="Plague Inc Evolved (64-bit)" executable="PlagueIncEvolved.x86_64">
418 <option name="mesa_glthread" value="true" />
421 <!-- 10% fps increase -->
422 <application name="Beholder (32-bit)" executable="Beholder.x86">
423 <option name="mesa_glthread" value="true" />
425 <application name="Beholder (64-bit)" executable="Beholder.x86_64">
426 <option name="mesa_glthread" value="true" />
429 <!-- X3 games: 15% avg fps increase while flying in space -->
430 <application name="X3 Reunion" executable="X3R_main">
431 <option name="mesa_glthread" value="true" />
433 <application name="X3 Terran Conflict" executable="X3TR_main">
434 <option name="mesa_glthread" value="true" />
436 <application name="X3 Albion Prelude" executable="X3AP_main">
437 <option name="mesa_glthread" value="true" />
440 <!-- +30% avg fps -->
441 <application name="Borderlands: The Pre-Sequel" executable="BorderlandsPreSequel">
442 <option name="mesa_glthread" value="true" />
444 <application name="Transport Fever" executable="TransportFever">
445 <option name="mesa_glthread" value="true" />
448 <!-- Adaptive sync blacklist follows below: -->
449 <application name="gnome-shell" executable="gnome-shell">
450 <option name="adaptive_sync" value="false" />
452 <application name="Desktop — Plasma" executable="plasmashell">
453 <option name="adaptive_sync" value="false" />
455 <application name="budgie-wm" executable="budgie-wm">
456 <option name="adaptive_sync" value="false" />
458 <application name="kwin_x11" executable="kwin_x11">
459 <option name="adaptive_sync" value="false" />
461 <application name="ksmserver-logout-greeter" executable="ksmserver-logout-greeter">
462 <option name="adaptive_sync" value="false" />
464 <application name="ksmserver-switchuser-greeter" executable="ksmserver-switchuser-greeter">
465 <option name="adaptive_sync" value="false" />
467 <application name="kscreenlocker_greet" executable="kscreenlocker_greet">
468 <option name="adaptive_sync" value="false" />
470 <application name="startplasma" executable="startplasma">
471 <option name="adaptive_sync" value="false" />
473 <application name="sddm-greeter" executable="sddm-greeter">
474 <option name="adaptive_sync" value="false" />
476 <application name="krunner" executable="krunner">
477 <option name="adaptive_sync" value="false" />
479 <application name="spectacle" executable="spectacle">
480 <option name="adaptive_sync" value="false" />
482 <application name="marco" executable="marco">
483 <option name="adaptive_sync" value="false" />
485 <application name="compton" executable="compton">
486 <option name="adaptive_sync" value="false" />
488 <application name="xfwm4" executable="xfwm4">
489 <option name="adaptive_sync" value="false" />
491 <application name="Enlightenment" executable="enlightenment">
492 <option name="adaptive_sync" value="false" />
494 <application name="mutter" executable="mutter">
495 <option name="adaptive_sync" value="false" />
497 <application name="muffin" executable="muffin">
498 <option name="adaptive_sync" value="false" />
500 <application name="compiz" executable="compiz">
501 <option name="adaptive_sync" value="false" />
503 <application name="Firefox" executable="firefox">
504 <option name="adaptive_sync" value="false" />
506 <application name="Firefox ESR" executable="firefox-esr">
507 <option name="adaptive_sync" value="false" />
509 <application name="Chromium" executable="chromium">
510 <option name="adaptive_sync" value="false" />
512 <application name="Google Chrome" executable="chrome">
513 <option name="adaptive_sync" value="false" />
515 <application name="Iceweasel" executable="iceweasel">
516 <option name="adaptive_sync" value="false" />
518 <application name="Epiphany" executable="epiphany">
519 <option name="adaptive_sync" value="false" />
521 <application name="Konqueror" executable="konqueror">
522 <option name="adaptive_sync" value="false" />
524 <application name="Falkon" executable="falkon">
525 <option name="adaptive_sync" value="false" />
527 <application name="Seamonkey" executable="seamonkey">
528 <option name="adaptive_sync" value="false" />
530 <application name="Waterfox" executable="waterfox">
531 <option name="adaptive_sync" value="false" />
533 <application name="VLC Media Player" executable="vlc">
534 <option name="adaptive_sync" value="false" />
536 <application name="Totem" executable="totem">
537 <option name="adaptive_sync" value="false" />
539 <application name="Dragon Player" executable="dragon">
540 <option name="adaptive_sync" value="false" />
542 <application name="mpv" executable="mpv">
543 <option name="adaptive_sync" value="false" />
545 <application name="Xorg" executable="Xorg">
546 <option name="v3d_nonmsaa_texture_size_limit" value="true" />
549 <application name="gfxbench" executable="testfw_app">
550 <option name="vk_x11_override_min_image_count" value="2" />
551 <option name="vk_wsi_force_bgra8_unorm_first" value="true" />
554 <!-- Gallium Nine workarounds: -->
555 <application name="Rayman Legends" executable="Rayman Legends.exe">
556 <option name="dynamic_texture_workaround" value="true" />
559 <!-- Vulkan workarounds: -->
561 <!-- Works around the game not starting (does not deal with
562 the implementation returning more images than the minimum
563 specified by the application. -->
564 <engine engine_name_match="UnrealEngine4.*" engine_versions="0:23">
565 <option name="vk_x11_strict_image_count" value="true" />
568 <!-- DOOM crashes at startup without this workaround if the adaptative sync mode is enabled. -->
569 <application name="DOOM" executable="DOOMx64vk.exe">
570 <option name="vk_x11_strict_image_count" value="true" />
573 <!-- vmwgfx doesn't like full buffer swaps and can't sync to vertical retraces.-->
574 <device driver="vmwgfx">
575 <application name="gnome-shell" executable="gnome-shell">
576 <option name="glx_disable_ext_buffer_age" value="true" />
577 <option name="glx_disable_oml_sync_control" value="true" />
578 <option name="glx_disable_sgi_video_sync" value="true" />
580 <application name="Compiz" executable="Compiz">
581 <option name="glx_disable_ext_buffer_age" value="true" />
582 <option name="glx_disable_oml_sync_control" value="true" />
585 <device driver="radeonsi">
586 <application name="American Truck Simulator" executable="amtrucks">
587 <option name="radeonsi_zerovram" value="true" />
589 <application name="Counter-Strike Global Offensive" executable="csgo_linux64">
590 <option name="radeonsi_zerovram" value="true" />
592 <application name="No Mans Sky" executable="NMS.exe">
593 <option name="radeonsi_zerovram" value="true" />
595 <application name="Rocket League" executable="RocketLeague">
596 <option name="radeonsi_zerovram" value="true" />
598 <application name="DiRT Rally" executable="DirtRally">
599 <option name="radeonsi_prim_restart_tri_strips_only" value="true"/>
601 <application name="Gfx Bench" executable="gfxbench_gl">
602 <!-- Helps offscreen tests -->
603 <option name="mesa_glthread" value="true"/>
605 <!-- YoYo game engine workarounds -->
606 <application name="Monolith demo5" executable="runner" sha1="0c40d509a74e357f0280cb1bd882e9cd94b91bdf">
607 <option name="radeonsi_sync_compile" value="true" />
608 <option name="radeonsi_zerovram" value="true" />
610 <application name="Memoranda" executable="runner" sha1="aa13dec6af63c88f308ebb487693896434a4db56">
611 <option name="radeonsi_sync_compile" value="true" />
613 <application name="Undertale" executable="runner" sha1="dfa302e7ec78641d0696dbbc1a06fc29f34ff1ff">
614 <option name="radeonsi_sync_compile" value="true" />
616 <application name="Turmoil" executable="runner" sha1="cbbf757aaab289859f8dae191a7d63afc30643d9">
617 <option name="radeonsi_sync_compile" value="true" />
619 <application name="Peace, Death!" executable="runner" sha1="5b909f3d21799773370adf084f649848f098234e">
620 <option name="radeonsi_sync_compile" value="true" />
623 <device driver="virtio_gpu">
624 <!-- Some Valve games do a final blit to a BRGA_sRGB surface. On a GLES
625 host this format is not supported and the blit will go to BGRA_UNORM
626 resulting in an unintended linearization and the final output being
628 <application name="Half Life 2" executable="hl2_linux">
629 <option name="gles_emulate_bgra" value="true" />
631 <application name="Portal" executable="hl2_linux">
632 <option name="gles_emulate_bgra" value="true" />
634 <application name="Left 4 Dead 2" executable="hl2_linux">
635 <option name="gles_emulate_bgra" value="true" />
637 <application name="Dota 2" executable="dota2">
638 <option name="gles_emulate_bgra" value="true" />
640 <!-- The Raven Remastered expects a BGRA_sRGB surface and a BGRA_sRGB
641 surface that is capable to do texture views, since on GLES the BGRA
642 format provided by EXT_texture_BGRA8888 has no sRGB counterpart and
643 is not in the list of suppoerted TextureView formats we need to
645 <application name="The Raven Remastered" executable="Raven">
646 <option name="gles_emulate_bgra" value="true" />
649 <device driver="i965">
650 <application name="Middle Earth: Shadow of Mordor" executable="ShadowOfMordor">
651 <option name="vs_position_always_invariant" value="true" />
654 <device driver="iris">
655 <application name="Middle Earth: Shadow of Mordor" executable="ShadowOfMordor">
656 <option name="vs_position_always_invariant" value="true" />