drirc: Set vs_position_always_invariant for Shadow of Mordor on Intel
[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 <option name="disable_arb_gpu_shader5" value="true" />
60 </application>
61
62 <application name="Unigine Tropics" executable="Tropics">
63 <option name="force_glsl_extensions_warn" value="true" />
64 <option name="disable_blend_func_extended" value="true" />
65 <option name="disable_arb_gpu_shader5" value="true" />
66 </application>
67
68 <application name="Unigine Heaven (32-bit)" executable="heaven_x86">
69 <option name="allow_glsl_extension_directive_midshader" value="true" />
70 <!-- remove dual_color_blend_by_location if 4.1 ever comes out -->
71 <option name="dual_color_blend_by_location" value="true" />
72 </application>
73
74 <application name="Unigine Heaven (64-bit)" executable="heaven_x64">
75 <option name="allow_glsl_extension_directive_midshader" value="true" />
76 <!-- remove dual_color_blend_by_location if 4.1 ever comes out -->
77 <option name="dual_color_blend_by_location" value="true" />
78 </application>
79
80 <application name="Unigine Valley (32-bit)" executable="valley_x86">
81 <option name="allow_glsl_extension_directive_midshader" value="true" />
82 <!-- remove dual_color_blend_by_location if 1.1 ever comes out -->
83 <option name="dual_color_blend_by_location" value="true" />
84 </application>
85
86 <application name="Unigine Valley (64-bit)" executable="valley_x64">
87 <option name="allow_glsl_extension_directive_midshader" value="true" />
88 <!-- remove dual_color_blend_by_location if 1.1 ever comes out -->
89 <option name="dual_color_blend_by_location" value="true" />
90 </application>
91
92 <application name="Unigine OilRush (32-bit)" executable="OilRush_x86">
93 <option name="disable_blend_func_extended" value="true" />
94 <option name="allow_glsl_extension_directive_midshader" value="true" />
95 </application>
96
97 <application name="Unigine OilRush (64-bit)" executable="OilRush_x64">
98 <option name="disable_blend_func_extended" value="true" />
99 <option name="allow_glsl_extension_directive_midshader" value="true" />
100 </application>
101
102 <application name="Savage 2" executable="savage2.bin">
103 <option name="disable_glsl_line_continuations" value="true" />
104 </application>
105
106 <application name="Topogun (32-bit)" executable="topogun32">
107 <option name="always_have_depth_buffer" value="true" />
108 </application>
109
110 <application name="Topogun (64-bit)" executable="topogun64">
111 <option name="always_have_depth_buffer" value="true" />
112 </application>
113
114 <application name="Dead Island (incl. Definitive Edition)" executable="DeadIslandGame">
115 <option name="allow_glsl_extension_directive_midshader" value="true" />
116
117 <!-- For the Definitive Edition which shares the same executable name -->
118 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
119 </application>
120
121 <application name="Dead Island Riptide Definitive Edition" executable="DeadIslandRiptideGame">
122 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
123 </application>
124
125 <application name="Doom 3: BFG" executable="Doom3BFG.exe">
126 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
127 <option name="force_glsl_extensions_warn" value="true" />
128 </application>
129
130 <application name="Dying Light" executable="DyingLightGame">
131 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
132 </application>
133
134 <application name="RAGE (64-bit)" executable="Rage64.exe">
135 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
136 </application>
137
138 <application name="RAGE (32-bit)" executable="Rage.exe">
139 <option name="allow_glsl_builtin_variable_redeclaration" value="true" />
140 </application>
141
142 <application name="Second Life" executable="do-not-directly-run-secondlife-bin">
143 <option name="allow_glsl_extension_directive_midshader" value="true" />
144 </application>
145
146 <application name="Warsow (32-bit)" executable="warsow.i386">
147 <option name="allow_glsl_extension_directive_midshader" value="true" />
148 </application>
149
150 <application name="Warsow (64-bit)" executable="warsow.x86_64">
151 <option name="allow_glsl_extension_directive_midshader" value="true" />
152 </application>
153
154 <application name="Rust" executable="rust">
155 <option name="glsl_zero_init" value="true"/>
156 </application>
157
158 <application name="Divinity: Original Sin Enhanced Edition" executable="EoCApp">
159 <option name="allow_glsl_extension_directive_midshader" value="true" />
160 <option name="glsl_correct_derivatives_after_discard" value="true" />
161 <option name="force_gl_vendor" value="ATI Technologies, Inc."/>
162 </application>
163
164 <application name="Metro 2033 Redux / Metro Last Night Redux" executable="metro">
165 <option name="allow_glsl_extension_directive_midshader" value="true" />
166 </application>
167
168 <application name="Worms W.M.D" executable="Worms W.M.Dx64">
169 <option name="allow_higher_compat_version" value="true" />
170 </application>
171
172 <application name="Crookz - The Big Heist" executable="Crookz">
173 <option name="allow_higher_compat_version" value="true" />
174 </application>
175
176 <application name="Tropico 5" executable="Tropico5">
177 <option name="allow_higher_compat_version" value="true" />
178 </application>
179
180 <application name="The Culling" executable="Victory">
181 <option name="force_glsl_version" value="440" />
182 </application>
183
184 <application name="Spec Ops: The Line (32-bit)" executable="specops.i386">
185 <option name="force_glsl_abs_sqrt" value="true" />
186 </application>
187
188 <application name="Spec Ops: The Line (64-bit)" executable="specops">
189 <option name="force_glsl_abs_sqrt" value="true" />
190 </application>
191
192 <application name="Kerbal Space Program (32-bit)" executable="KSP.x86">
193 <option name="glsl_zero_init" value="true"/>
194 </application>
195
196 <application name="Kerbal Space Program (64-bit)" executable="KSP.x86_64">
197 <option name="glsl_zero_init" value="true"/>
198 </application>
199
200 <application name="Rocket League" executable="RocketLeague">
201 <option name="glsl_correct_derivatives_after_discard" value="true"/>
202 </application>
203
204 <application name="The Witcher 2" executable="witcher2">
205 <option name="glsl_correct_derivatives_after_discard" value="true"/>
206 </application>
207
208 <application name="Unreal 4 Editor" executable="UE4Editor">
209 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
210 </application>
211
212 <application name="Observer" executable="TheObserver-Linux-Shipping">
213 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
214 </application>
215
216 <application name="Steamroll" executable="Steamroll-Linux-Shipping">
217 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
218 </application>
219
220 <application name="Refunct" executable="Refunct-Linux-Shipping">
221 <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/>
222 </application>
223
224 <application name="Google Earth VR" executable="Earth.exe">
225 <option name="allow_glsl_builtin_const_expression" value="true"/>
226 <option name="allow_glsl_relaxed_es" value="true"/>
227 </application>
228
229 <application name="No Mans Sky" executable="NMS.exe">
230 <option name="force_glsl_extensions_warn" value="true" />
231 <option name="allow_glsl_layout_qualifier_on_function_parameters" value="true" />
232 </application>
233
234 <application name="Wolfenstein The Old Blood" executable="WolfOldBlood_x64.exe">
235 <option name="force_compat_profile" value="true" />
236 </application>
237
238 <application name="ARMA 3" executable="arma3.x86_64">
239 <option name="glsl_correct_derivatives_after_discard" value="true"/>
240 </application>
241
242 <application name="Epic Games Launcher" executable="EpicGamesLauncher.exe">
243 <option name="force_compat_profile" value="true" />
244 </application>
245
246 <application name="GpuTest" executable="GpuTest">
247 <!-- GiMark benchmark from GpuTest does not initialize .w channel of
248 lightDir0 and lightDir1 varyings in the vertex shader while
249 uses it in the fragment shader. -->
250 <option name="glsl_zero_init" value="true"/>
251 </application>
252
253 <!-- The GL thread whitelist is below, workarounds are above.
254 Keep it that way. -->
255
256 <application name="Alien Isolation" executable="AlienIsolation">
257 <option name="mesa_glthread" value="true"/>
258 </application>
259
260 <application name="BioShock Infinite" executable="bioshock.i386">
261 <option name="mesa_glthread" value="true"/>
262 </application>
263
264 <application name="Borderlands 2" executable="Borderlands2">
265 <option name="mesa_glthread" value="true"/>
266 </application>
267
268 <application name="Civilization 5" executable="Civ5XP">
269 <option name="mesa_glthread" value="true"/>
270 </application>
271 <application name="Civilization 6" executable="Civ6">
272 <option name="mesa_glthread" value="true"/>
273 </application>
274 <application name="Civilization 6" executable="Civ6Sub">
275 <option name="mesa_glthread" value="true"/>
276 </application>
277
278 <application name="Dreamfall Chapters" executable="Dreamfall Chapters">
279 <option name="mesa_glthread" value="true"/>
280 </application>
281
282 <application name="Hitman" executable="HitmanPro">
283 <option name="mesa_glthread" value="true"/>
284 </application>
285
286 <application name="Renowned Explorers: International Society" executable="abbeycore_steam">
287 <option name="mesa_glthread" value="true"/>
288 </application>
289
290 <application name="Saints Row 2" executable="saintsrow2.i386">
291 <option name="mesa_glthread" value="true"/>
292 </application>
293 <application name="Saints Row: The Third" executable="SaintsRow3.i386">
294 <option name="mesa_glthread" value="true"/>
295 </application>
296 <application name="Saints Row IV" executable="SaintsRow4.i386">
297 <option name="mesa_glthread" value="true"/>
298 </application>
299 <application name="Saints Row: Gat out of Hell" executable="SaintsRow4GooH.i386">
300 <option name="mesa_glthread" value="true"/>
301 </application>
302
303 <application name="Sid Meier's: Civilization Beyond Earth" executable="CivBE">
304 <option name="mesa_glthread" value="true"/>
305 </application>
306
307 <application name="The Witcher 2" executable="witcher2">
308 <option name="mesa_glthread" value="true"/>
309 </application>
310
311 <application name="American Truck Simulator" executable="amtrucks">
312 <option name="mesa_glthread" value="true"/>
313 </application>
314 <application name="Euro Truck Simulator 2" executable="eurotrucks2">
315 <option name="mesa_glthread" value="true"/>
316 </application>
317
318 <application name="Overlord" executable="overlord.i386">
319 <option name="mesa_glthread" value="true"/>
320 </application>
321 <application name="Overlord 2" executable="overlord2.i386">
322 <option name="mesa_glthread" value="true"/>
323 </application>
324
325 <application name="Oil Rush" executable="OilRush_x86">
326 <option name="mesa_glthread" value="true"/>
327 </application>
328
329 <application name="War Thunder" executable="aces">
330 <option name="mesa_glthread" value="true"/>
331 </application>
332 <application name="War Thunder (Wine)" executable="aces.exe">
333 <option name="mesa_glthread" value="true"/>
334 </application>
335
336 <application name="Outlast" executable="OLGame.x86_64">
337 <option name="mesa_glthread" value="true"/>
338 </application>
339
340 <application name="Spec Ops: The Line (32-bit)" executable="specops.i386">
341 <option name="mesa_glthread" value="true"/>
342 </application>
343 <application name="Spec Ops: The Line (64-bit)" executable="specops">
344 <option name="mesa_glthread" value="true"/>
345 </application>
346 <application name="Mount and Blade Warband" executable="mb_warband_linux">
347 <option name="mesa_glthread" value="true"/>
348 </application>
349
350 <!-- around 18% performance increase in min and avg fps, max fps capped at 60fps. -->
351 <application name="Medieval II: Total War" executable="Medieval2">
352 <option name="mesa_glthread" value="true"/>
353 </application>
354
355 <!-- min fps ~21 ===> ~27 while standing still in game, also higher gpu load. -->
356 <application name="Carnivores: Dinosaur Hunter Reborn (wine)" executable="Carnivores-master.exe">
357 <option name="mesa_glthread" value="true"/>
358 </application>
359
360 <!-- around 30% increase in avg fps -->
361 <application name="Far Cry 2 (wine)" executable="farcry2.exe">
362 <option name="mesa_glthread" value="true"/>
363 </application>
364
365 <application name="Talos Principle" executable="Talos">
366 <option name="mesa_glthread" value="true"/>
367 </application>
368 <application name="Talos Principle (Unrestricted)" executable="Talos_Unrestricted">
369 <option name="mesa_glthread" value="true"/>
370 </application>
371
372 <!-- roughly 30% increase in fps -->
373 <application name="7 Days To Die (64-bit)" executable="7DaysToDie.x86_64">
374 <option name="mesa_glthread" value="true"/>
375 </application>
376 <application name="7 Days To Die (32-bit)" executable="7DaysToDie.x86">
377 <option name="mesa_glthread" value="true"/>
378 </application>
379
380 <!-- Emulator tends to have a high CPU load for GPU emulation, so separating the driver overhead yield an improvement. -->
381 <application name="Dolphin Emulator" executable="dolphin-emu">
382 <option name="mesa_glthread" value="true"/>
383 </application>
384 <application name="Citra - Nintendo 3DS Emulator" executable="citra-qt">
385 <option name="mesa_glthread" value="true"/>
386 </application>
387 <application name="Yuzu - Nintendo Switch Emulator" executable="yuzu">
388 <option name="mesa_glthread" value="true"/>
389 </application>
390
391 <!-- Adaptive sync blacklist follows below: -->
392 <application name="gnome-shell" executable="gnome-shell">
393 <option name="adaptive_sync" value="false" />
394 </application>
395 <application name="Desktop — Plasma" executable="plasmashell">
396 <option name="adaptive_sync" value="false" />
397 </application>
398 <application name="budgie-wm" executable="budgie-wm">
399 <option name="adaptive_sync" value="false" />
400 </application>
401 <application name="kwin_x11" executable="kwin_x11">
402 <option name="adaptive_sync" value="false" />
403 </application>
404 <application name="ksmserver-logout-greeter" executable="ksmserver-logout-greeter">
405 <option name="adaptive_sync" value="false" />
406 </application>
407 <application name="ksmserver-switchuser-greeter" executable="ksmserver-switchuser-greeter">
408 <option name="adaptive_sync" value="false" />
409 </application>
410 <application name="kscreenlocker_greet" executable="kscreenlocker_greet">
411 <option name="adaptive_sync" value="false" />
412 </application>
413 <application name="startplasma" executable="startplasma">
414 <option name="adaptive_sync" value="false" />
415 </application>
416 <application name="sddm-greeter" executable="sddm-greeter">
417 <option name="adaptive_sync" value="false" />
418 </application>
419 <application name="krunner" executable="krunner">
420 <option name="adaptive_sync" value="false" />
421 </application>
422 <application name="spectacle" executable="spectacle">
423 <option name="adaptive_sync" value="false" />
424 </application>
425 <application name="marco" executable="marco">
426 <option name="adaptive_sync" value="false" />
427 </application>
428 <application name="compton" executable="compton">
429 <option name="adaptive_sync" value="false" />
430 </application>
431 <application name="xfwm4" executable="xfwm4">
432 <option name="adaptive_sync" value="false" />
433 </application>
434 <application name="Enlightenment" executable="enlightenment">
435 <option name="adaptive_sync" value="false" />
436 </application>
437 <application name="mutter" executable="mutter">
438 <option name="adaptive_sync" value="false" />
439 </application>
440 <application name="muffin" executable="muffin">
441 <option name="adaptive_sync" value="false" />
442 </application>
443 <application name="compiz" executable="compiz">
444 <option name="adaptive_sync" value="false" />
445 </application>
446 <application name="Firefox" executable="firefox">
447 <option name="adaptive_sync" value="false" />
448 </application>
449 <application name="Firefox ESR" executable="firefox-esr">
450 <option name="adaptive_sync" value="false" />
451 </application>
452 <application name="Chromium" executable="chromium">
453 <option name="adaptive_sync" value="false" />
454 </application>
455 <application name="Google Chrome" executable="chrome">
456 <option name="adaptive_sync" value="false" />
457 </application>
458 <application name="Iceweasel" executable="iceweasel">
459 <option name="adaptive_sync" value="false" />
460 </application>
461 <application name="Epiphany" executable="epiphany">
462 <option name="adaptive_sync" value="false" />
463 </application>
464 <application name="Konqueror" executable="konqueror">
465 <option name="adaptive_sync" value="false" />
466 </application>
467 <application name="Falkon" executable="falkon">
468 <option name="adaptive_sync" value="false" />
469 </application>
470 <application name="Seamonkey" executable="seamonkey">
471 <option name="adaptive_sync" value="false" />
472 </application>
473 <application name="Waterfox" executable="waterfox">
474 <option name="adaptive_sync" value="false" />
475 </application>
476 <application name="VLC Media Player" executable="vlc">
477 <option name="adaptive_sync" value="false" />
478 </application>
479 <application name="Totem" executable="totem">
480 <option name="adaptive_sync" value="false" />
481 </application>
482 <application name="Dragon Player" executable="dragon">
483 <option name="adaptive_sync" value="false" />
484 </application>
485 <application name="mpv" executable="mpv">
486 <option name="adaptive_sync" value="false" />
487 </application>
488 <application name="Xorg" executable="Xorg">
489 <option name="v3d_nonmsaa_texture_size_limit" value="true" />
490 </application>
491
492 <application name="gfxbench" executable="testfw_app">
493 <option name="vk_x11_override_min_image_count" value="2" />
494 </application>
495
496 <!-- Gallium Nine workarounds: -->
497 <application name="Rayman Legends" executable="Rayman Legends.exe">
498 <option name="dynamic_texture_workaround" value="true" />
499 </application>
500
501 <!-- Vulkan workarounds: -->
502
503 <!-- Works around the game not starting (does not deal with
504 the implementation returning more images than the minimum
505 specified by the application. -->
506 <engine engine_name_match="UnrealEngine4.*" engine_versions="0:23">
507 <option name="vk_x11_strict_image_count" value="true" />
508 </engine>
509
510 <!-- DOOM crashes at startup without this workaround if the adaptative sync mode is enabled. -->
511 <application name="DOOM" executable="DOOMx64vk.exe">
512 <option name="vk_x11_strict_image_count" value="true" />
513 </application>
514 </device>
515 <!-- vmwgfx doesn't like full buffer swaps and can't sync to vertical retraces.-->
516 <device driver="vmwgfx">
517 <application name="gnome-shell" executable="gnome-shell">
518 <option name="glx_disable_ext_buffer_age" value="true" />
519 <option name="glx_disable_oml_sync_control" value="true" />
520 <option name="glx_disable_sgi_video_sync" value="true" />
521 </application>
522 <application name="Compiz" executable="Compiz">
523 <option name="glx_disable_ext_buffer_age" value="true" />
524 <option name="glx_disable_oml_sync_control" value="true" />
525 </application>
526 </device>
527 <device driver="radeonsi">
528 <application name="ARK: Survival Evolved (and unintentionally the UE4 demo template)" executable="ShooterGame">
529 <option name="radeonsi_clear_db_cache_before_clear" value="true" />
530 </application>
531 <application name="American Truck Simulator" executable="amtrucks">
532 <option name="radeonsi_zerovram" value="true" />
533 </application>
534 <application name="Counter-Strike Global Offensive" executable="csgo_linux64">
535 <option name="radeonsi_zerovram" value="true" />
536 </application>
537 <application name="No Mans Sky" executable="NMS.exe">
538 <option name="radeonsi_zerovram" value="true" />
539 </application>
540 <application name="Rocket League" executable="RocketLeague">
541 <option name="radeonsi_zerovram" value="true" />
542 </application>
543 <application name="Civilization 6" executable="Civ6">
544 <option name="radeonsi_enable_nir" value="true"/>
545 </application>
546 <application name="Civilization 6" executable="Civ6Sub">
547 <option name="radeonsi_enable_nir" value="true"/>
548 </application>
549 <application name="DiRT Rally" executable="DirtRally">
550 <option name="radeonsi_prim_restart_tri_strips_only" value="true"/>
551 </application>
552 <application name="Gfx Bench" executable="gfxbench_gl">
553 <!-- Helps offscreen tests -->
554 <option name="mesa_glthread" value="true"/>
555 </application>
556 </device>
557 <device driver="virtio_gpu">
558 <!-- Some Valve games do a final blit to a BRGA_sRGB surface. On a GLES
559 host this format is not supported and the blit will go to BGRA_UNORM
560 resulting in an unintended linearization and the final output being
561 too dark. -->
562 <application name="Half Life 2" executable="hl2_linux">
563 <option name="gles_emulate_bgra" value="true" />
564 </application>
565 <application name="Portal" executable="hl2_linux">
566 <option name="gles_emulate_bgra" value="true" />
567 </application>
568 <application name="Left 4 Dead 2" executable="hl2_linux">
569 <option name="gles_emulate_bgra" value="true" />
570 </application>
571 <application name="Dota 2" executable="dota2">
572 <option name="gles_emulate_bgra" value="true" />
573 </application>
574 <!-- The Raven Remastered expects a BGRA_sRGB surface and a BGRA_sRGB
575 surface that is capable to do texture views, since on GLES the BGRA
576 format provided by EXT_texture_BGRA8888 has no sRGB counterpart and
577 is not in the list of suppoerted TextureView formats we need to
578 emulate this -->
579 <application name="The Raven Remastered" executable="Raven">
580 <option name="gles_emulate_bgra" value="true" />
581 </application>
582 </device>
583 <device driver="i965">
584 <application name="Middle Earth: Shadow of Mordor" executable="ShadowOfMordor">
585 <option name="vs_position_always_invariant" value="true" />
586 </application>
587 </device>
588 <device driver="iris">
589 <application name="Middle Earth: Shadow of Mordor" executable="ShadowOfMordor">
590 <option name="vs_position_always_invariant" value="true" />
591 </application>
592 </device>
593 </driconf>