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