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