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 denylisted here. 26 27TODO: document the other workarounds. 28 29--> 30 31<!DOCTYPE driconf [ 32 <!ELEMENT driconf (device+)> 33 <!ELEMENT device (application | engine)+> 34 <!ATTLIST device driver CDATA #IMPLIED 35 device CDATA #IMPLIED> 36 <!ELEMENT application (option+)> 37 <!ATTLIST application name CDATA #REQUIRED 38 executable CDATA #IMPLIED 39 executable_regexp CDATA #IMPLIED 40 sha1 CDATA #IMPLIED 41 application_name_match CDATA #IMPLIED 42 application_versions CDATA #IMPLIED> 43 <!ELEMENT engine (option+)> 44 45 <!-- engine_name_match: A regexp matching the engine name --> 46 <!-- engine_versions: A version in range format 47 (version 1 to 4 : "1:4") --> 48 49 <!ATTLIST engine engine_name_match CDATA #REQUIRED 50 engine_versions CDATA #IMPLIED> 51 52 <!ELEMENT option EMPTY> 53 <!ATTLIST option name CDATA #REQUIRED 54 value CDATA #REQUIRED> 55]> 56 57<driconf> 58 <!-- Please always enable app-specific workarounds for all drivers and 59 screens. --> 60 <device> 61 <application name="Unigine Sanctuary" executable="Sanctuary"> 62 <option name="force_glsl_extensions_warn" value="true" /> 63 <option name="disable_blend_func_extended" value="true" /> 64 <option name="disable_arb_gpu_shader5" value="true" /> 65 </application> 66 67 <application name="Unigine Tropics" executable="Tropics"> 68 <option name="force_glsl_extensions_warn" value="true" /> 69 <option name="disable_blend_func_extended" value="true" /> 70 <option name="disable_arb_gpu_shader5" value="true" /> 71 </application> 72 73 <!-- using vulkan wsi for xservers causes deadlocks --> 74 <application name="Xwayland" executable="Xwayland"> 75 <option name="disable_xcb_surface" value="true" /> 76 </application> 77 78 <application name="Unigine Heaven (32-bit)" executable="heaven_x86"> 79 <option name="allow_glsl_extension_directive_midshader" value="true" /> 80 <!-- remove dual_color_blend_by_location if 4.1 ever comes out --> 81 <option name="dual_color_blend_by_location" value="true" /> 82 </application> 83 84 <application name="Unigine Heaven (64-bit)" executable="heaven_x64"> 85 <option name="allow_glsl_extension_directive_midshader" value="true" /> 86 <!-- remove dual_color_blend_by_location if 4.1 ever comes out --> 87 <option name="dual_color_blend_by_location" value="true" /> 88 </application> 89 90 <application name="Unigine Heaven (Windows)" executable="heaven.exe"> 91 <option name="allow_glsl_extension_directive_midshader" value="true" /> 92 <!-- remove dual_color_blend_by_location if 4.1 ever comes out --> 93 <option name="dual_color_blend_by_location" value="true" /> 94 </application> 95 96 <application name="Unigine Valley (32-bit)" executable="valley_x86"> 97 <option name="allow_glsl_extension_directive_midshader" value="true" /> 98 <!-- remove dual_color_blend_by_location if 1.1 ever comes out --> 99 <option name="dual_color_blend_by_location" value="true" /> 100 </application> 101 102 <application name="Unigine Valley (64-bit)" executable="valley_x64"> 103 <option name="allow_glsl_extension_directive_midshader" value="true" /> 104 <!-- remove dual_color_blend_by_location if 1.1 ever comes out --> 105 <option name="dual_color_blend_by_location" value="true" /> 106 </application> 107 108 <application name="Unigine Valley (Windows)" executable="valley.exe"> 109 <option name="allow_glsl_extension_directive_midshader" value="true" /> 110 <!-- remove dual_color_blend_by_location if 1.1 ever comes out --> 111 <option name="dual_color_blend_by_location" value="true" /> 112 </application> 113 114 <application name="Unigine OilRush (32-bit)" executable="OilRush_x86"> 115 <option name="disable_blend_func_extended" value="true" /> 116 <option name="allow_glsl_extension_directive_midshader" value="true" /> 117 </application> 118 119 <application name="Unigine OilRush (64-bit)" executable="OilRush_x64"> 120 <option name="disable_blend_func_extended" value="true" /> 121 <option name="allow_glsl_extension_directive_midshader" value="true" /> 122 </application> 123 124 <application name="Savage 2" executable="savage2.bin"> 125 <option name="disable_glsl_line_continuations" value="true" /> 126 </application> 127 128 <application name="Topogun (32-bit)" executable="topogun32"> 129 <option name="always_have_depth_buffer" value="true" /> 130 </application> 131 132 <application name="Topogun (64-bit)" executable="topogun64"> 133 <option name="always_have_depth_buffer" value="true" /> 134 </application> 135 136 <application name="Dead Island (incl. Definitive Edition)" executable="DeadIslandGame"> 137 <option name="allow_glsl_extension_directive_midshader" value="true" /> 138 139 <!-- For the Definitive Edition which shares the same executable name --> 140 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 141 </application> 142 143 <application name="Dead Island Riptide Definitive Edition" executable="DeadIslandRiptideGame"> 144 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 145 </application> 146 147 <application name="Doom 3: BFG" executable="Doom3BFG.exe"> 148 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 149 <option name="force_glsl_extensions_warn" value="true" /> 150 </application> 151 152 <application name="Dying Light" executable="DyingLightGame"> 153 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 154 </application> 155 156 <application name="Exanima" executable="Exanima.exe"> 157 <option name="glsl_zero_init" value="true"/> 158 </application> 159 160 <application name="Full Bore" executable="fullbore"> 161 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 162 </application> 163 164 <application name="RAGE (64-bit)" executable="Rage64.exe"> 165 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 166 <option name="force_gl_map_buffer_synchronized" value="true" /> 167 </application> 168 169 <application name="RAGE (32-bit)" executable="Rage.exe"> 170 <option name="allow_glsl_builtin_variable_redeclaration" value="true" /> 171 <option name="force_gl_map_buffer_synchronized" value="true" /> 172 </application> 173 174 <application name="Second Life" executable="do-not-directly-run-secondlife-bin"> 175 <option name="allow_glsl_extension_directive_midshader" value="true" /> 176 </application> 177 178 <application name="Warsow (32-bit)" executable="warsow.i386"> 179 <option name="allow_glsl_extension_directive_midshader" value="true" /> 180 </application> 181 182 <application name="Warsow (64-bit)" executable="warsow.x86_64"> 183 <option name="allow_glsl_extension_directive_midshader" value="true" /> 184 </application> 185 186 <application name="Rust" executable="rust"> 187 <option name="glsl_zero_init" value="true"/> 188 </application> 189 190 <application name="Divinity: Original Sin Enhanced Edition" executable="EoCApp"> 191 <option name="allow_glsl_extension_directive_midshader" value="true" /> 192 <option name="glsl_correct_derivatives_after_discard" value="true" /> 193 <option name="force_gl_vendor" value="ATI Technologies, Inc."/> 194 </application> 195 196 <application name="Metro 2033 Redux / Metro Last Night Redux" executable="metro"> 197 <option name="allow_glsl_extension_directive_midshader" value="true" /> 198 </application> 199 200 <application name="Worms W.M.D" executable="Worms W.M.Dx64"> 201 <option name="allow_higher_compat_version" value="true" /> 202 </application> 203 204 <application name="Crookz - The Big Heist" executable="Crookz"> 205 <option name="allow_higher_compat_version" value="true" /> 206 </application> 207 208 <application name="Tropico 5" executable="Tropico5"> 209 <option name="allow_higher_compat_version" value="true" /> 210 </application> 211 212 <application name="Faster than Light (32-bit)" executable="FTL.x86"> 213 <option name="allow_higher_compat_version" value="true" /> 214 </application> 215 216 <application name="Faster than Light (64-bit)" executable="FTL.amd64"> 217 <option name="allow_higher_compat_version" value="true" /> 218 </application> 219 220 <application name="Final Fantasy VIII: Remastered" executable="FFVIII.exe"> 221 <option name="allow_higher_compat_version" value="true" /> 222 </application> 223 224 <application name="SNK HEROINES Tag Team Frenzy" executable="SNKHEROINES.exe"> 225 <option name="force_compat_shaders" value="true" /> 226 </application> 227 228 <application name="The Culling" executable="Victory"> 229 <option name="force_glsl_version" value="440" /> 230 </application> 231 232 <application name="Spec Ops: The Line (32-bit)" executable="specops.i386"> 233 <option name="force_glsl_abs_sqrt" value="true" /> 234 </application> 235 236 <application name="Spec Ops: The Line (64-bit)" executable="specops"> 237 <option name="force_glsl_abs_sqrt" value="true" /> 238 </application> 239 240 <application name="Kerbal Space Program (32-bit)" executable="KSP.x86"> 241 <option name="glsl_zero_init" value="true"/> 242 </application> 243 244 <application name="Kerbal Space Program (64-bit)" executable="KSP.x86_64"> 245 <option name="glsl_zero_init" value="true"/> 246 </application> 247 248 <application name="Luna Sky" executable="lunasky"> 249 <option name="force_glsl_version" value="130"/> 250 <option name="glsl_ignore_write_to_readonly_var" value="true"/> 251 </application> 252 253 <application name="Rocket League" executable="RocketLeague"> 254 <option name="glsl_correct_derivatives_after_discard" value="true"/> 255 </application> 256 257 <application name="The Witcher 2" executable="witcher2"> 258 <option name="glsl_correct_derivatives_after_discard" value="true"/> 259 </application> 260 261 <application name="Unreal 4 Editor" executable="UE4Editor"> 262 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/> 263 </application> 264 265 <application name="Observer" executable="TheObserver-Linux-Shipping"> 266 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/> 267 </application> 268 269 <application name="Steamroll" executable="Steamroll-Linux-Shipping"> 270 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/> 271 </application> 272 273 <application name="Refunct" executable="Refunct-Linux-Shipping"> 274 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/> 275 </application> 276 277 <application name="We Happy Few" executable="GlimpseGame"> 278 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/> 279 </application> 280 281 <application name="Google Earth VR" executable="Earth.exe"> 282 <option name="allow_glsl_builtin_const_expression" value="true"/> 283 <option name="allow_glsl_relaxed_es" value="true"/> 284 </application> 285 286 <application name="Champions of Regnum" executable="game"> 287 <option name="allow_extra_pp_tokens" value="true" /> 288 </application> 289 290 <application name="Wolfenstein The Old Blood" executable="WolfOldBlood_x64.exe"> 291 <option name="force_compat_profile" value="true" /> 292 </application> 293 294 <application name="ARMA 3" executable="arma3.x86_64"> 295 <option name="glsl_correct_derivatives_after_discard" value="true"/> 296 </application> 297 298 <application name="Epic Games Launcher" executable="EpicGamesLauncher.exe"> 299 <option name="force_compat_profile" value="true" /> 300 </application> 301 302 <application name="GpuTest" executable="GpuTest"> 303 <!-- GiMark benchmark from GpuTest does not initialize .w channel of 304 lightDir0 and lightDir1 varyings in the vertex shader while 305 uses it in the fragment shader. --> 306 <option name="glsl_zero_init" value="true"/> 307 </application> 308 309 <application name="Curse of the Dead Gods" executable="Curse of the Dead Gods.exe"> 310 <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/2598 --> 311 <option name="glsl_zero_init" value="true" /> 312 </application> 313 314 <application name="GRID Autosport" executable="GridAutosport"> 315 <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/1258 --> 316 <option name="force_integer_tex_nearest" value="true" /> 317 </application> 318 319 <application name="DIRT: Showdown" executable="dirt.i386"> 320 <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/1258 --> 321 <option name="force_integer_tex_nearest" value="true" /> 322 </application> 323 324 <application name="DiRT Rally" executable="DirtRally"> 325 <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/5648 --> 326 <option name="vs_position_always_invariant" value="true" /> 327 </application> 328 329 <!-- Workarounds for SPECviewperf relying on invalid / non-conformant 330 OpenGL behavior. Older SPECviewperf versions might also need this. 331 --> 332 <application name="SPECviewperf13" executable="viewperf"> 333 <option name="vblank_mode" value="0" /> 334 <option name="allow_glsl_extension_directive_midshader" value="true" /> 335 <option name="allow_glsl_120_subset_in_110" value="true" /> 336 <option name="force_gl_names_reuse" value="true" /> 337 <!-- This makes it use GL_NVX_gpu_memory_info to query memory info 338 instead of non-existent GLX_AMD_gpu_association. Yes, it checks 339 the vendor string, not the extension list. --> 340 <option name="force_gl_vendor" value="NVIDIA Corporation" /> 341 <!-- creo-02 doesn't enable GL_EXT_shader_image_load_store in GLSL --> 342 <option name="force_glsl_extensions_warn" value="true" /> 343 <option name="mesa_glthread" value="true" /> 344 <option name="mesa_no_error" value="true" /> 345 <!-- Creating 10-bit pbuffers fails in the X server and returns BadAlloc. --> 346 <option name="allow_rgb10_configs" value="false" /> 347 <option name="allow_invalid_glx_destroy_window" value="true" /> 348 </application> 349 350 <!-- Workaround for unsynchronized VBO updates on Dead Cells android 351 game. (Possibly also needed for desktop version?) 352 --> 353 <application name="Dead-Cells" executable="com.playdigious.deadcells.mobile"> 354 <option name="ignore_map_unsynchronized" value="true" /> 355 </application> 356 357 <application name="Teardown" executable="teardown.exe"> 358 <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/3714 --> 359 <option name="force_integer_tex_nearest" value="true" /> 360 <option name="allow_glsl_extension_directive_midshader" value="true" /> 361 </application> 362 363 <application name="Golf With Your Friends" executable="Golf With Your Friends.x86_64"> 364 <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/4547 --> 365 <option name="glsl_correct_derivatives_after_discard" value="true" /> 366 </application> 367 368 <application name="BETA CAE Systems - GL detect tool" executable="detect_opengl_tool"> 369 <option name="mesa_extension_override" value="-GL_MESA_pack_invert -GL_MESA_framebuffer_flip_y -GL_MESA_window_pos" /> 370 </application> 371 <application name="BETA CAE Systems - ANSA" executable="ansa_linux_x86_64"> 372 <option name="mesa_extension_override" value="-GL_MESA_pack_invert -GL_MESA_framebuffer_flip_y -GL_MESA_window_pos" /> 373 <option name="do_dce_before_clip_cull_analysis" value="true" /> 374 </application> 375 <application name="BETA CAE Systems - META" executable="meta_post_x86_64"> 376 <option name="mesa_extension_override" value="-GL_MESA_pack_invert -GL_MESA_framebuffer_flip_y -GL_MESA_window_pos" /> 377 </application> 378 379 <!-- Workaround for Mari with executable name like Mari4.5v2, Mari4.7v4 --> 380 <application name="Mari" executable_regexp="Mari[0-9]+[.][0-9]+v[0-9]+"> 381 <!-- Need ARB_gpu_shader5 for non-const sampler array index support --> 382 <option name="force_glsl_extensions_warn" value="true" /> 383 </application> 384 385 <application name="Discovery Studio 2020" executable="DiscoveryStudio2020-bin"> 386 <option name="force_direct_glx_context" value="true" /> 387 </application> 388 389 <application name="Abaqus" executable="ABQcaeK"> 390 <option name="keep_native_window_glx_drawable" value="true" /> 391 <option name="allow_rgb10_configs" value="false" /> 392 </application> 393 394 <application name="Maya" executable="maya.bin"> 395 <!-- Needed otherwise the app doesn't try to use OpenCL --> 396 <option name="force_gl_vendor" value="ATI Technologies Inc." /> 397 </application> 398 399 <application name="SD Gundam G Generation Cross Rays" executable="togg.exe"> 400 <option name="force_compat_shaders" value="true" /> 401 </application> 402 403 <!-- The GL thread allowlist is below, workarounds are above. 404 Keep it that way. --> 405 406 <application name="Minecraft" executable="minecraft-launcher"> 407 <option name="mesa_glthread" value="true"/> 408 </application> 409 <application name="Minecraft-FTB" executable="ftb-app"> 410 <option name="mesa_glthread" value="true"/> 411 </application> 412 413 <application name="Alien Isolation" executable="AlienIsolation"> 414 <option name="mesa_glthread" value="true"/> 415 </application> 416 417 <application name="BioShock Infinite" executable="bioshock.i386"> 418 <option name="mesa_glthread" value="true"/> 419 </application> 420 421 <application name="Borderlands 2" executable="Borderlands2"> 422 <option name="mesa_glthread" value="true"/> 423 </application> 424 425 <application name="Civilization 5" executable="Civ5XP"> 426 <option name="mesa_glthread" value="true"/> 427 </application> 428 <application name="Civilization 6" executable="Civ6"> 429 <option name="mesa_glthread" value="true"/> 430 </application> 431 <application name="Civilization 6" executable="Civ6Sub"> 432 <option name="mesa_glthread" value="true"/> 433 </application> 434 435 <application name="Dreamfall Chapters" executable="Dreamfall Chapters"> 436 <option name="mesa_glthread" value="true"/> 437 </application> 438 439 <application name="Hitman" executable="HitmanPro"> 440 <option name="mesa_glthread" value="true"/> 441 </application> 442 443 <application name="Renowned Explorers: International Society" executable="abbeycore_steam"> 444 <option name="mesa_glthread" value="true"/> 445 </application> 446 447 <application name="Saints Row 2" executable="saintsrow2.i386"> 448 <option name="mesa_glthread" value="true"/> 449 </application> 450 <application name="Saints Row: The Third" executable="SaintsRow3.i386"> 451 <option name="mesa_glthread" value="true"/> 452 </application> 453 <application name="Saints Row IV" executable="SaintsRow4.i386"> 454 <option name="mesa_glthread" value="true"/> 455 </application> 456 <application name="Saints Row: Gat out of Hell" executable="SaintsRow4GooH.i386"> 457 <option name="mesa_glthread" value="true"/> 458 </application> 459 460 <application name="Sid Meier's: Civilization Beyond Earth" executable="CivBE"> 461 <option name="mesa_glthread" value="true"/> 462 </application> 463 464 <application name="The Witcher 2" executable="witcher2"> 465 <option name="mesa_glthread" value="true"/> 466 </application> 467 468 <application name="American Truck Simulator" executable="amtrucks"> 469 <option name="mesa_glthread" value="true"/> 470 </application> 471 <application name="Euro Truck Simulator 2" executable="eurotrucks2"> 472 <option name="mesa_glthread" value="true"/> 473 </application> 474 475 <application name="Overlord" executable="overlord.i386"> 476 <option name="mesa_glthread" value="true"/> 477 </application> 478 <application name="Overlord 2" executable="overlord2.i386"> 479 <option name="mesa_glthread" value="true"/> 480 </application> 481 482 <application name="Oil Rush" executable="OilRush_x86"> 483 <option name="mesa_glthread" value="true"/> 484 </application> 485 486 <application name="War Thunder" executable="aces"> 487 <option name="mesa_glthread" value="true"/> 488 </application> 489 <application name="War Thunder (Wine)" executable="aces.exe"> 490 <option name="mesa_glthread" value="true"/> 491 </application> 492 493 <application name="Outlast" executable="OLGame.x86_64"> 494 <option name="mesa_glthread" value="true"/> 495 </application> 496 497 <application name="Spec Ops: The Line (32-bit)" executable="specops.i386"> 498 <option name="mesa_glthread" value="true"/> 499 </application> 500 <application name="Spec Ops: The Line (64-bit)" executable="specops"> 501 <option name="mesa_glthread" value="true"/> 502 </application> 503 <application name="Mount and Blade Warband" executable="mb_warband_linux"> 504 <option name="mesa_glthread" value="true"/> 505 </application> 506 507 <application name="Valheim" executable="valheim.x86_64"> 508 <option name="mesa_glthread" value="true"/> 509 </application> 510 511 <!-- around 18% performance increase in min and avg fps, max fps capped at 60fps. --> 512 <application name="Medieval II: Total War" executable="Medieval2"> 513 <option name="mesa_glthread" value="true"/> 514 </application> 515 516 <!-- min fps ~21 ===> ~27 while standing still in game, also higher gpu load. --> 517 <application name="Carnivores: Dinosaur Hunter Reborn (wine)" executable="Carnivores-master.exe"> 518 <option name="mesa_glthread" value="true"/> 519 </application> 520 521 <!-- around 30% increase in avg fps --> 522 <application name="Far Cry 2 (wine)" executable="farcry2.exe"> 523 <option name="mesa_glthread" value="true"/> 524 </application> 525 526 <application name="Talos Principle" executable="Talos"> 527 <option name="mesa_glthread" value="true"/> 528 </application> 529 <application name="Talos Principle (Unrestricted)" executable="Talos_Unrestricted"> 530 <option name="mesa_glthread" value="true"/> 531 </application> 532 533 <!-- roughly 30% increase in fps --> 534 <application name="7 Days To Die (64-bit)" executable="7DaysToDie.x86_64"> 535 <option name="mesa_glthread" value="true"/> 536 </application> 537 <application name="7 Days To Die (32-bit)" executable="7DaysToDie.x86"> 538 <option name="mesa_glthread" value="true"/> 539 </application> 540 541 <!-- Emulator tends to have a high CPU load for GPU emulation, so separating the driver overhead yield an improvement. --> 542 <application name="Dolphin Emulator" executable="dolphin-emu"> 543 <option name="mesa_glthread" value="true"/> 544 </application> 545 <application name="Citra - Nintendo 3DS Emulator" executable="citra-qt"> 546 <option name="mesa_glthread" value="true"/> 547 </application> 548 <application name="Yuzu - Nintendo Switch Emulator" executable="yuzu"> 549 <option name="mesa_glthread" value="true"/> 550 </application> 551 <application name="RPCS3" executable="rpcs3"> 552 <option name="mesa_glthread" value="true"/> 553 </application> 554 <application name="PCSX2" executable="PCSX2"> 555 <option name="mesa_glthread" value="true"/> 556 </application> 557 558 <application name="From The Depths" executable="From_The_Depths.x86_64"> 559 <option name="mesa_glthread" value="true"/> 560 </application> 561 562 <!-- #Minimum fps 136 ==> 144 --> 563 <application name="Plague Inc Evolved (32-bit)" executable="PlagueIncEvolved.x86"> 564 <option name="mesa_glthread" value="true" /> 565 </application> 566 <application name="Plague Inc Evolved (64-bit)" executable="PlagueIncEvolved.x86_64"> 567 <option name="mesa_glthread" value="true" /> 568 </application> 569 570 <!-- 10% fps increase --> 571 <application name="Beholder (32-bit)" executable="Beholder.x86"> 572 <option name="mesa_glthread" value="true" /> 573 </application> 574 <application name="Beholder (64-bit)" executable="Beholder.x86_64"> 575 <option name="mesa_glthread" value="true" /> 576 </application> 577 578 <!-- X3 games: 15% avg fps increase while flying in space --> 579 <application name="X3 Reunion" executable="X3R_main"> 580 <option name="mesa_glthread" value="true" /> 581 </application> 582 <application name="X3 Terran Conflict" executable="X3TR_main"> 583 <option name="mesa_glthread" value="true" /> 584 </application> 585 <application name="X3 Albion Prelude" executable="X3AP_main"> 586 <option name="mesa_glthread" value="true" /> 587 </application> 588 589 <!-- +30% avg fps --> 590 <application name="Borderlands: The Pre-Sequel" executable="BorderlandsPreSequel"> 591 <option name="mesa_glthread" value="true" /> 592 </application> 593 <application name="Transport Fever" executable="TransportFever"> 594 <option name="mesa_glthread" value="true" /> 595 </application> 596 597 <application name="Unigine Sanctuary" executable="Sanctuary"> 598 <option name="mesa_glthread" value="true" /> 599 </application> 600 <application name="Unigine Tropics" executable="Tropics"> 601 <option name="mesa_glthread" value="true" /> 602 </application> 603 <application name="Unigine Heaven (32-bit)" executable="heaven_x86"> 604 <option name="mesa_glthread" value="true" /> 605 </application> 606 <application name="Unigine Heaven (64-bit)" executable="heaven_x64"> 607 <option name="mesa_glthread" value="true" /> 608 </application> 609 <application name="Unigine Valley (32-bit)" executable="valley_x86"> 610 <option name="mesa_glthread" value="true" /> 611 </application> 612 <application name="Unigine Valley (64-bit)" executable="valley_x64"> 613 <option name="mesa_glthread" value="true" /> 614 </application> 615 <application name="Unigine Superposition" executable="superposition"> 616 <option name="mesa_glthread" value="true" /> 617 </application> 618 619 <application name="Basemark GPU" executable="BasemarkGPU_gl"> 620 <option name="mesa_glthread" value="true" /> 621 </application> 622 623 <application name="Stellaris" executable="stellaris"> 624 <option name="mesa_glthread" value="true"/> 625 </application> 626 627 <application name="Battletech" executable="BattleTech"> 628 <option name="mesa_glthread" value="true"/> 629 </application> 630 631 <!-- Adaptive sync denylist follows below: --> 632 <application name="gnome-shell" executable="gnome-shell"> 633 <option name="adaptive_sync" value="false" /> 634 <option name="v3d_nonmsaa_texture_size_limit" value="true" /> 635 </application> 636 <application name="Desktop — Plasma" executable="plasmashell"> 637 <option name="adaptive_sync" value="false" /> 638 </application> 639 <application name="budgie-wm" executable="budgie-wm"> 640 <option name="adaptive_sync" value="false" /> 641 </application> 642 <application name="kwin_x11" executable="kwin_x11"> 643 <option name="adaptive_sync" value="false" /> 644 </application> 645 <application name="ksmserver-logout-greeter" executable="ksmserver-logout-greeter"> 646 <option name="adaptive_sync" value="false" /> 647 </application> 648 <application name="ksmserver-switchuser-greeter" executable="ksmserver-switchuser-greeter"> 649 <option name="adaptive_sync" value="false" /> 650 </application> 651 <application name="kscreenlocker_greet" executable="kscreenlocker_greet"> 652 <option name="adaptive_sync" value="false" /> 653 </application> 654 <application name="startplasma" executable="startplasma"> 655 <option name="adaptive_sync" value="false" /> 656 </application> 657 <application name="sddm-greeter" executable="sddm-greeter"> 658 <option name="adaptive_sync" value="false" /> 659 </application> 660 <application name="krunner" executable="krunner"> 661 <option name="adaptive_sync" value="false" /> 662 </application> 663 <application name="spectacle" executable="spectacle"> 664 <option name="adaptive_sync" value="false" /> 665 </application> 666 <application name="marco" executable="marco"> 667 <option name="adaptive_sync" value="false" /> 668 </application> 669 <application name="compton" executable="compton"> 670 <option name="adaptive_sync" value="false" /> 671 </application> 672 <application name="picom" executable="picom"> 673 <option name="adaptive_sync" value="false" /> 674 </application> 675 <application name="xfwm4" executable="xfwm4"> 676 <option name="adaptive_sync" value="false" /> 677 </application> 678 <application name="Enlightenment" executable="enlightenment"> 679 <option name="adaptive_sync" value="false" /> 680 </application> 681 <application name="mutter" executable="mutter"> 682 <option name="adaptive_sync" value="false" /> 683 <option name="v3d_nonmsaa_texture_size_limit" value="true" /> 684 </application> 685 <application name="muffin" executable="muffin"> 686 <option name="adaptive_sync" value="false" /> 687 </application> 688 <application name="compiz" executable="compiz"> 689 <option name="adaptive_sync" value="false" /> 690 </application> 691 <application name="Firefox" executable="firefox"> 692 <option name="adaptive_sync" value="false" /> 693 </application> 694 <application name="Firefox ESR" executable="firefox-esr"> 695 <option name="adaptive_sync" value="false" /> 696 </application> 697 <application name="Chromium" executable="chromium"> 698 <option name="adaptive_sync" value="false" /> 699 </application> 700 <application name="Google Chrome" executable="chrome"> 701 <option name="adaptive_sync" value="false" /> 702 </application> 703 <application name="Iceweasel" executable="iceweasel"> 704 <option name="adaptive_sync" value="false" /> 705 </application> 706 <application name="Epiphany" executable="epiphany"> 707 <option name="adaptive_sync" value="false" /> 708 </application> 709 <application name="Konqueror" executable="konqueror"> 710 <option name="adaptive_sync" value="false" /> 711 </application> 712 <application name="Falkon" executable="falkon"> 713 <option name="adaptive_sync" value="false" /> 714 </application> 715 <application name="Seamonkey" executable="seamonkey"> 716 <option name="adaptive_sync" value="false" /> 717 </application> 718 <application name="Waterfox" executable="waterfox"> 719 <option name="adaptive_sync" value="false" /> 720 </application> 721 <application name="VLC Media Player" executable="vlc"> 722 <option name="adaptive_sync" value="false" /> 723 </application> 724 <application name="Totem" executable="totem"> 725 <option name="adaptive_sync" value="false" /> 726 </application> 727 <application name="Dragon Player" executable="dragon"> 728 <option name="adaptive_sync" value="false" /> 729 </application> 730 <application name="mpv" executable="mpv"> 731 <option name="adaptive_sync" value="false" /> 732 </application> 733 <application name="Xorg" executable="Xorg"> 734 <option name="v3d_nonmsaa_texture_size_limit" value="true" /> 735 </application> 736 737 <application name="gfxbench" executable="testfw_app"> 738 <option name="vk_x11_override_min_image_count" value="2" /> 739 <option name="vk_wsi_force_bgra8_unorm_first" value="true" /> 740 </application> 741 742 <application name="Brink" executable="brink.exe"> 743 <option name="glx_extension_override" value="-GLX_OML_swap_method" /> 744 <option name="allow_higher_compat_version" value="true" /> 745 </application> 746 747 <application name="Enter The Gungeon (32 bits)" executable="EtG.x86"> 748 <option name="glsl_correct_derivatives_after_discard" value="true" /> 749 </application> 750 751 <application name="Enter The Gungeon (64 bits)" executable="EtG.x86_64"> 752 <option name="glsl_correct_derivatives_after_discard" value="true" /> 753 </application> 754 755 <!-- Workaround for STAR WARS: Knights of the Old Republic relying on 756 non-specified OpenGL behavior (expecting texture names to be 757 small enough to fit in the static array). 758 --> 759 <application name="SWKOTOR (wine)" executable="swkotor.exe"> 760 <option name="force_gl_names_reuse" value="true"/> 761 </application> 762 763 <application name="Assault Android Cactus (32-bit)" executable="cactus_demo.x86"> 764 <option name="vs_position_always_precise" value="true" /> 765 </application> 766 <application name="Assault Android Cactus (64-bit)" executable="cactus_demo.x86_64"> 767 <option name="vs_position_always_precise" value="true" /> 768 </application> 769 <application name="Assault Android Cactus (32-bit)" executable="cactus.x86"> 770 <option name="vs_position_always_precise" value="true" /> 771 </application> 772 <application name="Assault Android Cactus (64-bit)" executable="cactus.x86_64"> 773 <option name="vs_position_always_precise" value="true" /> 774 </application> 775 776 <!-- Vulkan workarounds: --> 777 778 <!-- Works around the game not starting (does not deal with 779 the implementation returning more images than the minimum 780 specified by the application. --> 781 <engine engine_name_match="UnrealEngine4.*" engine_versions="0:23"> 782 <option name="vk_x11_strict_image_count" value="true" /> 783 </engine> 784 785 <!-- DOOM crashes at startup without this workaround if the adaptative sync mode is enabled. --> 786 <application name="DOOM" executable="DOOMx64vk.exe"> 787 <option name="vk_x11_strict_image_count" value="true" /> 788 </application> 789 790 <!-- DOOM Doom Eternal happily creates a swapchain with 2 images for 791 IMMEDIATE. This fixes a 10% performance issue with RADV. --> 792 <application name="DOOMEternal" executable="DOOMEternalx64vk.exe"> 793 <option name="vk_x11_ensure_min_image_count" value="true" /> 794 </application> 795 796 <!-- Wolfenstein: Youngblood crashes at startup on xwayland without this workaround. --> 797 <application name="Wolfenstein: Youngblood(x64vk)" executable="Youngblood_x64vk.exe"> 798 <option name="vk_x11_strict_image_count" value="true" /> 799 </application> 800 801 <!-- Metro:Exodus crashes at startup on xwayland without this workaround. --> 802 <application name="Metro: Exodus" application_name_match="metroexodus"> 803 <option name="vk_x11_strict_image_count" value="true" /> 804 </application> 805 806 <application name="Forsaken Remastered" executable="ForsakenEx"> 807 <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/5437 --> 808 <option name="vk_dont_care_as_load" value="true" /> 809 </application> 810 </device> 811 <!-- vmwgfx doesn't like full buffer swaps and can't sync to vertical retraces.--> 812 <device driver="vmwgfx"> 813 <application name="gnome-shell" executable="gnome-shell"> 814 <option name="glx_extension_override" value="-GLX_EXT_buffer_age -GLX_OML_sync_control -GLX_SGI_video_sync" /> 815 </application> 816 <application name="Compiz" executable="Compiz"> 817 <option name="glx_extension_override" value="-GLX_EXT_buffer_age -GLX_OML_sync_control" /> 818 </application> 819 </device> 820 <device driver="radeonsi"> 821 <application name="Half Life 2" executable="hl2_linux"> 822 <option name="mesa_glthread" value="true" /> 823 </application> 824 <application name="Black Mesa" executable="bms_linux"> 825 <option name="mesa_glthread" value="true" /> 826 </application> 827 <application name="Alien Isolation" executable="AlienIsolation"> 828 <option name="force_gl_vendor" value="X.Org" /> 829 </application> 830 <application name="American Truck Simulator" executable="amtrucks"> 831 <option name="radeonsi_zerovram" value="true" /> 832 </application> 833 <application name="Counter-Strike Global Offensive" executable="csgo_linux64"> 834 <option name="mesa_glthread" value="true" /> 835 <option name="radeonsi_zerovram" value="true" /> 836 <option name="radeonsi_clamp_div_by_zero" value="true" /> 837 </application> 838 <application name="Exanima" executable="Exanima.exe"> 839 <option name="radeonsi_zerovram" value="true"/> 840 </application> 841 <application name="Rocket League" executable="RocketLeague"> 842 <option name="radeonsi_zerovram" value="true" /> 843 </application> 844 <application name="DiRT Rally" executable="DirtRally"> 845 <option name="radeonsi_prim_restart_tri_strips_only" value="true"/> 846 </application> 847 <application name="Gfx Bench" executable="gfxbench_gl"> 848 <!-- Helps offscreen tests --> 849 <option name="mesa_glthread" value="true"/> 850 </application> 851 <!-- YoYo game engine workarounds --> 852 <application name="Monolith demo5" executable="runner" sha1="0c40d509a74e357f0280cb1bd882e9cd94b91bdf"> 853 <option name="radeonsi_sync_compile" value="true" /> 854 <option name="radeonsi_zerovram" value="true" /> 855 </application> 856 <!-- Note: The following fix works for both Memoranda and Riptale as they have the same sha --> 857 <application name="Memoranda / Riptale" executable="runner" sha1="aa13dec6af63c88f308ebb487693896434a4db56"> 858 <option name="radeonsi_sync_compile" value="true" /> 859 </application> 860 <application name="Nuclear Throne" executable="runner" sha1="84814e8db125e889f5d9d4195a0ca72a871ea1fd"> 861 <option name="radeonsi_sync_compile" value="true" /> 862 </application> 863 <application name="Undertale" executable="runner" sha1="dfa302e7ec78641d0696dbbc1a06fc29f34ff1ff"> 864 <option name="radeonsi_sync_compile" value="true" /> 865 </application> 866 <application name="Turmoil" executable="runner" sha1="cbbf757aaab289859f8dae191a7d63afc30643d9"> 867 <option name="radeonsi_sync_compile" value="true" /> 868 </application> 869 <application name="Peace, Death!" executable="runner" sha1="5b909f3d21799773370adf084f649848f098234e"> 870 <option name="radeonsi_sync_compile" value="true" /> 871 </application> 872 <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/2647 --> 873 <application name="Kerbal Space Program" executable="KSP.x86_64"> 874 <option name="radeonsi_no_infinite_interp" value="true" /> 875 </application> 876 <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/2686 --> 877 <application name="7 Days to Die" executable="7DaysToDie.x86_64"> 878 <option name="radeonsi_zerovram" value="true" /> 879 </application> 880 <application name="7 Days to Die" executable="7DaysToDie.x86"> 881 <option name="radeonsi_zerovram" value="true" /> 882 </application> 883 <application name="SPECviewperf13" executable="viewperf"> 884 <option name="glthread_nop_check_framebuffer_status" value="true" /> 885 <option name="radeonsi_sync_compile" value="true" /> 886 </application> 887 <application name="Road Redemption" executable="RoadRedemption.x86_64"> 888 <option name="radeonsi_clamp_div_by_zero" value="true" /> 889 </application> 890 <application name="Wasteland 2" executable="WL2"> 891 <option name="radeonsi_clamp_div_by_zero" value="true" /> 892 </application> 893 <application name="Teardown" executable="teardown.exe"> 894 <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/3714 --> 895 <option name="radeonsi_clamp_div_by_zero" value="true" /> 896 <option name="radeonsi_no_infinite_interp" value="true" /> 897 </application> 898 <application name="SpaceEngine" executable="SpaceEngine.exe"> 899 <option name="force_gl_vendor" value="X.Org" /> 900 </application> 901 <application name="BETA CAE Systems - GL detect tool" executable="detect_opengl_tool"> 902 <option name="force_gl_vendor" value="ATI Technologies Inc." /> 903 </application> 904 <application name="BETA CAE Systems - ANSA" executable="ansa_linux_x86_64"> 905 <option name="force_gl_vendor" value="ATI Technologies Inc." /> 906 </application> 907 <application name="BETA CAE Systems - META" executable="meta_post_x86_64"> 908 <option name="force_gl_vendor" value="ATI Technologies Inc." /> 909 <option name="radeonsi_force_use_fma32" value="true" /> 910 </application> 911 <application name="Black Geyser: Couriers of Darkness" executable="BlackGeyser.x86_64"> 912 <option name="radeonsi_zerovram" value="true" /> 913 </application> 914 </device> 915 <device driver="iris"> 916 <application name="Middle Earth: Shadow of Mordor" executable="ShadowOfMordor"> 917 <option name="vs_position_always_invariant" value="true" /> 918 </application> 919 <application name="glmark2" executable="glmark2"> 920 <option name="limit_trig_input_range" value="true" /> 921 </application> 922 </device> 923 <device driver="crocus"> 924 <application name="glmark2" executable="glmark2"> 925 <option name="limit_trig_input_range" value="true" /> 926 </application> 927 </device> 928 <device driver="anv"> 929 <application name="Aperture Desk Job" executable="deskjob"> 930 <option name="anv_assume_full_subgroups" value="true" /> 931 </application> 932 <application name="DOOMEternal" executable="DOOMEternalx64vk.exe"> 933 <option name="anv_assume_full_subgroups" value="true" /> 934 </application> 935 <application name="Wolfenstein: Youngblood(x64vk)" executable="Youngblood_x64vk.exe"> 936 <option name="limit_trig_input_range" value="true" /> 937 </application> 938 <application name="Batman™: Arkham Knight" executable="BatmanAK.exe"> 939 <option name="anv_sample_mask_out_opengl_behaviour" value="true"/> 940 </application> 941 </device> 942 943 <device driver="r600"> 944 <application name="Tomb Raider 2013" executable="TombRaider"> 945 <option name="mesa_extension_override" value="-GL_ARB_shader_image_load_store" /> 946 </application> 947 </device> 948 949 <device driver="virtio_gpu"> 950 <application name="Counter-Strike Global Offensive" executable="csgo_linux64"> 951 <option name="format_l8_srgb_enable_readback" value="true" /> 952 </application> 953 </device> 954 <!-- 955 The android game hall of shame: 956 957 Workarounds for android games that are not aware of open source drivers. 958 These can be removed as games have their allowlists updated. 959 --> 960 <device driver="msm" device="FD618"> 961 <application name="Call of Duty Mobile" executable="com.activision.callofduty.shooter"> 962 <option name="force_gl_renderer" value="Adreno (TM) 618"/> 963 <option name="force_gl_vendor" value="Qualcomm"/> 964 </application> 965 <application name="Asphalt 8" executable="com.gameloft.android.ANMP.GloftA8HM"> 966 <!-- Note: asphalt8's allowlist seems to not have been updated recently 967 enough to be aware of "Adreno (TM) 618", but we seem to otherwise 968 have enough headroom to opt into the higher settings. (Conversely 969 the allowlist seems to allow G72-MP3 into the higher tier, despite 970 not being able to maintain fps.. possibly it is not properly 971 differentiating between various core MPn configurations. So I'm 972 going to use that to justify claiming to be a618's *slightly* 973 bigger brother) 974 --> 975 <option name="force_gl_renderer" value="Adreno (TM) 630"/> 976 <option name="force_gl_vendor" value="Qualcomm"/> 977 </application> 978 <application name="Asphalt 9" executable="com.gameloft.android.ANMP.GloftA9HM"> 979 <option name="force_gl_renderer" value="Adreno (TM) 618"/> 980 <option name="force_gl_vendor" value="Qualcomm"/> 981 </application> 982 <application name="PUBG Mobile" executable="com.tencent.ig"> 983 <!-- Note: Maxed out a630 settings still limits max framerate, yet GPU 984 is below 45% utilization (mostly closer to 40%). If I claim to 985 be a640, that unlocks "Extreme" framerate (and "Ultra HD" graphics). 986 With "Extreme" + "HDR" we are comfortably at 60fps with plenty of 987 headroom. "Extreme" + "Ultra HD" (max settings for a640) we are 988 starting to approach the limit. I'll stick with a630 to be 989 conservative, but argueably we could go higher. (This flagship 990 gaming phone thing is a scam!) 991 --> 992 <option name="force_gl_renderer" value="Adreno (TM) 630"/> 993 <option name="force_gl_vendor" value="Qualcomm"/> 994 </application> 995 </device> 996</driconf> 997