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="Akka Arrh" executable="Project-A.exe">
62            <option name="allow_glsl_extension_directive_midshader" value="true" />
63        </application>
64
65        <application name="Unigine Sanctuary" executable="Sanctuary">
66            <option name="force_glsl_extensions_warn" value="true" />
67            <option name="disable_blend_func_extended" value="true" />
68            <option name="disable_arb_gpu_shader5" value="true" />
69        </application>
70
71        <application name="Unigine Tropics" executable="Tropics">
72            <option name="force_glsl_extensions_warn" value="true" />
73            <option name="disable_blend_func_extended" value="true" />
74            <option name="disable_arb_gpu_shader5" value="true" />
75        </application>
76
77        <application name="Unigine Heaven (32-bit)" executable="heaven_x86">
78            <option name="allow_glsl_extension_directive_midshader" value="true" />
79            <!-- remove dual_color_blend_by_location if 4.1 ever comes out -->
80            <option name="dual_color_blend_by_location" value="true" />
81        </application>
82
83        <application name="Unigine Heaven (64-bit)" executable="heaven_x64">
84            <option name="allow_glsl_extension_directive_midshader" value="true" />
85            <!-- remove dual_color_blend_by_location if 4.1 ever comes out -->
86            <option name="dual_color_blend_by_location" value="true" />
87        </application>
88
89        <application name="Unigine Heaven (Windows)" executable="heaven.exe">
90            <option name="allow_glsl_extension_directive_midshader" value="true" />
91            <!-- remove dual_color_blend_by_location if 4.1 ever comes out -->
92            <option name="dual_color_blend_by_location" value="true" />
93        </application>
94
95        <application name="Unigine Valley (32-bit)" executable="valley_x86">
96            <option name="allow_glsl_extension_directive_midshader" value="true" />
97            <!-- remove dual_color_blend_by_location if 1.1 ever comes out -->
98            <option name="dual_color_blend_by_location" value="true" />
99        </application>
100
101        <application name="Unigine Valley (64-bit)" executable="valley_x64">
102            <option name="allow_glsl_extension_directive_midshader" value="true" />
103            <!-- remove dual_color_blend_by_location if 1.1 ever comes out -->
104            <option name="dual_color_blend_by_location" value="true" />
105        </application>
106
107        <application name="Unigine Valley (Windows)" executable="valley.exe">
108            <option name="allow_glsl_extension_directive_midshader" value="true" />
109            <!-- remove dual_color_blend_by_location if 1.1 ever comes out -->
110            <option name="dual_color_blend_by_location" value="true" />
111        </application>
112
113        <application name="Unigine OilRush (32-bit)" executable="OilRush_x86">
114            <option name="disable_blend_func_extended" value="true" />
115            <option name="allow_glsl_extension_directive_midshader" value="true" />
116        </application>
117
118        <application name="Unigine OilRush (64-bit)" executable="OilRush_x64">
119            <option name="disable_blend_func_extended" value="true" />
120            <option name="allow_glsl_extension_directive_midshader" value="true" />
121        </application>
122
123        <application name="Savage 2" executable="savage2.bin">
124            <option name="disable_glsl_line_continuations" value="true" />
125        </application>
126
127        <application name="Topogun (32-bit)" executable="topogun32">
128            <option name="always_have_depth_buffer" value="true" />
129        </application>
130
131        <application name="Topogun (64-bit)" executable="topogun64">
132            <option name="always_have_depth_buffer" value="true" />
133        </application>
134        <application name="Half Life 2" executable="hl2_linux">
135            <option name="mesa_glthread_app_profile" value="1" />
136        </application>
137        <application name="Black Mesa" executable="bms_linux">
138            <option name="mesa_glthread_app_profile" value="1" />
139        </application>
140        <application name="Counter-Strike Global Offensive" executable="csgo_linux64">
141            <option name="mesa_glthread_app_profile" value="1" />
142        </application>
143
144        <application name="Dead Island (incl. Definitive Edition)" executable="DeadIslandGame">
145            <option name="allow_glsl_extension_directive_midshader" value="true" />
146
147            <!-- For the Definitive Edition which shares the same executable name -->
148            <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
149        </application>
150
151        <application name="Dead Island Riptide Definitive Edition" executable="DeadIslandRiptideGame">
152            <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
153        </application>
154
155        <application name="Doom 3: BFG" executable="Doom3BFG.exe">
156            <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
157            <option name="force_glsl_extensions_warn" value="true" />
158        </application>
159
160        <application name="Dune: Spice Wars" executable="D4X.exe">
161            <option name="disable_uniform_array_resize" value="true" />
162        </application>
163
164        <application name="The Chronicles of Riddick: Assault on Dark Athena" executable="DarkAthena.exe">
165	        <option name="disable_uniform_array_resize" value="true" />
166            <option name="alias_shader_extension" value="GL_ATI_shader_texture_lod:GL_ARB_shader_texture_lod" />
167            <option name="allow_vertex_texture_bias" value="true" />
168        </application>
169
170        <application name="Dying Light" executable="DyingLightGame">
171            <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
172        </application>
173
174        <application name="Exanima" executable="Exanima.exe">
175            <option name="glsl_zero_init" value="true"/>
176        </application>
177
178        <application name="Full Bore" executable="fullbore">
179            <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
180        </application>
181
182        <application name="RAGE (64-bit)" executable="Rage64.exe">
183            <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
184            <option name="force_gl_map_buffer_synchronized" value="true" />
185        </application>
186
187        <application name="RAGE (32-bit)" executable="Rage.exe">
188            <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
189            <option name="force_gl_map_buffer_synchronized" value="true" />
190        </application>
191
192        <application name="Second Life" executable="do-not-directly-run-secondlife-bin">
193            <option name="allow_glsl_extension_directive_midshader" value="true" />
194        </application>
195
196        <application name="Warsow (32-bit)" executable="warsow.i386">
197            <option name="allow_glsl_extension_directive_midshader" value="true" />
198        </application>
199
200        <application name="Warsow (64-bit)" executable="warsow.x86_64">
201            <option name="allow_glsl_extension_directive_midshader" value="true" />
202        </application>
203
204        <application name="Rust" executable="rust">
205            <option name="glsl_zero_init" value="true"/>
206        </application>
207
208        <application name="Divinity: Original Sin Enhanced Edition" executable="EoCApp">
209            <option name="allow_glsl_extension_directive_midshader" value="true" />
210            <option name="glsl_correct_derivatives_after_discard" value="true" />
211            <option name="force_gl_vendor" value="ATI Technologies, Inc."/>
212        </application>
213
214        <application name="Metro 2033 Redux / Metro Last Night Redux" executable="metro">
215            <option name="allow_glsl_extension_directive_midshader" value="true" />
216        </application>
217
218        <application name="Worms W.M.D" executable="Worms W.M.Dx64">
219            <option name="allow_higher_compat_version" value="true" />
220        </application>
221
222        <application name="Crookz - The Big Heist" executable="Crookz">
223            <option name="allow_higher_compat_version" value="true" />
224        </application>
225
226        <application name="Tropico 5" executable="Tropico5">
227            <option name="allow_higher_compat_version" value="true" />
228        </application>
229
230        <application name="Faster than Light (32-bit)" executable="FTL.x86">
231            <option name="allow_higher_compat_version" value="true" />
232        </application>
233
234        <application name="Faster than Light (64-bit)" executable="FTL.amd64">
235            <option name="allow_higher_compat_version" value="true" />
236        </application>
237
238        <application name="Final Fantasy VIII: Remastered" executable="FFVIII.exe">
239            <option name="allow_higher_compat_version" value="true" />
240        </application>
241
242        <application name="SNK HEROINES Tag Team Frenzy" executable="SNKHEROINES.exe">
243            <option name="force_compat_shaders" value="true" />
244        </application>
245
246        <application name="Metal Slug XX" executable="MSXX_main.exe">
247            <option name="force_compat_shaders" value="true" />
248        </application>
249
250        <application name="The Culling" executable="Victory">
251            <option name="force_glsl_version" value="440" />
252        </application>
253
254        <application name="Spec Ops: The Line (32-bit)" executable="specops.i386">
255            <option name="force_glsl_abs_sqrt" value="true" />
256        </application>
257
258        <application name="Spec Ops: The Line (64-bit)" executable="specops">
259            <option name="force_glsl_abs_sqrt" value="true" />
260        </application>
261
262        <application name="Jamestown+" executable="JamestownPlus.exe">
263            <option name="force_compat_profile" value="true" />
264        </application>
265
266        <application name="Kerbal Space Program (32-bit)" executable="KSP.x86">
267            <option name="glsl_zero_init" value="true"/>
268        </application>
269
270        <application name="Kerbal Space Program (64-bit)" executable="KSP.x86_64">
271            <option name="glsl_zero_init" value="true"/>
272        </application>
273
274        <application name="Luna Sky" executable="lunasky">
275            <option name="force_glsl_version" value="130"/>
276            <option name="glsl_ignore_write_to_readonly_var" value="true"/>
277        </application>
278
279        <application name="Rocket League" executable="RocketLeague">
280            <option name="glsl_correct_derivatives_after_discard" value="true"/>
281        </application>
282
283        <application name="The Witcher 2" executable="witcher2">
284            <option name="glsl_correct_derivatives_after_discard" value="true"/>
285        </application>
286
287        <application name="Unreal 4 Editor" executable="UE4Editor">
288            <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
289        </application>
290
291        <application name="Observer" executable="TheObserver-Linux-Shipping">
292            <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
293        </application>
294
295        <!-- Pixel Game Maker MV workarounds. Games include: YuuYuu Jiteki no Yuukarin, Elfin Force, Eden Gamma, etc -->
296        <application name="Pixel Game Maker MV" executable="player.exe">
297            <option name="allow_glsl_120_subset_in_110" value="true" />
298        </application>
299        <application name="Eden Gamma" executable="EdenGammaGame-0.3.0.2.exe">
300            <option name="allow_glsl_120_subset_in_110" value="true" />
301        </application>
302
303        <application name="Steamroll" executable="Steamroll-Linux-Shipping">
304            <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
305        </application>
306
307        <application name="Refunct" executable="Refunct-Linux-Shipping">
308            <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
309        </application>
310
311        <application name="We Happy Few" executable="GlimpseGame">
312            <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
313        </application>
314
315        <application name="Google Earth VR" executable="Earth.exe">
316            <option name="allow_glsl_builtin_const_expression" value="true"/>
317            <option name="allow_glsl_relaxed_es" value="true"/>
318        </application>
319
320        <application name="Champions of Regnum" executable="game">
321            <option name="allow_extra_pp_tokens" value="true" />
322        </application>
323
324        <application name="Wolfenstein The Old Blood" executable="WolfOldBlood_x64.exe">
325            <option name="force_compat_profile" value="true" />
326        </application>
327
328        <application name="ARMA 3" executable="arma3.x86_64">
329            <option name="glsl_correct_derivatives_after_discard" value="true"/>
330        </application>
331
332        <application name="Epic Games Launcher" executable="EpicGamesLauncher.exe">
333            <option name="force_compat_profile" value="true" />
334        </application>
335
336        <application name="GpuTest" executable="GpuTest">
337            <!-- GiMark benchmark from GpuTest does not initialize .w channel of
338                 lightDir0 and lightDir1 varyings in the vertex shader while
339                 uses it in the fragment shader. -->
340            <option name="glsl_zero_init" value="true"/>
341        </application>
342
343        <application name="Curse of the Dead Gods" executable="Curse of the Dead Gods.exe">
344            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/2598 -->
345            <option name="glsl_zero_init" value="true" />
346        </application>
347
348        <application name="GRID Autosport" executable="GridAutosport">
349            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/1258 -->
350            <option name="force_integer_tex_nearest" value="true" />
351        </application>
352
353        <application name="DIRT: Showdown" executable="dirt.i386">
354            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/1258 -->
355            <option name="force_integer_tex_nearest" value="true" />
356        </application>
357
358        <application name="DiRT Rally" executable="DirtRally">
359            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/5648 -->
360            <option name="vs_position_always_invariant" value="true" />
361        </application>
362
363        <application name="Homerun Clash" executable="com.haegin.homerunclash">
364            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/7199 -->
365            <option name="lower_depth_range_rate" value="0.8" />
366        </application>
367
368        <application name="The Spirit and The Mouse" executable="TheSpiritAndTheMouse.exe">
369            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/9738 -->
370            <option name="lower_depth_range_rate" value="0.8" />
371        </application>
372
373        <application name="Penumbra: Overture" executable="Penumbra.exe">
374            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/8425 -->
375            <option name="allow_multisampled_copyteximage" value="true" />
376        </application>
377
378        <!-- Workarounds for SPECviewperf relying on invalid / non-conformant
379             OpenGL behavior. Older SPECviewperf versions might also need this.
380          -->
381        <application name="SPECviewperf13" executable="viewperf">
382            <option name="vblank_mode" value="0" />
383            <option name="allow_glsl_extension_directive_midshader" value="true" />
384            <option name="allow_glsl_120_subset_in_110" value="true" />
385            <option name="force_gl_names_reuse" value="true" />
386            <!-- This makes it use GL_NVX_gpu_memory_info to query memory info
387                 instead of non-existent GLX_AMD_gpu_association. Yes, it checks
388                 the vendor string, not the extension list. -->
389            <option name="force_gl_vendor" value="NVIDIA Corporation" />
390            <!-- creo-02 doesn't enable GL_EXT_shader_image_load_store in GLSL -->
391            <option name="force_glsl_extensions_warn" value="true" />
392            <option name="mesa_glthread_app_profile" value="1" />
393            <option name="mesa_no_error" value="true" />
394            <!-- Creating 10-bit pbuffers fails in the X server and returns BadAlloc. -->
395            <option name="allow_rgb10_configs" value="false" />
396            <option name="allow_invalid_glx_destroy_window" value="true" />
397        </application>
398
399        <!-- Workaround for unsynchronized VBO updates on Dead Cells android
400             game.  (Possibly also needed for desktop version?)
401         -->
402        <application name="Dead-Cells" executable="com.playdigious.deadcells.mobile">
403            <option name="ignore_map_unsynchronized" value="true" />
404        </application>
405
406        <application name="Teardown" executable="teardown.exe">
407            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/3714 -->
408            <option name="force_integer_tex_nearest" value="true" />
409            <option name="allow_glsl_extension_directive_midshader" value="true" />
410        </application>
411
412        <application name="Golf With Your Friends" executable="Golf With Your Friends.x86_64">
413            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/4547 -->
414            <option name="glsl_correct_derivatives_after_discard" value="true" />
415        </application>
416
417        <application name="Cossacks 3" executable="cossacks.exe">
418            <option name="allow_glsl_120_subset_in_110" value="true" />
419        </application>
420
421        <application name="Kaiju-A-Gogo" executable="kaiju.exe">
422            <option name="allow_glsl_120_subset_in_110" value="true" />
423        </application>
424
425        <application name="Captain Lycop: Invasion of the Heters (Wine)" executable="lycop.exe">
426            <option name="allow_glsl_120_subset_in_110" value="true" />
427        </application>
428
429        <application name="Captain Lycop: Invasion of the Heters" executable="lycop">
430            <option name="allow_glsl_120_subset_in_110" value="true" />
431        </application>
432
433        <application name="BETA CAE Systems - GL detect tool" executable="detect_opengl_tool">
434            <option name="mesa_extension_override" value="-GL_MESA_pack_invert -GL_MESA_framebuffer_flip_y -GL_MESA_window_pos" />
435        </application>
436        <application name="BETA CAE Systems - ANSA" executable="ansa_linux_x86_64">
437            <option name="mesa_extension_override" value="-GL_MESA_pack_invert -GL_MESA_framebuffer_flip_y -GL_MESA_window_pos" />
438            <option name="do_dce_before_clip_cull_analysis" value="true" />
439        </application>
440        <application name="BETA CAE Systems - META" executable="meta_post_x86_64">
441            <option name="mesa_extension_override" value="-GL_MESA_pack_invert -GL_MESA_framebuffer_flip_y -GL_MESA_window_pos" />
442        </application>
443
444        <!-- Workaround for Mari with executable name like Mari4.5v2, Mari4.7v4 -->
445        <application name="Mari" executable_regexp="Mari[0-9]+[.][0-9]+v[0-9]+">
446            <!-- Need ARB_gpu_shader5 for non-const sampler array index support -->
447            <option name="force_glsl_extensions_warn" value="true" />
448        </application>
449
450        <application name="Discovery Studio 2020" executable="DiscoveryStudio2020-bin">
451            <option name="force_direct_glx_context" value="true" />
452        </application>
453
454        <application name="Abaqus" executable="ABQcaeK">
455            <option name="keep_native_window_glx_drawable" value="true" />
456            <option name="allow_rgb10_configs" value="false" />
457        </application>
458
459        <application name="Maya" executable="maya.bin">
460            <!-- Needed otherwise the app doesn't try to use OpenCL -->
461            <option name="force_gl_vendor" value="ATI Technologies Inc." />
462        </application>
463
464        <application name="SD Gundam G Generation Cross Rays" executable="togg.exe">
465            <option name="force_compat_shaders" value="true" />
466        </application>
467
468        <application name="FINAL FANTASY XI" executable="pol.exe">
469            <!-- Causes invisible textures. -->
470            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/7562 -->
471            <option name="mesa_glthread_app_profile" value="0"/>
472        </application>
473
474        <!-- The GL thread allowlist is below, workarounds are above.
475             Keep it that way. -->
476
477        <application name="Minecraft" executable="minecraft-launcher">
478            <option name="mesa_glthread_app_profile" value="1"/>
479        </application>
480        <application name="Minecraft-FTB" executable="ftb-app">
481            <option name="mesa_glthread_app_profile" value="1"/>
482        </application>
483
484        <application name="Alien Isolation" executable="AlienIsolation">
485            <option name="mesa_glthread_app_profile" value="1"/>
486        </application>
487
488        <application name="BioShock Infinite" executable="bioshock.i386">
489            <option name="mesa_glthread_app_profile" value="1"/>
490        </application>
491
492        <application name="Borderlands 2" executable="Borderlands2">
493            <option name="mesa_glthread_app_profile" value="1"/>
494        </application>
495
496        <application name="Civilization 5" executable="Civ5XP">
497            <option name="mesa_glthread_app_profile" value="1"/>
498        </application>
499        <application name="Civilization 6" executable="Civ6">
500            <option name="mesa_glthread_app_profile" value="1"/>
501        </application>
502        <application name="Civilization 6" executable="Civ6Sub">
503            <option name="mesa_glthread_app_profile" value="1"/>
504        </application>
505
506        <application name="Dreamfall Chapters" executable="Dreamfall Chapters">
507            <option name="mesa_glthread_app_profile" value="1"/>
508        </application>
509
510        <application name="Hitman" executable="HitmanPro">
511            <option name="mesa_glthread_app_profile" value="1"/>
512        </application>
513
514        <application name="Renowned Explorers: International Society" executable="abbeycore_steam">
515            <option name="mesa_glthread_app_profile" value="1"/>
516        </application>
517
518        <application name="Saints Row 2" executable="saintsrow2.i386">
519            <option name="mesa_glthread_app_profile" value="1"/>
520        </application>
521        <application name="Saints Row: The Third" executable="SaintsRow3.i386">
522            <option name="mesa_glthread_app_profile" value="1"/>
523        </application>
524        <application name="Saints Row IV" executable="SaintsRow4.i386">
525            <option name="mesa_glthread_app_profile" value="1"/>
526        </application>
527        <application name="Saints Row: Gat out of Hell" executable="SaintsRow4GooH.i386">
528            <option name="mesa_glthread_app_profile" value="1"/>
529        </application>
530
531        <application name="Sid Meier's: Civilization Beyond Earth" executable="CivBE">
532            <option name="mesa_glthread_app_profile" value="1"/>
533        </application>
534
535        <application name="The Witcher 2" executable="witcher2">
536            <option name="mesa_glthread_app_profile" value="1"/>
537        </application>
538
539        <application name="American Truck Simulator" executable="amtrucks">
540            <option name="mesa_glthread_app_profile" value="1"/>
541        </application>
542        <application name="Euro Truck Simulator 2" executable="eurotrucks2">
543            <option name="mesa_glthread_app_profile" value="1"/>
544        </application>
545
546        <application name="Overlord" executable="overlord.i386">
547            <option name="mesa_glthread_app_profile" value="1"/>
548        </application>
549        <application name="Overlord 2" executable="overlord2.i386">
550            <option name="mesa_glthread_app_profile" value="1"/>
551        </application>
552
553        <application name="Oil Rush" executable="OilRush_x86">
554            <option name="mesa_glthread_app_profile" value="1"/>
555        </application>
556
557        <application name="War Thunder" executable="aces">
558            <option name="mesa_glthread_app_profile" value="1"/>
559        </application>
560        <application name="War Thunder (Wine)" executable="aces.exe">
561            <option name="mesa_glthread_app_profile" value="1"/>
562        </application>
563
564        <application name="Outlast" executable="OLGame.x86_64">
565            <option name="mesa_glthread_app_profile" value="1"/>
566        </application>
567
568        <application name="Spec Ops: The Line (32-bit)" executable="specops.i386">
569            <option name="mesa_glthread_app_profile" value="1"/>
570        </application>
571        <application name="Spec Ops: The Line (64-bit)" executable="specops">
572            <option name="mesa_glthread_app_profile" value="1"/>
573        </application>
574        <application name="Mount and Blade Warband" executable="mb_warband_linux">
575            <option name="mesa_glthread_app_profile" value="1"/>
576        </application>
577
578        <application name="Valheim" executable="valheim.x86_64">
579            <option name="mesa_glthread_app_profile" value="1"/>
580        </application>
581
582        <!-- around 18% performance increase in min and avg fps, max fps capped at 60fps. -->
583        <application name="Medieval II: Total War" executable="Medieval2">
584            <option name="mesa_glthread_app_profile" value="1"/>
585        </application>
586
587        <!-- min fps ~21 ===> ~27 while standing still in game, also higher gpu load. -->
588        <application name="Carnivores: Dinosaur Hunter Reborn (wine)" executable="Carnivores-master.exe">
589            <option name="mesa_glthread_app_profile" value="1"/>
590        </application>
591
592        <!-- around 30% increase in avg fps -->
593        <application name="Far Cry 2 (wine)" executable="farcry2.exe">
594            <option name="mesa_glthread_app_profile" value="1"/>
595        </application>
596
597        <application name="Talos Principle" executable="Talos">
598            <option name="mesa_glthread_app_profile" value="1"/>
599            <option name="vk_wsi_force_swapchain_to_current_extent" value="true"/>
600        </application>
601        <application name="Talos Principle (Unrestricted)" executable="Talos_Unrestricted">
602            <option name="mesa_glthread_app_profile" value="1"/>
603            <option name="vk_wsi_force_swapchain_to_current_extent" value="true"/>
604        </application>
605
606        <application name="Serious Sam Fusion" executable="Sam2017">
607            <option name="vk_wsi_force_swapchain_to_current_extent" value="true"/>
608        </application>
609        <application name="Serious Sam Fusion (Unrestricted)" executable="Sam2017_Unrestricted">
610            <option name="vk_wsi_force_swapchain_to_current_extent" value="true"/>
611        </application>
612
613        <!-- roughly 30% increase in fps -->
614        <application name="7 Days To Die (64-bit)" executable="7DaysToDie.x86_64">
615            <option name="mesa_glthread_app_profile" value="1"/>
616        </application>
617        <application name="7 Days To Die (32-bit)" executable="7DaysToDie.x86">
618            <option name="mesa_glthread_app_profile" value="1"/>
619        </application>
620
621        <!-- Emulator tends to have a high CPU load for GPU emulation, so separating the driver overhead yield an improvement. -->
622        <application name="Dolphin Emulator" executable="dolphin-emu">
623            <option name="mesa_glthread_app_profile" value="1"/>
624        </application>
625        <application name="Citra - Nintendo 3DS Emulator" executable="citra-qt">
626            <option name="mesa_glthread_app_profile" value="1"/>
627        </application>
628        <application name="Yuzu - Nintendo Switch Emulator" executable="yuzu">
629            <option name="mesa_glthread_app_profile" value="1"/>
630        </application>
631        <application name="RPCS3" executable="rpcs3">
632            <option name="mesa_glthread_app_profile" value="1"/>
633        </application>
634        <application name="PCSX2" executable="PCSX2">
635            <option name="mesa_glthread_app_profile" value="1"/>
636        </application>
637
638        <application name="From The Depths" executable="From_The_Depths.x86_64">
639            <option name="mesa_glthread_app_profile" value="1"/>
640        </application>
641
642        <!-- #Minimum fps 136 ==> 144 -->
643        <application name="Plague Inc Evolved (32-bit)" executable="PlagueIncEvolved.x86">
644            <option name="mesa_glthread_app_profile" value="1" />
645        </application>
646        <application name="Plague Inc Evolved (64-bit)" executable="PlagueIncEvolved.x86_64">
647            <option name="mesa_glthread_app_profile" value="1" />
648        </application>
649
650        <!-- 10% fps increase -->
651        <application name="Beholder (32-bit)" executable="Beholder.x86">
652            <option name="mesa_glthread_app_profile" value="1" />
653        </application>
654        <application name="Beholder (64-bit)" executable="Beholder.x86_64">
655            <option name="mesa_glthread_app_profile" value="1" />
656        </application>
657
658        <!-- X3 games: 15% avg fps increase while flying in space -->
659        <application name="X3 Reunion" executable="X3R_main">
660            <option name="mesa_glthread_app_profile" value="1" />
661        </application>
662        <application name="X3 Terran Conflict" executable="X3TR_main">
663            <option name="mesa_glthread_app_profile" value="1" />
664        </application>
665        <application name="X3 Albion Prelude" executable="X3AP_main">
666            <option name="mesa_glthread_app_profile" value="1" />
667        </application>
668
669        <!-- +30% avg fps -->
670        <application name="Borderlands: The Pre-Sequel" executable="BorderlandsPreSequel">
671            <option name="mesa_glthread_app_profile" value="1" />
672        </application>
673        <application name="Transport Fever" executable="TransportFever">
674            <option name="mesa_glthread_app_profile" value="1" />
675        </application>
676
677        <application name="Unigine Sanctuary" executable="Sanctuary">
678            <option name="mesa_glthread_app_profile" value="1" />
679        </application>
680        <application name="Unigine Tropics" executable="Tropics">
681            <option name="mesa_glthread_app_profile" value="1" />
682        </application>
683        <application name="Unigine Heaven (32-bit)" executable="heaven_x86">
684            <option name="mesa_glthread_app_profile" value="1" />
685        </application>
686        <application name="Unigine Heaven (64-bit)" executable="heaven_x64">
687            <option name="mesa_glthread_app_profile" value="1" />
688        </application>
689        <application name="Unigine Valley (32-bit)" executable="valley_x86">
690            <option name="mesa_glthread_app_profile" value="1" />
691        </application>
692        <application name="Unigine Valley (64-bit)" executable="valley_x64">
693            <option name="mesa_glthread_app_profile" value="1" />
694        </application>
695        <application name="Unigine Superposition" executable="superposition">
696            <option name="mesa_glthread_app_profile" value="1" />
697        </application>
698
699        <application name="Basemark GPU" executable="BasemarkGPU_gl">
700            <option name="mesa_glthread_app_profile" value="1" />
701        </application>
702
703        <application name="Stellaris" executable="stellaris">
704            <option name="mesa_glthread_app_profile" value="1"/>
705        </application>
706
707        <application name="Battletech" executable="BattleTech">
708            <option name="mesa_glthread_app_profile" value="1"/>
709        </application>
710
711        <application name="DeusExMD" executable="DeusExMD">
712            <option name="mesa_glthread_app_profile" value="0"/>
713        </application>
714        <application name="F1 2015" executable="F12015">
715            <option name="mesa_glthread_app_profile" value="0"/>
716        </application>
717        <application name="KWin Wayland" executable="kwin_wayland">
718            <!-- This works around a cursor issue with glthread.
719                 See: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7351#note_1581105 -->
720            <option name="mesa_glthread_app_profile" value="0"/>
721        </application>
722
723        <!-- Adaptive sync denylist follows below: -->
724        <application name="gnome-shell" executable="gnome-shell">
725            <option name="adaptive_sync" value="false" />
726            <option name="v3d_nonmsaa_texture_size_limit" value="true" />
727        </application>
728        <application name="Desktop — Plasma" executable="plasmashell">
729            <option name="adaptive_sync" value="false" />
730        </application>
731        <application name="budgie-wm" executable="budgie-wm">
732            <option name="adaptive_sync" value="false" />
733        </application>
734        <application name="kwin_x11" executable="kwin_x11">
735            <option name="adaptive_sync" value="false" />
736        </application>
737        <application name="ksmserver-logout-greeter" executable="ksmserver-logout-greeter">
738            <option name="adaptive_sync" value="false" />
739        </application>
740        <application name="ksmserver-switchuser-greeter" executable="ksmserver-switchuser-greeter">
741            <option name="adaptive_sync" value="false" />
742        </application>
743        <application name="kscreenlocker_greet" executable="kscreenlocker_greet">
744            <option name="adaptive_sync" value="false" />
745        </application>
746        <application name="startplasma" executable="startplasma">
747            <option name="adaptive_sync" value="false" />
748        </application>
749        <application name="sddm-greeter" executable="sddm-greeter">
750            <option name="adaptive_sync" value="false" />
751        </application>
752        <application name="krunner" executable="krunner">
753            <option name="adaptive_sync" value="false" />
754        </application>
755        <application name="spectacle" executable="spectacle">
756            <option name="adaptive_sync" value="false" />
757        </application>
758        <application name="marco" executable="marco">
759            <option name="adaptive_sync" value="false" />
760        </application>
761        <application name="compton" executable="compton">
762            <option name="adaptive_sync" value="false" />
763        </application>
764        <application name="picom" executable="picom">
765            <option name="adaptive_sync" value="false" />
766        </application>
767        <application name="xfwm4" executable="xfwm4">
768            <option name="adaptive_sync" value="false" />
769        </application>
770        <application name="Enlightenment" executable="enlightenment">
771            <option name="adaptive_sync" value="false" />
772        </application>
773        <application name="mutter" executable="mutter">
774            <option name="adaptive_sync" value="false" />
775            <option name="v3d_nonmsaa_texture_size_limit" value="true" />
776        </application>
777        <application name="muffin" executable="muffin">
778            <option name="adaptive_sync" value="false" />
779        </application>
780        <application name="cinnamon" executable="cinnamon">
781            <option name="adaptive_sync" value="false" />
782        </application>
783        <application name="compiz" executable="compiz">
784            <option name="adaptive_sync" value="false" />
785        </application>
786        <application name="Firefox" executable="firefox">
787            <option name="adaptive_sync" value="false" />
788        </application>
789        <application name="Firefox ESR" executable="firefox-esr">
790            <option name="adaptive_sync" value="false" />
791        </application>
792        <application name="Chromium" executable="chromium">
793            <option name="adaptive_sync" value="false" />
794        </application>
795        <application name="Google Chrome" executable="chrome">
796            <option name="adaptive_sync" value="false" />
797        </application>
798        <application name="Iceweasel" executable="iceweasel">
799            <option name="adaptive_sync" value="false" />
800        </application>
801        <application name="Epiphany" executable="epiphany">
802            <option name="adaptive_sync" value="false" />
803        </application>
804        <application name="Konqueror" executable="konqueror">
805            <option name="adaptive_sync" value="false" />
806        </application>
807        <application name="Falkon" executable="falkon">
808            <option name="adaptive_sync" value="false" />
809        </application>
810        <application name="Seamonkey" executable="seamonkey">
811            <option name="adaptive_sync" value="false" />
812        </application>
813        <application name="Waterfox" executable="waterfox">
814            <option name="adaptive_sync" value="false" />
815        </application>
816        <application name="VLC Media Player" executable="vlc">
817            <option name="adaptive_sync" value="false" />
818        </application>
819        <application name="Totem" executable="totem">
820            <option name="adaptive_sync" value="false" />
821        </application>
822        <application name="Dragon Player" executable="dragon">
823            <option name="adaptive_sync" value="false" />
824        </application>
825        <application name="Xorg" executable="Xorg">
826            <option name="v3d_nonmsaa_texture_size_limit" value="true" />
827        </application>
828
829        <application name="gfxbench" executable="testfw_app">
830            <option name="mesa_glthread_app_profile" value="0" />
831            <option name="vk_x11_override_min_image_count" value="2" />
832            <option name="vk_wsi_force_bgra8_unorm_first" value="true" />
833        </application>
834
835        <application name="Rainbow Six Extraction (Wine)" executable="R6-Extraction.exe">
836            <option name="vk_x11_override_min_image_count" value="2" />
837            <option name="vk_x11_strict_image_count" value="true" />
838        </application>
839
840        <application name="Brink" executable="brink.exe">
841            <option name="glx_extension_override" value="-GLX_OML_swap_method" />
842            <option name="allow_higher_compat_version" value="true" />
843        </application>
844
845        <application name="Enter The Gungeon (32 bits)" executable="EtG.x86">
846            <option name="glsl_correct_derivatives_after_discard" value="true" />
847        </application>
848
849        <application name="Enter The Gungeon (64 bits)" executable="EtG.x86_64">
850            <option name="glsl_correct_derivatives_after_discard" value="true" />
851        </application>
852
853        <!-- Workaround for STAR WARS: Knights of the Old Republic relying on
854             non-specified OpenGL behavior (expecting texture names to be
855             small enough to fit in the static array).
856          -->
857        <application name="SWKOTOR (wine)" executable="swkotor.exe">
858            <option name="force_gl_names_reuse" value="true"/>
859        </application>
860
861        <application name="Assault Android Cactus (32-bit)" executable="cactus_demo.x86">
862            <option name="vs_position_always_precise" value="true" />
863        </application>
864        <application name="Assault Android Cactus (64-bit)" executable="cactus_demo.x86_64">
865            <option name="vs_position_always_precise" value="true" />
866        </application>
867        <application name="Assault Android Cactus (32-bit)" executable="cactus.x86">
868            <option name="vs_position_always_precise" value="true" />
869        </application>
870        <application name="Assault Android Cactus (64-bit)" executable="cactus.x86_64">
871            <option name="vs_position_always_precise" value="true" />
872        </application>
873
874        <application name="Limbo" executable="limbo">
875            <!-- issue 7976 -->
876            <option name="glsl_zero_init" value="true"/>
877        </application>
878
879        <application name="Genshin Impact" executable="com.miHoYo.GenshinImpact">
880            <option name="ignore_discard_framebuffer" value="true" />
881        </application>
882
883        <!-- Vulkan workarounds: -->
884
885        <!-- Works around the game not starting (does not deal with
886             the implementation returning more images than the minimum
887             specified by the application. -->
888        <engine engine_name_match="UnrealEngine4.*" engine_versions="0:23">
889            <option name="vk_x11_strict_image_count" value="true" />
890        </engine>
891
892        <!-- DOOM crashes at startup without this workaround if the adaptative sync mode is enabled. -->
893        <application name="DOOM" executable="DOOMx64vk.exe">
894            <option name="vk_x11_strict_image_count" value="true" />
895        </application>
896
897        <!-- DOOM Doom Eternal happily creates a swapchain with 2 images for
898             IMMEDIATE. This fixes a 10% performance issue with RADV. -->
899        <application name="DOOMEternal" executable="DOOMEternalx64vk.exe">
900            <option name="vk_x11_ensure_min_image_count" value="true" />
901        </application>
902
903        <!-- Wolfenstein: Youngblood crashes at startup on xwayland without this workaround. -->
904        <application name="Wolfenstein: Youngblood(x64vk)" executable="Youngblood_x64vk.exe">
905            <option name="vk_x11_strict_image_count" value="true" />
906        </application>
907
908        <!-- Wolfenstein II: The New Colossus crashes with vsync turned off on xwayland without this workaround. -->
909        <application name="Wolfenstein II: The New Colossus" executable="NewColossus_x64vk.exe">
910            <option name="vk_x11_strict_image_count" value="true" />
911        </application>
912
913        <!-- Metro:Exodus crashes at startup on xwayland without this workaround. -->
914        <application name="Metro: Exodus" application_name_match="metroexodus">
915            <option name="vk_x11_strict_image_count" value="true" />
916        </application>
917
918        <application name="Forsaken Remastered" executable="ForsakenEx">
919            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/5437 -->
920            <option name="vk_dont_care_as_load" value="true" />
921        </application>
922
923	<!-- Path of Exile stops with "unsupported backbuffer count" when more than
924	     3 swapchain image are reported. -->
925	<application name="Path of Exile" executable="PathOfExile_x64Steam.exe">
926	  <option name="vk_x11_override_min_image_count" value="3" />
927        </application>
928        <application name="Path of Exile" executable="PathOfExileSteam.exe">
929            <option name="vk_x11_override_min_image_count" value="3" />
930        </application>
931
932        <!-- Disable fp16 support for browsers, since there is too much
933             broken WebGL out there that uses the wrong precision.
934             Bonus workaround for Firefox bug #1845309. -->
935        <application name="Firefox" executable="firefox">
936            <option name="no_fp16" value="true" />
937        </application>
938        <application name="Firefox ESR" executable="firefox-esr">
939            <option name="no_fp16" value="true" />
940        </application>
941        <application name="Chromium" executable="chromium">
942            <option name="no_fp16" value="true" />
943        </application>
944        <application name="Google Chrome" executable="chrome">
945            <option name="no_fp16" value="true" />
946        </application>
947        <application name="Iceweasel" executable="iceweasel">
948            <option name="no_fp16" value="true" />
949        </application>
950        <application name="Epiphany" executable="epiphany">
951            <option name="no_fp16" value="true" />
952        </application>
953        <application name="Konqueror" executable="konqueror">
954            <option name="no_fp16" value="true" />
955        </application>
956        <application name="Falkon" executable="falkon">
957            <option name="no_fp16" value="true" />
958        </application>
959        <application name="Seamonkey" executable="seamonkey">
960            <option name="no_fp16" value="true" />
961        </application>
962        <application name="Waterfox" executable="waterfox">
963            <option name="no_fp16" value="true" />
964        </application>
965    </device>
966    <!-- vmwgfx doesn't like full buffer swaps and can't sync to vertical retraces.-->
967    <device driver="vmwgfx">
968        <application name="gnome-shell" executable="gnome-shell">
969            <option name="glx_extension_override" value="-GLX_EXT_buffer_age -GLX_OML_sync_control -GLX_SGI_video_sync" />
970        </application>
971        <application name="cinnamon" executable="cinnamon">
972            <option name="glx_extension_override" value="-GLX_EXT_buffer_age -GLX_OML_sync_control -GLX_SGI_video_sync" />
973        </application>
974        <application name="Compiz" executable="Compiz">
975            <option name="glx_extension_override" value="-GLX_EXT_buffer_age -GLX_OML_sync_control" />
976        </application>
977    </device>
978    <device driver="radeonsi">
979        <application name="Alien Isolation" executable="AlienIsolation">
980            <option name="force_gl_vendor" value="X.Org" />
981        </application>
982        <application name="American Truck Simulator" executable="amtrucks">
983            <option name="radeonsi_zerovram" value="true" />
984        </application>
985        <application name="Counter-Strike Global Offensive" executable="csgo_linux64">
986            <option name="radeonsi_zerovram" value="true" />
987            <option name="radeonsi_clamp_div_by_zero" value="true" />
988        </application>
989        <application name="Exanima" executable="Exanima.exe">
990            <option name="radeonsi_zerovram" value="true"/>
991        </application>
992        <application name="Nowhere Patrol" executable="NowherePatrol.exe">
993            <option name="radeonsi_zerovram" value="true" />
994        </application>
995        <application name="Rocket League" executable="RocketLeague">
996            <option name="radeonsi_zerovram" value="true" />
997        </application>
998        <application name="Gfx Bench" executable="gfxbench_gl">
999            <!-- Helps offscreen tests -->
1000            <option name="mesa_glthread_app_profile" value="1"/>
1001        </application>
1002        <!-- YoYo game engine workarounds -->
1003        <application name="Monolith demo5" executable="runner" sha1="0c40d509a74e357f0280cb1bd882e9cd94b91bdf">
1004            <option name="radeonsi_sync_compile" value="true" />
1005            <option name="radeonsi_zerovram" value="true" />
1006        </application>
1007        <!-- Note: The following fix works for both Memoranda and Riptale as they have the same sha -->
1008        <application name="Memoranda / Riptale" executable="runner" sha1="aa13dec6af63c88f308ebb487693896434a4db56">
1009            <option name="radeonsi_sync_compile" value="true" />
1010        </application>
1011        <application name="Nuclear Throne" executable="runner" sha1="84814e8db125e889f5d9d4195a0ca72a871ea1fd">
1012            <option name="radeonsi_sync_compile" value="true" />
1013        </application>
1014        <application name="Undertale" executable="runner" sha1="dfa302e7ec78641d0696dbbc1a06fc29f34ff1ff">
1015            <option name="radeonsi_sync_compile" value="true" />
1016        </application>
1017        <application name="Turmoil" executable="runner" sha1="cbbf757aaab289859f8dae191a7d63afc30643d9">
1018            <option name="radeonsi_sync_compile" value="true" />
1019        </application>
1020        <application name="Peace, Death!" executable="runner" sha1="5b909f3d21799773370adf084f649848f098234e">
1021            <option name="radeonsi_sync_compile" value="true" />
1022        </application>
1023        <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/2647 -->
1024        <application name="Kerbal Space Program" executable="KSP.x86_64">
1025            <option name="radeonsi_no_infinite_interp" value="true" />
1026        </application>
1027        <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/2686 -->
1028        <application name="7 Days to Die" executable="7DaysToDie.x86_64">
1029            <option name="radeonsi_zerovram" value="true" />
1030        </application>
1031        <application name="7 Days to Die" executable="7DaysToDie.x86">
1032            <option name="radeonsi_zerovram" value="true" />
1033        </application>
1034        <application name="SPECviewperf13" executable="viewperf">
1035            <option name="glthread_nop_check_framebuffer_status" value="true" />
1036            <option name="radeonsi_sync_compile" value="true" />
1037        </application>
1038        <application name="Road Redemption" executable="RoadRedemption.x86_64">
1039            <option name="radeonsi_clamp_div_by_zero" value="true" />
1040        </application>
1041        <application name="Wasteland 2" executable="WL2">
1042            <option name="radeonsi_clamp_div_by_zero" value="true" />
1043        </application>
1044        <application name="Teardown" executable="teardown.exe">
1045            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/3714 -->
1046            <option name="radeonsi_clamp_div_by_zero" value="true" />
1047            <option name="radeonsi_no_infinite_interp" value="true" />
1048        </application>
1049        <application name="SpaceEngine" executable="SpaceEngine.exe">
1050            <option name="force_gl_vendor" value="X.Org" />
1051        </application>
1052        <application name="BETA CAE Systems - GL detect tool" executable="detect_opengl_tool">
1053            <option name="force_gl_vendor" value="ATI Technologies Inc." />
1054        </application>
1055        <application name="BETA CAE Systems - ANSA" executable="ansa_linux_x86_64">
1056            <option name="force_gl_vendor" value="ATI Technologies Inc." />
1057        </application>
1058        <application name="BETA CAE Systems - META" executable="meta_post_x86_64">
1059            <option name="force_gl_vendor" value="ATI Technologies Inc." />
1060            <option name="radeonsi_force_use_fma32" value="true" />
1061        </application>
1062        <application name="Black Geyser: Couriers of Darkness" executable="BlackGeyser.x86_64">
1063            <option name="radeonsi_zerovram" value="true" />
1064        </application>
1065    </device>
1066    <device driver="zink">
1067        <application name="Hyperdimension Neptunia Re;Birth1" executable="NeptuniaReBirth1.exe">
1068            <!-- glthread uploads need too much vram and exceed 32bit VA limit -->
1069            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/8333 -->
1070            <option name="mesa_glthread_app_profile" value="0"/>
1071        </application>
1072
1073        <application name="Borderlands 2 (Native, OpenGL, 32bit)" executable="Borderlands2">
1074            <!-- https://gitlab.freedesktop.org/mesa/mesa/-/issues/9205 -->
1075            <option name="glsl_correct_derivatives_after_discard" value="true" />
1076        </application>
1077
1078        <!-- GL_POINT_SMOOTH is used in Quake II to render particles -->
1079        <application name="Quake II" executable="quake2-engine">
1080            <option name="zink_emulate_point_smooth" value="true"/>
1081        </application>
1082        <application name="Quake II (yamagi)" executable="yamagi-quake2">
1083            <option name="zink_emulate_point_smooth" value="true"/>
1084        </application>
1085        <application name="Quake II (wine)" executable="quake2.exe">
1086            <option name="zink_emulate_point_smooth" value="true"/>
1087        </application>
1088        <application name="Tomb Raider 2013" executable="TombRaider">
1089            <option name="zink_shader_object_enable" value="true" />
1090        </application>
1091    </device>
1092    <device driver="iris">
1093        <application name="Middle Earth: Shadow of Mordor" executable="ShadowOfMordor">
1094            <option name="vs_position_always_invariant" value="true" />
1095        </application>
1096        <application name="glmark2" executable="glmark2">
1097            <option name="limit_trig_input_range" value="true" />
1098        </application>
1099        <application name="Counter-Strike: Global Offensive" executable="csgo_linux64">
1100            <option name="force_gl_vendor" value="X.Org" />
1101        </application>
1102        <application name="Insurgency" executable="insurgency_linux">
1103            <option name="force_gl_vendor" value="X.Org" />
1104        </application>
1105    </device>
1106    <device driver="crocus">
1107        <application name="glmark2" executable="glmark2">
1108            <option name="limit_trig_input_range" value="true" />
1109        </application>
1110        <application name="Counter-Strike: Global Offensive" executable="csgo_linux64">
1111            <option name="force_gl_vendor" value="X.Org" />
1112        </application>
1113        <application name="Insurgency" executable="insurgency_linux">
1114            <option name="force_gl_vendor" value="X.Org" />
1115        </application>
1116    </device>
1117    <device driver="anv">
1118        <application name="Aperture Desk Job" executable="deskjob">
1119            <option name="anv_assume_full_subgroups" value="true" />
1120        </application>
1121        <application name="DOOMEternal" executable="DOOMEternalx64vk.exe">
1122            <option name="anv_assume_full_subgroups" value="true" />
1123            <option name="fp64_workaround_enabled" value="true" />
1124        </application>
1125        <application name="Wolfenstein: Youngblood(x64vk)" executable="Youngblood_x64vk.exe">
1126            <option name="limit_trig_input_range" value="true" />
1127        </application>
1128        <application name="Batman™: Arkham Knight" executable="BatmanAK.exe">
1129            <option name="anv_sample_mask_out_opengl_behaviour" value="true"/>
1130        </application>
1131        <application name="Rise of the Tomb Raider" executable="RiseOfTheTombRaider">
1132            <option name="limit_trig_input_range" value="true" />
1133        </application>
1134        <application name="Rise of the Tomb Raider" executable="ROTTR.exe">
1135            <option name="limit_trig_input_range" value="true" />
1136        </application>
1137        <application name="NieR Replicant ver.1.22474487139" executable="NieR Replicant ver.1.22474487139.exe">
1138            <option name="limit_trig_input_range" value="true" />
1139        </application>
1140        <application name="NieR:Automata" executable="NieRAutomata.exe">
1141            <option name="limit_trig_input_range" value="true" />
1142        </application>
1143        <application name="Cyberpunk 2077" executable="Cyberpunk2077.exe">
1144            <option name="force_vk_vendor" value="-1" />
1145        </application>
1146        <application name="Cyberpunk 2077" executable="Cyberpunk2077.exe">
1147            <!--
1148            Cyberpunk 2077 uses a watchdog thread to terminate
1149            the process in case the render thread hasn't responded within 2 minutes.
1150            This option speeds up shader compilation.
1151            See: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9241
1152            -->
1153            <option name="shader_spilling_rate" value="15" />
1154        </application>
1155        <application name="Elden Ring" executable="eldenring.exe">
1156            <option name="fake_sparse" value="true" />
1157        </application>
1158        <!-- Needed to avoid XeSS code paths. -->
1159        <application name="Marvel's Spider-Man Remastered" executable="Spider-Man.exe">
1160            <option name="force_vk_vendor" value="-1" />
1161        </application>
1162        <application name="Hogwarts Legacy" executable="HogwartsLegacy.exe">
1163            <option name="force_vk_vendor" value="-1" />
1164        </application>
1165        <application name="DEATH STRANDING" executable="ds.exe">
1166            <option name="force_vk_vendor" value="-1" />
1167        </application>
1168        <!--
1169        Disable 16-bit feature on zink and angle so that GLES mediump doesn't
1170        lower to our inefficent 16-bit shader support.  No need to do so for
1171        ANGLE, since it uses RelaxedPrecision decorations, which the intel
1172        compiler ignores.
1173        -->
1174        <engine engine_name_match="mesa zink">
1175            <option name="no_16bit" value="true" />
1176        </engine>
1177    </device>
1178    <device driver="dzn">
1179        <application name="DOOMEternal" executable="DOOMEternalx64vk.exe">
1180            <option name="dzn_enable_8bit_loads_stores" value="true" />
1181            <option name="dzn_claim_wide_lines" value="true" />
1182        </application>
1183        <application name="No Man's Sky" executable="NMS.exe">
1184            <option name="dzn_claim_wide_lines" value="true" />
1185        </application>
1186    </device>
1187
1188    <device driver="r600">
1189        <application name="Tomb Raider 2013" executable="TombRaider">
1190            <option name="mesa_extension_override" value="-GL_ARB_shader_image_load_store" />
1191        </application>
1192    </device>
1193
1194    <device driver="virtio_gpu">
1195        <application name="Counter-Strike Global Offensive" executable="csgo_linux64">
1196            <option name="format_l8_srgb_enable_readback" value="true" />
1197        </application>
1198    </device>
1199    <!--
1200         The android game hall of shame:
1201
1202         Workarounds for android games that are not aware of open source drivers.
1203         These can be removed as games have their allowlists updated.
1204     -->
1205    <device driver="msm" device="FD618">
1206        <application name="Call of Duty Mobile" executable="com.activision.callofduty.shooter">
1207            <option name="force_gl_renderer" value="Adreno (TM) 618"/>
1208            <option name="force_gl_vendor" value="Qualcomm"/>
1209        </application>
1210        <application name="Asphalt 8" executable="com.gameloft.android.ANMP.GloftA8HM">
1211            <!-- Note: asphalt8's allowlist seems to not have been updated recently
1212                 enough to be aware of "Adreno (TM) 618", but we seem to otherwise
1213                 have enough headroom to opt into the higher settings.  (Conversely
1214                 the allowlist seems to allow G72-MP3 into the higher tier, despite
1215                 not being able to maintain fps.. possibly it is not properly
1216                 differentiating between various core MPn configurations.  So I'm
1217                 going to use that to justify claiming to be a618's *slightly*
1218                 bigger brother)
1219             -->
1220            <option name="force_gl_renderer" value="Adreno (TM) 630"/>
1221            <option name="force_gl_vendor" value="Qualcomm"/>
1222        </application>
1223        <application name="Asphalt 9" executable="com.gameloft.android.ANMP.GloftA9HM">
1224            <option name="force_gl_renderer" value="Adreno (TM) 618"/>
1225            <option name="force_gl_vendor" value="Qualcomm"/>
1226        </application>
1227        <application name="PUBG Mobile" executable="com.tencent.ig">
1228            <!-- Note: Maxed out a630 settings still limits max framerate, yet GPU
1229                 is below 45% utilization (mostly closer to 40%).  If I claim to
1230                 be a640, that unlocks "Extreme" framerate (and "Ultra HD" graphics).
1231                 With "Extreme" + "HDR" we are comfortably at 60fps with plenty of
1232                 headroom.  "Extreme" + "Ultra HD" (max settings for a640) we are
1233                 starting to approach the limit.  I'll stick with a630 to be
1234                 conservative, but argueably we could go higher.  (This flagship
1235                 gaming phone thing is a scam!)
1236             -->
1237            <option name="force_gl_renderer" value="Adreno (TM) 630"/>
1238            <option name="force_gl_vendor" value="Qualcomm"/>
1239        </application>
1240    </device>
1241</driconf>
1242