1<?xml version="1.0" standalone="yes"?> 2<!-- 3 4============================================ 5Application bugs worked around in this file: 6============================================ 7 8* Unigine Heaven 3.0 and older contain too many bugs and can't be supported 9 by drivers that want to be compliant. 10 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 13 shaders. 14 Enabling all extensions for Unigine fixes most issues, but the GLSL version 15 is still 1.10. 16 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 19 in GLSL. 20 21* Dying Light and Dead Island Definitive Edition redeclare vertex shader 22 built-ins (specifically gl_VertexID), which causes the vertex shaders to fail 23 to compile. 24 25* Applications that are not suitable for adapative sync are blacklisted here. 26 27TODO: document the other workarounds. 28 29--> 30 31<!DOCTYPE driconf [ 32 <!ELEMENT driconf (device+)> 33 <!ELEMENT device (application+)> 34 <!ATTLIST device driver CDATA #IMPLIED> 35 <!ELEMENT application (option+)> 36 <!ATTLIST application name CDATA #REQUIRED 37 executable CDATA #REQUIRED> 38 <!ELEMENT option EMPTY> 39 <!ATTLIST option name CDATA #REQUIRED 40 value CDATA #REQUIRED> 41]> 42 43<driconf> 44 <!-- Please always enable app-specific workarounds for all drivers and 45 screens. --> 46 <device> 47 <application name="Unigine Sanctuary" executable="Sanctuary"> 48 <option name="force_glsl_extensions_warn" value="true" /> 49 <option name="disable_blend_func_extended" value="true" /> 50 </application> 51 52 <application name="Unigine Tropics" executable="Tropics"> 53 <option name="force_glsl_extensions_warn" value="true" /> 54 <option name="disable_blend_func_extended" value="true" /> 55 </application> 56 57 <application name="Unigine Heaven (32-bit)" executable="heaven_x86"> 58 <option name="allow_glsl_extension_directive_midshader" value="true" /> 59 <!-- remove dual_color_blend_by_location if 4.1 ever comes out --> 60 <option name="dual_color_blend_by_location" value="true" /> 61 </application> 62 63 <application name="Unigine Heaven (64-bit)" executable="heaven_x64"> 64 <option name="allow_glsl_extension_directive_midshader" value="true" /> 65 <!-- remove dual_color_blend_by_location if 4.1 ever comes out --> 66 <option name="dual_color_blend_by_location" value="true" /> 67 </application> 68 69 <application name="Unigine Valley (32-bit)" executable="valley_x86"> 70 <option name="allow_glsl_extension_directive_midshader" value="true" /> 71 <!-- remove dual_color_blend_by_location if 1.1 ever comes out --> 72 <option name="dual_color_blend_by_location" value="true" /> 73 </application> 74 75 <application name="Unigine Valley (64-bit)" executable="valley_x64"> 76 <option name="allow_glsl_extension_directive_midshader" value="true" /> 77 <!-- remove dual_color_blend_by_location if 1.1 ever comes out --> 78 <option name="dual_color_blend_by_location" value="true" /> 79 </application> 80 81 <application name="Unigine OilRush (32-bit)" executable="OilRush_x86"> 82 <option name="disable_blend_func_extended" value="true" /> 83 <option name="allow_glsl_extension_directive_midshader" value="true" /> 84 </application> 85 86 <application name="Unigine OilRush (64-bit)" executable="OilRush_x64"> 87 <option name="disable_blend_func_extended" value="true" /> 88 <option name="allow_glsl_extension_directive_midshader" value="true" /> 89 </application> 90 91 <application name="Savage 2" executable="savage2.bin"> 92 <option name="disable_glsl_line_continuations" value="true" /> 93 </application> 94 95 <application name="Topogun (32-bit)" executable="topogun32"> 96 <option name="always_have_depth_buffer" value="true" /> 97 </application> 98 99 <application name="Topogun (64-bit)" executable="topogun64"> 100 <option name="always_have_depth_buffer" value="true" /> 101 </application> 102 103 <application name="Dead Island (incl. Definitive Edition)" executable="DeadIslandGame"> 104 <option name="allow_glsl_extension_directive_midshader" value="true" /> 105 106 <!-- For the Definitive Edition which shares the same executable name --> 107 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 108 </application> 109 110 <application name="Dead Island Riptide Definitive Edition" executable="DeadIslandRiptideGame"> 111 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 112 </application> 113 114 <application name="Doom 3: BFG" executable="Doom3BFG.exe"> 115 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 116 <option name="force_glsl_extensions_warn" value="true" /> 117 </application> 118 119 <application name="Dying Light" executable="DyingLightGame"> 120 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 121 </application> 122 123 <application name="RAGE (64-bit)" executable="Rage64.exe"> 124 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 125 </application> 126 127 <application name="RAGE (32-bit)" executable="Rage.exe"> 128 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 129 </application> 130 131 <application name="Second Life" executable="do-not-directly-run-secondlife-bin"> 132 <option name="allow_glsl_extension_directive_midshader" value="true" /> 133 </application> 134 135 <application name="Warsow (32-bit)" executable="warsow.i386"> 136 <option name="allow_glsl_extension_directive_midshader" value="true" /> 137 </application> 138 139 <application name="Warsow (64-bit)" executable="warsow.x86_64"> 140 <option name="allow_glsl_extension_directive_midshader" value="true" /> 141 </application> 142 143 <application name="Rust" executable="rust"> 144 <option name="glsl_zero_init" value="true"/> 145 </application> 146 147 <application name="Divinity: Original Sin Enhanced Edition" executable="EoCApp"> 148 <option name="allow_glsl_extension_directive_midshader" value="true" /> 149 </application> 150 151 <application name="Metro 2033 Redux / Metro Last Night Redux" executable="metro"> 152 <option name="allow_glsl_extension_directive_midshader" value="true" /> 153 </application> 154 155 <application name="Worms W.M.D" executable="Worms W.M.Dx64"> 156 <option name="allow_higher_compat_version" value="true" /> 157 </application> 158 159 <application name="Crookz - The Big Heist" executable="Crookz"> 160 <option name="allow_higher_compat_version" value="true" /> 161 </application> 162 163 <application name="Tropico 5" executable="Tropico5"> 164 <option name="allow_higher_compat_version" value="true" /> 165 </application> 166 167 <application name="The Culling" executable="Victory"> 168 <option name="force_glsl_version" value="440" /> 169 </application> 170 171 <application name="Spec Ops: The Line (32-bit)" executable="specops.i386"> 172 <option name="force_glsl_abs_sqrt" value="true" /> 173 </application> 174 175 <application name="Spec Ops: The Line (64-bit)" executable="specops"> 176 <option name="force_glsl_abs_sqrt" value="true" /> 177 </application> 178 179 <application name="Kerbal Space Program (32-bit)" executable="KSP.x86"> 180 <option name="glsl_zero_init" value="true"/> 181 </application> 182 183 <application name="Kerbal Space Program (64-bit)" executable="KSP.x86_64"> 184 <option name="glsl_zero_init" value="true"/> 185 </application> 186 187 <application name="Rocket League" executable="RocketLeague"> 188 <option name="glsl_correct_derivatives_after_discard" value="true"/> 189 </application> 190 191 <application name="The Witcher 2" executable="witcher2"> 192 <option name="glsl_correct_derivatives_after_discard" value="true"/> 193 </application> 194 195 <application name="Unreal 4 Editor" executable="UE4Editor"> 196 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/> 197 </application> 198 199 <application name="Observer" executable="TheObserver-Linux-Shipping"> 200 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/> 201 </application> 202 203 <application name="Steamroll" executable="Steamroll-Linux-Shipping"> 204 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/> 205 </application> 206 207 <application name="Refunct" executable="Refunct-Linux-Shipping"> 208 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/> 209 </application> 210 211 <application name="Google Earth VR" executable="Earth.exe"> 212 <option name="allow_glsl_builtin_const_expression" value="true"/> 213 <option name="allow_glsl_relaxed_es" value="true"/> 214 </application> 215 216 <application name="No Mans Sky" executable="NMS.exe"> 217 <option name="force_glsl_extensions_warn" value="true" /> 218 <option name="allow_glsl_layout_qualifier_on_function_parameters" value="true" /> 219 </application> 220 221 <application name="Wolfenstein The Old Blood" executable="WolfOldBlood_x64.exe"> 222 <option name="force_compat_profile" value="true" /> 223 </application> 224 225 <application name="ARMA 3" executable="arma3.x86_64"> 226 <option name="glsl_correct_derivatives_after_discard" value="true"/> 227 </application> 228 229 <application name="Epic Games Launcher" executable="EpicGamesLauncher.exe"> 230 <option name="force_compat_profile" value="true" /> 231 </application> 232 233 <!-- The GL thread whitelist is below, workarounds are above. 234 Keep it that way. --> 235 236 <application name="Alien Isolation" executable="AlienIsolation"> 237 <option name="mesa_glthread" value="true"/> 238 </application> 239 240 <application name="BioShock Infinite" executable="bioshock.i386"> 241 <option name="mesa_glthread" value="true"/> 242 </application> 243 244 <application name="Borderlands 2" executable="Borderlands2"> 245 <option name="mesa_glthread" value="true"/> 246 </application> 247 248 <application name="Civilization 5" executable="Civ5XP"> 249 <option name="mesa_glthread" value="true"/> 250 </application> 251 <application name="Civilization 6" executable="Civ6"> 252 <option name="mesa_glthread" value="true"/> 253 </application> 254 <application name="Civilization 6" executable="Civ6Sub"> 255 <option name="mesa_glthread" value="true"/> 256 </application> 257 258 <application name="Dreamfall Chapters" executable="Dreamfall Chapters"> 259 <option name="mesa_glthread" value="true"/> 260 </application> 261 262 <application name="Hitman" executable="HitmanPro"> 263 <option name="mesa_glthread" value="true"/> 264 </application> 265 266 <application name="Renowned Explorers: International Society" executable="abbeycore_steam"> 267 <option name="mesa_glthread" value="true"/> 268 </application> 269 270 <application name="Saints Row 2" executable="saintsrow2.i386"> 271 <option name="mesa_glthread" value="true"/> 272 </application> 273 <application name="Saints Row: The Third" executable="SaintsRow3.i386"> 274 <option name="mesa_glthread" value="true"/> 275 </application> 276 <application name="Saints Row IV" executable="SaintsRow4.i386"> 277 <option name="mesa_glthread" value="true"/> 278 </application> 279 <application name="Saints Row: Gat out of Hell" executable="SaintsRow4GooH.i386"> 280 <option name="mesa_glthread" value="true"/> 281 </application> 282 283 <application name="Sid Meier's: Civilization Beyond Earth" executable="CivBE"> 284 <option name="mesa_glthread" value="true"/> 285 </application> 286 287 <application name="The Witcher 2" executable="witcher2"> 288 <option name="mesa_glthread" value="true"/> 289 </application> 290 291 <application name="American Truck Simulator" executable="amtrucks"> 292 <option name="mesa_glthread" value="true"/> 293 </application> 294 <application name="Euro Truck Simulator 2" executable="eurotrucks2"> 295 <option name="mesa_glthread" value="true"/> 296 </application> 297 298 <application name="Overlord" executable="overlord.i386"> 299 <option name="mesa_glthread" value="true"/> 300 </application> 301 <application name="Overlord 2" executable="overlord2.i386"> 302 <option name="mesa_glthread" value="true"/> 303 </application> 304 305 <application name="Oil Rush" executable="OilRush_x86"> 306 <option name="mesa_glthread" value="true"/> 307 </application> 308 309 <application name="War Thunder" executable="aces"> 310 <option name="mesa_glthread" value="true"/> 311 </application> 312 <application name="War Thunder (Wine)" executable="aces.exe"> 313 <option name="mesa_glthread" value="true"/> 314 </application> 315 316 <application name="Outlast" executable="OLGame.x86_64"> 317 <option name="mesa_glthread" value="true"/> 318 </application> 319 320 <application name="Spec Ops: The Line (32-bit)" executable="specops.i386"> 321 <option name="mesa_glthread" value="true"/> 322 </application> 323 <application name="Spec Ops: The Line (64-bit)" executable="specops"> 324 <option name="mesa_glthread" value="true"/> 325 </application> 326 <application name="Mount and Blade Warband" executable="mb_warband_linux"> 327 <option name="mesa_glthread" value="true"/> 328 </application> 329 330 <!-- around 18% performance increase in min and avg fps, max fps capped at 60fps. --> 331 <application name="Medieval II: Total War" executable="Medieval2"> 332 <option name="mesa_glthread" value="true"/> 333 </application> 334 335 <!-- min fps ~21 ===> ~27 while standing still in game, also higher gpu load. --> 336 <application name="Carnivores: Dinosaur Hunter Reborn (wine)" executable="Carnivores-master.exe"> 337 <option name="mesa_glthread" value="true"/> 338 </application> 339 340 <!-- around 30% increase in avg fps --> 341 <application name="Far Cry 2 (wine)" executable="farcry2.exe"> 342 <option name="mesa_glthread" value="true"/> 343 </application> 344 345 <application name="Talos Principle" executable="Talos"> 346 <option name="mesa_glthread" value="true"/> 347 </application> 348 <application name="Talos Principle (Unrestricted)" executable="Talos_Unrestricted"> 349 <option name="mesa_glthread" value="true"/> 350 </application> 351 352 <!-- Adaptive sync blacklist follows below: --> 353 <application name="gnome-shell" executable="gnome-shell"> 354 <option name="adaptive_sync" value="false" /> 355 </application> 356 <application name="Desktop — Plasma" executable="plasmashell"> 357 <option name="adaptive_sync" value="false" /> 358 </application> 359 <application name="budgie-wm" executable="budgie-wm"> 360 <option name="adaptive_sync" value="false" /> 361 </application> 362 <application name="kwin_x11" executable="kwin_x11"> 363 <option name="adaptive_sync" value="false" /> 364 </application> 365 <application name="ksmserver-logout-greeter" executable="ksmserver-logout-greeter"> 366 <option name="adaptive_sync" value="false" /> 367 </application> 368 <application name="ksmserver-switchuser-greeter" executable="ksmserver-switchuser-greeter"> 369 <option name="adaptive_sync" value="false" /> 370 </application> 371 <application name="kscreenlocker_greet" executable="kscreenlocker_greet"> 372 <option name="adaptive_sync" value="false" /> 373 </application> 374 <application name="startplasma" executable="startplasma"> 375 <option name="adaptive_sync" value="false" /> 376 </application> 377 <application name="sddm-greeter" executable="sddm-greeter"> 378 <option name="adaptive_sync" value="false" /> 379 </application> 380 <application name="krunner" executable="krunner"> 381 <option name="adaptive_sync" value="false" /> 382 </application> 383 <application name="spectacle" executable="spectacle"> 384 <option name="adaptive_sync" value="false" /> 385 </application> 386 <application name="marco" executable="marco"> 387 <option name="adaptive_sync" value="false" /> 388 </application> 389 <application name="compton" executable="compton"> 390 <option name="adaptive_sync" value="false" /> 391 </application> 392 <application name="xfwm4" executable="xfwm4"> 393 <option name="adaptive_sync" value="false" /> 394 </application> 395 <application name="Enlightenment" executable="enlightenment"> 396 <option name="adaptive_sync" value="false" /> 397 </application> 398 <application name="mutter" executable="mutter"> 399 <option name="adaptive_sync" value="false" /> 400 </application> 401 <application name="muffin" executable="muffin"> 402 <option name="adaptive_sync" value="false" /> 403 </application> 404 <application name="compiz" executable="compiz"> 405 <option name="adaptive_sync" value="false" /> 406 </application> 407 <application name="Firefox" executable="firefox"> 408 <option name="adaptive_sync" value="false" /> 409 </application> 410 <application name="Firefox ESR" executable="firefox-esr"> 411 <option name="adaptive_sync" value="false" /> 412 </application> 413 <application name="Chromium" executable="chromium"> 414 <option name="adaptive_sync" value="false" /> 415 </application> 416 <application name="Google Chrome" executable="chrome"> 417 <option name="adaptive_sync" value="false" /> 418 </application> 419 <application name="Iceweasel" executable="iceweasel"> 420 <option name="adaptive_sync" value="false" /> 421 </application> 422 <application name="Epiphany" executable="epiphany"> 423 <option name="adaptive_sync" value="false" /> 424 </application> 425 <application name="Konqueror" executable="konqueror"> 426 <option name="adaptive_sync" value="false" /> 427 </application> 428 <application name="Falkon" executable="falkon"> 429 <option name="adaptive_sync" value="false" /> 430 </application> 431 <application name="Seamonkey" executable="seamonkey"> 432 <option name="adaptive_sync" value="false" /> 433 </application> 434 <application name="Waterfox" executable="waterfox"> 435 <option name="adaptive_sync" value="false" /> 436 </application> 437 <application name="VLC Media Player" executable="vlc"> 438 <option name="adaptive_sync" value="false" /> 439 </application> 440 <application name="Totem" executable="totem"> 441 <option name="adaptive_sync" value="false" /> 442 </application> 443 <application name="Dragon Player" executable="dragon"> 444 <option name="adaptive_sync" value="false" /> 445 </application> 446 <application name="mpv" executable="mpv"> 447 <option name="adaptive_sync" value="false" /> 448 </application> 449 450 <!-- Gallium Nine workarounds: --> 451 <application name="Rayman Legends" executable="Rayman Legends.exe"> 452 <option name="dynamic_texture_workaround" value="true" /> 453 </application> 454 </device> 455 <!-- vmwgfx doesn't like full buffer swaps and can't sync to vertical retraces.--> 456 <device driver="vmwgfx"> 457 <application name="gnome-shell" executable="gnome-shell"> 458 <option name="glx_disable_ext_buffer_age" value="true" /> 459 <option name="glx_disable_oml_sync_control" value="true" /> 460 <option name="glx_disable_sgi_video_sync" value="true" /> 461 </application> 462 <application name="Compiz" executable="Compiz"> 463 <option name="glx_disable_ext_buffer_age" value="true" /> 464 <option name="glx_disable_oml_sync_control" value="true" /> 465 </application> 466 </device> 467 <device driver="radeonsi"> 468 <application name="ARK: Survival Evolved (and unintentionally the UE4 demo template)" executable="ShooterGame"> 469 <option name="radeonsi_clear_db_cache_before_clear" value="true" /> 470 </application> 471 <application name="Counter-Strike Global Offensive" executable="csgo_linux64"> 472 <option name="radeonsi_zerovram" value="true" /> 473 </application> 474 <application name="No Mans Sky" executable="NMS.exe"> 475 <option name="radeonsi_zerovram" value="true" /> 476 </application> 477 <application name="Civilization 6" executable="Civ6"> 478 <option name="radeonsi_enable_nir" value="true"/> 479 </application> 480 <application name="Civilization 6" executable="Civ6Sub"> 481 <option name="radeonsi_enable_nir" value="true"/> 482 </application> 483 </device> 484</driconf> 485