driconf_static.h revision 96c5ddc4
1/* Copyright (C) 2021 Google, Inc.
2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a
4 * copy of this software and associated documentation files (the "Software"),
5 * to deal in the Software without restriction, including without limitation
6 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 * and/or sell copies of the Software, and to permit persons to whom the
8 * Software is furnished to do so, subject to the following conditions:
9 *
10 * The above copyright notice and this permission notice (including the next
11 * paragraph) shall be included in all copies or substantial portions of the
12 * Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20 * IN THE SOFTWARE.
21 */
22
23struct driconf_option {
24    const char *name;
25    const char *value;
26};
27
28struct driconf_application {
29    const char *name;
30    const char *executable;
31    const char *executable_regexp;
32    const char *sha1;
33    const char *application_name_match;
34    const char *application_versions;
35    unsigned num_options;
36    const struct driconf_option *options;
37};
38
39struct driconf_engine {
40    const char *engine_name_match;
41    const char *engine_versions;
42    unsigned num_options;
43    const struct driconf_option *options;
44};
45
46struct driconf_device {
47    const char *driver;
48    const char *device;
49    unsigned num_engines;
50    const struct driconf_engine *engines;
51    unsigned num_applications;
52    const struct driconf_application *applications;
53};
54
55
56
57
58static const struct driconf_option engine_337_options[] = {
59    { .name = "vk_x11_strict_image_count", .value = "true" },
60};
61
62
63static const struct driconf_engine device_1_engines[] = {
64    { .engine_name_match = "UnrealEngine4.*",
65      .engine_versions = "0:23",
66      .num_options = 1,
67      .options = engine_337_options,
68    },
69};
70
71
72static const struct driconf_option application_2_options[] = {
73    { .name = "force_glsl_extensions_warn", .value = "true" },
74    { .name = "disable_blend_func_extended", .value = "true" },
75    { .name = "disable_arb_gpu_shader5", .value = "true" },
76};
77
78
79static const struct driconf_option application_6_options[] = {
80    { .name = "force_glsl_extensions_warn", .value = "true" },
81    { .name = "disable_blend_func_extended", .value = "true" },
82    { .name = "disable_arb_gpu_shader5", .value = "true" },
83};
84
85
86static const struct driconf_option application_10_options[] = {
87    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
88    { .name = "dual_color_blend_by_location", .value = "true" },
89};
90
91
92static const struct driconf_option application_13_options[] = {
93    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
94    { .name = "dual_color_blend_by_location", .value = "true" },
95};
96
97
98static const struct driconf_option application_16_options[] = {
99    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
100    { .name = "dual_color_blend_by_location", .value = "true" },
101};
102
103
104static const struct driconf_option application_19_options[] = {
105    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
106    { .name = "dual_color_blend_by_location", .value = "true" },
107};
108
109
110static const struct driconf_option application_22_options[] = {
111    { .name = "disable_blend_func_extended", .value = "true" },
112    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
113};
114
115
116static const struct driconf_option application_25_options[] = {
117    { .name = "disable_blend_func_extended", .value = "true" },
118    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
119};
120
121
122static const struct driconf_option application_28_options[] = {
123    { .name = "disable_glsl_line_continuations", .value = "true" },
124};
125
126
127static const struct driconf_option application_30_options[] = {
128    { .name = "always_have_depth_buffer", .value = "true" },
129};
130
131
132static const struct driconf_option application_32_options[] = {
133    { .name = "always_have_depth_buffer", .value = "true" },
134};
135
136
137static const struct driconf_option application_34_options[] = {
138    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
139    { .name = "allow_glsl_builtin_variable_redeclaration", .value = "true" },
140};
141
142
143static const struct driconf_option application_37_options[] = {
144    { .name = "allow_glsl_builtin_variable_redeclaration", .value = "true" },
145};
146
147
148static const struct driconf_option application_39_options[] = {
149    { .name = "allow_glsl_builtin_variable_redeclaration", .value = "true" },
150    { .name = "force_glsl_extensions_warn", .value = "true" },
151};
152
153
154static const struct driconf_option application_42_options[] = {
155    { .name = "allow_glsl_builtin_variable_redeclaration", .value = "true" },
156};
157
158
159static const struct driconf_option application_44_options[] = {
160    { .name = "allow_glsl_builtin_variable_redeclaration", .value = "true" },
161};
162
163
164static const struct driconf_option application_46_options[] = {
165    { .name = "allow_glsl_builtin_variable_redeclaration", .value = "true" },
166};
167
168
169static const struct driconf_option application_48_options[] = {
170    { .name = "allow_glsl_builtin_variable_redeclaration", .value = "true" },
171};
172
173
174static const struct driconf_option application_50_options[] = {
175    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
176};
177
178
179static const struct driconf_option application_52_options[] = {
180    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
181};
182
183
184static const struct driconf_option application_54_options[] = {
185    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
186};
187
188
189static const struct driconf_option application_56_options[] = {
190    { .name = "glsl_zero_init", .value = "true" },
191};
192
193
194static const struct driconf_option application_58_options[] = {
195    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
196    { .name = "glsl_correct_derivatives_after_discard", .value = "true" },
197    { .name = "force_gl_vendor", .value = "ATI Technologies, Inc." },
198};
199
200
201static const struct driconf_option application_62_options[] = {
202    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
203};
204
205
206static const struct driconf_option application_64_options[] = {
207    { .name = "allow_higher_compat_version", .value = "true" },
208};
209
210
211static const struct driconf_option application_66_options[] = {
212    { .name = "allow_higher_compat_version", .value = "true" },
213};
214
215
216static const struct driconf_option application_68_options[] = {
217    { .name = "allow_higher_compat_version", .value = "true" },
218};
219
220
221static const struct driconf_option application_70_options[] = {
222    { .name = "allow_higher_compat_version", .value = "true" },
223};
224
225
226static const struct driconf_option application_72_options[] = {
227    { .name = "allow_higher_compat_version", .value = "true" },
228};
229
230
231static const struct driconf_option application_74_options[] = {
232    { .name = "allow_higher_compat_version", .value = "true" },
233};
234
235
236static const struct driconf_option application_76_options[] = {
237    { .name = "force_glsl_version", .value = "440" },
238};
239
240
241static const struct driconf_option application_78_options[] = {
242    { .name = "force_glsl_abs_sqrt", .value = "true" },
243};
244
245
246static const struct driconf_option application_80_options[] = {
247    { .name = "force_glsl_abs_sqrt", .value = "true" },
248};
249
250
251static const struct driconf_option application_82_options[] = {
252    { .name = "glsl_zero_init", .value = "true" },
253};
254
255
256static const struct driconf_option application_84_options[] = {
257    { .name = "glsl_zero_init", .value = "true" },
258};
259
260
261static const struct driconf_option application_86_options[] = {
262    { .name = "force_glsl_version", .value = "130" },
263    { .name = "glsl_ignore_write_to_readonly_var", .value = "true" },
264};
265
266
267static const struct driconf_option application_89_options[] = {
268    { .name = "glsl_correct_derivatives_after_discard", .value = "true" },
269};
270
271
272static const struct driconf_option application_91_options[] = {
273    { .name = "glsl_correct_derivatives_after_discard", .value = "true" },
274};
275
276
277static const struct driconf_option application_93_options[] = {
278    { .name = "allow_glsl_cross_stage_interpolation_mismatch", .value = "true" },
279};
280
281
282static const struct driconf_option application_95_options[] = {
283    { .name = "allow_glsl_cross_stage_interpolation_mismatch", .value = "true" },
284};
285
286
287static const struct driconf_option application_97_options[] = {
288    { .name = "allow_glsl_cross_stage_interpolation_mismatch", .value = "true" },
289};
290
291
292static const struct driconf_option application_99_options[] = {
293    { .name = "allow_glsl_cross_stage_interpolation_mismatch", .value = "true" },
294};
295
296
297static const struct driconf_option application_101_options[] = {
298    { .name = "allow_glsl_cross_stage_interpolation_mismatch", .value = "true" },
299};
300
301
302static const struct driconf_option application_103_options[] = {
303    { .name = "allow_glsl_builtin_const_expression", .value = "true" },
304    { .name = "allow_glsl_relaxed_es", .value = "true" },
305};
306
307
308static const struct driconf_option application_106_options[] = {
309    { .name = "allow_extra_pp_tokens", .value = "true" },
310};
311
312
313static const struct driconf_option application_108_options[] = {
314    { .name = "force_compat_profile", .value = "true" },
315};
316
317
318static const struct driconf_option application_110_options[] = {
319    { .name = "glsl_correct_derivatives_after_discard", .value = "true" },
320};
321
322
323static const struct driconf_option application_112_options[] = {
324    { .name = "force_compat_profile", .value = "true" },
325};
326
327
328static const struct driconf_option application_114_options[] = {
329    { .name = "glsl_zero_init", .value = "true" },
330};
331
332
333static const struct driconf_option application_116_options[] = {
334    { .name = "glsl_zero_init", .value = "true" },
335};
336
337
338static const struct driconf_option application_118_options[] = {
339    { .name = "force_integer_tex_nearest", .value = "true" },
340};
341
342
343static const struct driconf_option application_120_options[] = {
344    { .name = "force_integer_tex_nearest", .value = "true" },
345};
346
347
348static const struct driconf_option application_122_options[] = {
349    { .name = "vs_position_always_invariant", .value = "true" },
350};
351
352
353static const struct driconf_option application_124_options[] = {
354    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
355    { .name = "allow_glsl_120_subset_in_110", .value = "true" },
356    { .name = "force_gl_names_reuse", .value = "true" },
357    { .name = "force_gl_vendor", .value = "NVIDIA Corporation" },
358    { .name = "force_glsl_extensions_warn", .value = "true" },
359    { .name = "allow_draw_out_of_order", .value = "true" },
360    { .name = "mesa_glthread", .value = "true" },
361    { .name = "mesa_no_error", .value = "true" },
362    { .name = "allow_rgb10_configs", .value = "false" },
363};
364
365
366static const struct driconf_option application_134_options[] = {
367    { .name = "ignore_map_unsynchronized", .value = "true" },
368};
369
370
371static const struct driconf_option application_136_options[] = {
372    { .name = "force_integer_tex_nearest", .value = "true" },
373    { .name = "allow_glsl_extension_directive_midshader", .value = "true" },
374};
375
376
377static const struct driconf_option application_139_options[] = {
378    { .name = "glsl_correct_derivatives_after_discard", .value = "true" },
379};
380
381
382static const struct driconf_option application_141_options[] = {
383    { .name = "mesa_glthread", .value = "true" },
384};
385
386
387static const struct driconf_option application_143_options[] = {
388    { .name = "mesa_glthread", .value = "true" },
389};
390
391
392static const struct driconf_option application_145_options[] = {
393    { .name = "mesa_glthread", .value = "true" },
394};
395
396
397static const struct driconf_option application_147_options[] = {
398    { .name = "mesa_glthread", .value = "true" },
399};
400
401
402static const struct driconf_option application_149_options[] = {
403    { .name = "mesa_glthread", .value = "true" },
404};
405
406
407static const struct driconf_option application_151_options[] = {
408    { .name = "mesa_glthread", .value = "true" },
409};
410
411
412static const struct driconf_option application_153_options[] = {
413    { .name = "mesa_glthread", .value = "true" },
414};
415
416
417static const struct driconf_option application_155_options[] = {
418    { .name = "mesa_glthread", .value = "true" },
419};
420
421
422static const struct driconf_option application_157_options[] = {
423    { .name = "mesa_glthread", .value = "true" },
424};
425
426
427static const struct driconf_option application_159_options[] = {
428    { .name = "mesa_glthread", .value = "true" },
429};
430
431
432static const struct driconf_option application_161_options[] = {
433    { .name = "mesa_glthread", .value = "true" },
434};
435
436
437static const struct driconf_option application_163_options[] = {
438    { .name = "mesa_glthread", .value = "true" },
439};
440
441
442static const struct driconf_option application_165_options[] = {
443    { .name = "mesa_glthread", .value = "true" },
444};
445
446
447static const struct driconf_option application_167_options[] = {
448    { .name = "mesa_glthread", .value = "true" },
449};
450
451
452static const struct driconf_option application_169_options[] = {
453    { .name = "mesa_glthread", .value = "true" },
454};
455
456
457static const struct driconf_option application_171_options[] = {
458    { .name = "mesa_glthread", .value = "true" },
459};
460
461
462static const struct driconf_option application_173_options[] = {
463    { .name = "mesa_glthread", .value = "true" },
464};
465
466
467static const struct driconf_option application_175_options[] = {
468    { .name = "mesa_glthread", .value = "true" },
469};
470
471
472static const struct driconf_option application_177_options[] = {
473    { .name = "mesa_glthread", .value = "true" },
474};
475
476
477static const struct driconf_option application_179_options[] = {
478    { .name = "mesa_glthread", .value = "true" },
479};
480
481
482static const struct driconf_option application_181_options[] = {
483    { .name = "mesa_glthread", .value = "true" },
484};
485
486
487static const struct driconf_option application_183_options[] = {
488    { .name = "mesa_glthread", .value = "true" },
489};
490
491
492static const struct driconf_option application_185_options[] = {
493    { .name = "mesa_glthread", .value = "true" },
494};
495
496
497static const struct driconf_option application_187_options[] = {
498    { .name = "mesa_glthread", .value = "true" },
499};
500
501
502static const struct driconf_option application_189_options[] = {
503    { .name = "mesa_glthread", .value = "true" },
504};
505
506
507static const struct driconf_option application_191_options[] = {
508    { .name = "mesa_glthread", .value = "true" },
509};
510
511
512static const struct driconf_option application_193_options[] = {
513    { .name = "mesa_glthread", .value = "true" },
514};
515
516
517static const struct driconf_option application_195_options[] = {
518    { .name = "mesa_glthread", .value = "true" },
519};
520
521
522static const struct driconf_option application_197_options[] = {
523    { .name = "mesa_glthread", .value = "true" },
524};
525
526
527static const struct driconf_option application_199_options[] = {
528    { .name = "mesa_glthread", .value = "true" },
529};
530
531
532static const struct driconf_option application_201_options[] = {
533    { .name = "mesa_glthread", .value = "true" },
534};
535
536
537static const struct driconf_option application_203_options[] = {
538    { .name = "mesa_glthread", .value = "true" },
539};
540
541
542static const struct driconf_option application_205_options[] = {
543    { .name = "mesa_glthread", .value = "true" },
544};
545
546
547static const struct driconf_option application_207_options[] = {
548    { .name = "mesa_glthread", .value = "true" },
549};
550
551
552static const struct driconf_option application_209_options[] = {
553    { .name = "mesa_glthread", .value = "true" },
554};
555
556
557static const struct driconf_option application_211_options[] = {
558    { .name = "mesa_glthread", .value = "true" },
559};
560
561
562static const struct driconf_option application_213_options[] = {
563    { .name = "mesa_glthread", .value = "true" },
564};
565
566
567static const struct driconf_option application_215_options[] = {
568    { .name = "mesa_glthread", .value = "true" },
569};
570
571
572static const struct driconf_option application_217_options[] = {
573    { .name = "mesa_glthread", .value = "true" },
574};
575
576
577static const struct driconf_option application_219_options[] = {
578    { .name = "mesa_glthread", .value = "true" },
579};
580
581
582static const struct driconf_option application_221_options[] = {
583    { .name = "mesa_glthread", .value = "true" },
584};
585
586
587static const struct driconf_option application_223_options[] = {
588    { .name = "mesa_glthread", .value = "true" },
589};
590
591
592static const struct driconf_option application_225_options[] = {
593    { .name = "mesa_glthread", .value = "true" },
594};
595
596
597static const struct driconf_option application_227_options[] = {
598    { .name = "mesa_glthread", .value = "true" },
599};
600
601
602static const struct driconf_option application_229_options[] = {
603    { .name = "mesa_glthread", .value = "true" },
604};
605
606
607static const struct driconf_option application_231_options[] = {
608    { .name = "mesa_glthread", .value = "true" },
609};
610
611
612static const struct driconf_option application_233_options[] = {
613    { .name = "mesa_glthread", .value = "true" },
614};
615
616
617static const struct driconf_option application_235_options[] = {
618    { .name = "mesa_glthread", .value = "true" },
619};
620
621
622static const struct driconf_option application_237_options[] = {
623    { .name = "mesa_glthread", .value = "true" },
624};
625
626
627static const struct driconf_option application_239_options[] = {
628    { .name = "adaptive_sync", .value = "false" },
629    { .name = "v3d_nonmsaa_texture_size_limit", .value = "true" },
630};
631
632
633static const struct driconf_option application_242_options[] = {
634    { .name = "adaptive_sync", .value = "false" },
635};
636
637
638static const struct driconf_option application_244_options[] = {
639    { .name = "adaptive_sync", .value = "false" },
640};
641
642
643static const struct driconf_option application_246_options[] = {
644    { .name = "adaptive_sync", .value = "false" },
645};
646
647
648static const struct driconf_option application_248_options[] = {
649    { .name = "adaptive_sync", .value = "false" },
650};
651
652
653static const struct driconf_option application_250_options[] = {
654    { .name = "adaptive_sync", .value = "false" },
655};
656
657
658static const struct driconf_option application_252_options[] = {
659    { .name = "adaptive_sync", .value = "false" },
660};
661
662
663static const struct driconf_option application_254_options[] = {
664    { .name = "adaptive_sync", .value = "false" },
665};
666
667
668static const struct driconf_option application_256_options[] = {
669    { .name = "adaptive_sync", .value = "false" },
670};
671
672
673static const struct driconf_option application_258_options[] = {
674    { .name = "adaptive_sync", .value = "false" },
675};
676
677
678static const struct driconf_option application_260_options[] = {
679    { .name = "adaptive_sync", .value = "false" },
680};
681
682
683static const struct driconf_option application_262_options[] = {
684    { .name = "adaptive_sync", .value = "false" },
685};
686
687
688static const struct driconf_option application_264_options[] = {
689    { .name = "adaptive_sync", .value = "false" },
690};
691
692
693static const struct driconf_option application_266_options[] = {
694    { .name = "adaptive_sync", .value = "false" },
695};
696
697
698static const struct driconf_option application_268_options[] = {
699    { .name = "adaptive_sync", .value = "false" },
700};
701
702
703static const struct driconf_option application_270_options[] = {
704    { .name = "adaptive_sync", .value = "false" },
705};
706
707
708static const struct driconf_option application_272_options[] = {
709    { .name = "adaptive_sync", .value = "false" },
710    { .name = "v3d_nonmsaa_texture_size_limit", .value = "true" },
711};
712
713
714static const struct driconf_option application_275_options[] = {
715    { .name = "adaptive_sync", .value = "false" },
716};
717
718
719static const struct driconf_option application_277_options[] = {
720    { .name = "adaptive_sync", .value = "false" },
721};
722
723
724static const struct driconf_option application_279_options[] = {
725    { .name = "adaptive_sync", .value = "false" },
726};
727
728
729static const struct driconf_option application_281_options[] = {
730    { .name = "adaptive_sync", .value = "false" },
731};
732
733
734static const struct driconf_option application_283_options[] = {
735    { .name = "adaptive_sync", .value = "false" },
736};
737
738
739static const struct driconf_option application_285_options[] = {
740    { .name = "adaptive_sync", .value = "false" },
741};
742
743
744static const struct driconf_option application_287_options[] = {
745    { .name = "adaptive_sync", .value = "false" },
746};
747
748
749static const struct driconf_option application_289_options[] = {
750    { .name = "adaptive_sync", .value = "false" },
751};
752
753
754static const struct driconf_option application_291_options[] = {
755    { .name = "adaptive_sync", .value = "false" },
756};
757
758
759static const struct driconf_option application_293_options[] = {
760    { .name = "adaptive_sync", .value = "false" },
761};
762
763
764static const struct driconf_option application_295_options[] = {
765    { .name = "adaptive_sync", .value = "false" },
766};
767
768
769static const struct driconf_option application_297_options[] = {
770    { .name = "adaptive_sync", .value = "false" },
771};
772
773
774static const struct driconf_option application_299_options[] = {
775    { .name = "adaptive_sync", .value = "false" },
776};
777
778
779static const struct driconf_option application_301_options[] = {
780    { .name = "adaptive_sync", .value = "false" },
781};
782
783
784static const struct driconf_option application_303_options[] = {
785    { .name = "adaptive_sync", .value = "false" },
786};
787
788
789static const struct driconf_option application_305_options[] = {
790    { .name = "adaptive_sync", .value = "false" },
791};
792
793
794static const struct driconf_option application_307_options[] = {
795    { .name = "v3d_nonmsaa_texture_size_limit", .value = "true" },
796};
797
798
799static const struct driconf_option application_309_options[] = {
800    { .name = "vk_x11_override_min_image_count", .value = "2" },
801    { .name = "vk_wsi_force_bgra8_unorm_first", .value = "true" },
802};
803
804
805static const struct driconf_option application_312_options[] = {
806    { .name = "glx_extension_override", .value = "-GLX_OML_swap_method" },
807    { .name = "allow_higher_compat_version", .value = "true" },
808};
809
810
811static const struct driconf_option application_315_options[] = {
812    { .name = "glsl_correct_derivatives_after_discard", .value = "true" },
813};
814
815
816static const struct driconf_option application_317_options[] = {
817    { .name = "glsl_correct_derivatives_after_discard", .value = "true" },
818};
819
820
821static const struct driconf_option application_319_options[] = {
822    { .name = "force_gl_names_reuse", .value = "true" },
823};
824
825
826static const struct driconf_option application_321_options[] = {
827    { .name = "vs_position_always_precise", .value = "true" },
828};
829
830
831static const struct driconf_option application_323_options[] = {
832    { .name = "vs_position_always_precise", .value = "true" },
833};
834
835
836static const struct driconf_option application_325_options[] = {
837    { .name = "vs_position_always_precise", .value = "true" },
838};
839
840
841static const struct driconf_option application_327_options[] = {
842    { .name = "vs_position_always_precise", .value = "true" },
843};
844
845
846static const struct driconf_option application_329_options[] = {
847    { .name = "vk_x11_strict_image_count", .value = "true" },
848};
849
850
851static const struct driconf_option application_331_options[] = {
852    { .name = "vk_x11_ensure_min_image_count", .value = "true" },
853};
854
855
856static const struct driconf_option application_333_options[] = {
857    { .name = "vk_x11_strict_image_count", .value = "true" },
858};
859
860
861static const struct driconf_option application_335_options[] = {
862    { .name = "vk_x11_strict_image_count", .value = "true" },
863};
864
865
866static const struct driconf_application device_1_applications[] = {
867    { .name = "Unigine Sanctuary",
868      .executable = "Sanctuary",
869      .num_options = 3,
870      .options = application_2_options,
871    },
872    { .name = "Unigine Tropics",
873      .executable = "Tropics",
874      .num_options = 3,
875      .options = application_6_options,
876    },
877    { .name = "Unigine Heaven (32-bit)",
878      .executable = "heaven_x86",
879      .num_options = 2,
880      .options = application_10_options,
881    },
882    { .name = "Unigine Heaven (64-bit)",
883      .executable = "heaven_x64",
884      .num_options = 2,
885      .options = application_13_options,
886    },
887    { .name = "Unigine Valley (32-bit)",
888      .executable = "valley_x86",
889      .num_options = 2,
890      .options = application_16_options,
891    },
892    { .name = "Unigine Valley (64-bit)",
893      .executable = "valley_x64",
894      .num_options = 2,
895      .options = application_19_options,
896    },
897    { .name = "Unigine OilRush (32-bit)",
898      .executable = "OilRush_x86",
899      .num_options = 2,
900      .options = application_22_options,
901    },
902    { .name = "Unigine OilRush (64-bit)",
903      .executable = "OilRush_x64",
904      .num_options = 2,
905      .options = application_25_options,
906    },
907    { .name = "Savage 2",
908      .executable = "savage2.bin",
909      .num_options = 1,
910      .options = application_28_options,
911    },
912    { .name = "Topogun (32-bit)",
913      .executable = "topogun32",
914      .num_options = 1,
915      .options = application_30_options,
916    },
917    { .name = "Topogun (64-bit)",
918      .executable = "topogun64",
919      .num_options = 1,
920      .options = application_32_options,
921    },
922    { .name = "Dead Island (incl. Definitive Edition)",
923      .executable = "DeadIslandGame",
924      .num_options = 2,
925      .options = application_34_options,
926    },
927    { .name = "Dead Island Riptide Definitive Edition",
928      .executable = "DeadIslandRiptideGame",
929      .num_options = 1,
930      .options = application_37_options,
931    },
932    { .name = "Doom 3: BFG",
933      .executable = "Doom3BFG.exe",
934      .num_options = 2,
935      .options = application_39_options,
936    },
937    { .name = "Dying Light",
938      .executable = "DyingLightGame",
939      .num_options = 1,
940      .options = application_42_options,
941    },
942    { .name = "Full Bore",
943      .executable = "fullbore",
944      .num_options = 1,
945      .options = application_44_options,
946    },
947    { .name = "RAGE (64-bit)",
948      .executable = "Rage64.exe",
949      .num_options = 1,
950      .options = application_46_options,
951    },
952    { .name = "RAGE (32-bit)",
953      .executable = "Rage.exe",
954      .num_options = 1,
955      .options = application_48_options,
956    },
957    { .name = "Second Life",
958      .executable = "do-not-directly-run-secondlife-bin",
959      .num_options = 1,
960      .options = application_50_options,
961    },
962    { .name = "Warsow (32-bit)",
963      .executable = "warsow.i386",
964      .num_options = 1,
965      .options = application_52_options,
966    },
967    { .name = "Warsow (64-bit)",
968      .executable = "warsow.x86_64",
969      .num_options = 1,
970      .options = application_54_options,
971    },
972    { .name = "Rust",
973      .executable = "rust",
974      .num_options = 1,
975      .options = application_56_options,
976    },
977    { .name = "Divinity: Original Sin Enhanced Edition",
978      .executable = "EoCApp",
979      .num_options = 3,
980      .options = application_58_options,
981    },
982    { .name = "Metro 2033 Redux / Metro Last Night Redux",
983      .executable = "metro",
984      .num_options = 1,
985      .options = application_62_options,
986    },
987    { .name = "Worms W.M.D",
988      .executable = "Worms W.M.Dx64",
989      .num_options = 1,
990      .options = application_64_options,
991    },
992    { .name = "Crookz - The Big Heist",
993      .executable = "Crookz",
994      .num_options = 1,
995      .options = application_66_options,
996    },
997    { .name = "Tropico 5",
998      .executable = "Tropico5",
999      .num_options = 1,
1000      .options = application_68_options,
1001    },
1002    { .name = "Faster than Light (32-bit)",
1003      .executable = "FTL.x86",
1004      .num_options = 1,
1005      .options = application_70_options,
1006    },
1007    { .name = "Faster than Light (64-bit)",
1008      .executable = "FTL.amd64",
1009      .num_options = 1,
1010      .options = application_72_options,
1011    },
1012    { .name = "Final Fantasy VIII: Remastered",
1013      .executable = "FFVIII.exe",
1014      .num_options = 1,
1015      .options = application_74_options,
1016    },
1017    { .name = "The Culling",
1018      .executable = "Victory",
1019      .num_options = 1,
1020      .options = application_76_options,
1021    },
1022    { .name = "Spec Ops: The Line (32-bit)",
1023      .executable = "specops.i386",
1024      .num_options = 1,
1025      .options = application_78_options,
1026    },
1027    { .name = "Spec Ops: The Line (64-bit)",
1028      .executable = "specops",
1029      .num_options = 1,
1030      .options = application_80_options,
1031    },
1032    { .name = "Kerbal Space Program (32-bit)",
1033      .executable = "KSP.x86",
1034      .num_options = 1,
1035      .options = application_82_options,
1036    },
1037    { .name = "Kerbal Space Program (64-bit)",
1038      .executable = "KSP.x86_64",
1039      .num_options = 1,
1040      .options = application_84_options,
1041    },
1042    { .name = "Luna Sky",
1043      .executable = "lunasky",
1044      .num_options = 2,
1045      .options = application_86_options,
1046    },
1047    { .name = "Rocket League",
1048      .executable = "RocketLeague",
1049      .num_options = 1,
1050      .options = application_89_options,
1051    },
1052    { .name = "The Witcher 2",
1053      .executable = "witcher2",
1054      .num_options = 1,
1055      .options = application_91_options,
1056    },
1057    { .name = "Unreal 4 Editor",
1058      .executable = "UE4Editor",
1059      .num_options = 1,
1060      .options = application_93_options,
1061    },
1062    { .name = "Observer",
1063      .executable = "TheObserver-Linux-Shipping",
1064      .num_options = 1,
1065      .options = application_95_options,
1066    },
1067    { .name = "Steamroll",
1068      .executable = "Steamroll-Linux-Shipping",
1069      .num_options = 1,
1070      .options = application_97_options,
1071    },
1072    { .name = "Refunct",
1073      .executable = "Refunct-Linux-Shipping",
1074      .num_options = 1,
1075      .options = application_99_options,
1076    },
1077    { .name = "We Happy Few",
1078      .executable = "GlimpseGame",
1079      .num_options = 1,
1080      .options = application_101_options,
1081    },
1082    { .name = "Google Earth VR",
1083      .executable = "Earth.exe",
1084      .num_options = 2,
1085      .options = application_103_options,
1086    },
1087    { .name = "Champions of Regnum",
1088      .executable = "game",
1089      .num_options = 1,
1090      .options = application_106_options,
1091    },
1092    { .name = "Wolfenstein The Old Blood",
1093      .executable = "WolfOldBlood_x64.exe",
1094      .num_options = 1,
1095      .options = application_108_options,
1096    },
1097    { .name = "ARMA 3",
1098      .executable = "arma3.x86_64",
1099      .num_options = 1,
1100      .options = application_110_options,
1101    },
1102    { .name = "Epic Games Launcher",
1103      .executable = "EpicGamesLauncher.exe",
1104      .num_options = 1,
1105      .options = application_112_options,
1106    },
1107    { .name = "GpuTest",
1108      .executable = "GpuTest",
1109      .num_options = 1,
1110      .options = application_114_options,
1111    },
1112    { .name = "Curse of the Dead Gods",
1113      .executable = "Curse of the Dead Gods.exe",
1114      .num_options = 1,
1115      .options = application_116_options,
1116    },
1117    { .name = "GRID Autosport",
1118      .executable = "GridAutosport",
1119      .num_options = 1,
1120      .options = application_118_options,
1121    },
1122    { .name = "DIRT: Showdown",
1123      .executable = "dirt.i386",
1124      .num_options = 1,
1125      .options = application_120_options,
1126    },
1127    { .name = "DiRT Rally",
1128      .executable = "DirtRally",
1129      .num_options = 1,
1130      .options = application_122_options,
1131    },
1132    { .name = "SPECviewperf13",
1133      .executable = "viewperf",
1134      .num_options = 9,
1135      .options = application_124_options,
1136    },
1137    { .name = "Dead-Cells",
1138      .executable = "com.playdigious.deadcells.mobile",
1139      .num_options = 1,
1140      .options = application_134_options,
1141    },
1142    { .name = "Teardown",
1143      .executable = "teardown.exe",
1144      .num_options = 2,
1145      .options = application_136_options,
1146    },
1147    { .name = "Golf With Your Friends",
1148      .executable = "Golf With Your Friends.x86_64",
1149      .num_options = 1,
1150      .options = application_139_options,
1151    },
1152    { .name = "Alien Isolation",
1153      .executable = "AlienIsolation",
1154      .num_options = 1,
1155      .options = application_141_options,
1156    },
1157    { .name = "BioShock Infinite",
1158      .executable = "bioshock.i386",
1159      .num_options = 1,
1160      .options = application_143_options,
1161    },
1162    { .name = "Borderlands 2",
1163      .executable = "Borderlands2",
1164      .num_options = 1,
1165      .options = application_145_options,
1166    },
1167    { .name = "Civilization 5",
1168      .executable = "Civ5XP",
1169      .num_options = 1,
1170      .options = application_147_options,
1171    },
1172    { .name = "Civilization 6",
1173      .executable = "Civ6",
1174      .num_options = 1,
1175      .options = application_149_options,
1176    },
1177    { .name = "Civilization 6",
1178      .executable = "Civ6Sub",
1179      .num_options = 1,
1180      .options = application_151_options,
1181    },
1182    { .name = "Dreamfall Chapters",
1183      .executable = "Dreamfall Chapters",
1184      .num_options = 1,
1185      .options = application_153_options,
1186    },
1187    { .name = "Hitman",
1188      .executable = "HitmanPro",
1189      .num_options = 1,
1190      .options = application_155_options,
1191    },
1192    { .name = "Renowned Explorers: International Society",
1193      .executable = "abbeycore_steam",
1194      .num_options = 1,
1195      .options = application_157_options,
1196    },
1197    { .name = "Saints Row 2",
1198      .executable = "saintsrow2.i386",
1199      .num_options = 1,
1200      .options = application_159_options,
1201    },
1202    { .name = "Saints Row: The Third",
1203      .executable = "SaintsRow3.i386",
1204      .num_options = 1,
1205      .options = application_161_options,
1206    },
1207    { .name = "Saints Row IV",
1208      .executable = "SaintsRow4.i386",
1209      .num_options = 1,
1210      .options = application_163_options,
1211    },
1212    { .name = "Saints Row: Gat out of Hell",
1213      .executable = "SaintsRow4GooH.i386",
1214      .num_options = 1,
1215      .options = application_165_options,
1216    },
1217    { .name = "Sid Meier's: Civilization Beyond Earth",
1218      .executable = "CivBE",
1219      .num_options = 1,
1220      .options = application_167_options,
1221    },
1222    { .name = "The Witcher 2",
1223      .executable = "witcher2",
1224      .num_options = 1,
1225      .options = application_169_options,
1226    },
1227    { .name = "American Truck Simulator",
1228      .executable = "amtrucks",
1229      .num_options = 1,
1230      .options = application_171_options,
1231    },
1232    { .name = "Euro Truck Simulator 2",
1233      .executable = "eurotrucks2",
1234      .num_options = 1,
1235      .options = application_173_options,
1236    },
1237    { .name = "Overlord",
1238      .executable = "overlord.i386",
1239      .num_options = 1,
1240      .options = application_175_options,
1241    },
1242    { .name = "Overlord 2",
1243      .executable = "overlord2.i386",
1244      .num_options = 1,
1245      .options = application_177_options,
1246    },
1247    { .name = "Oil Rush",
1248      .executable = "OilRush_x86",
1249      .num_options = 1,
1250      .options = application_179_options,
1251    },
1252    { .name = "War Thunder",
1253      .executable = "aces",
1254      .num_options = 1,
1255      .options = application_181_options,
1256    },
1257    { .name = "War Thunder (Wine)",
1258      .executable = "aces.exe",
1259      .num_options = 1,
1260      .options = application_183_options,
1261    },
1262    { .name = "Outlast",
1263      .executable = "OLGame.x86_64",
1264      .num_options = 1,
1265      .options = application_185_options,
1266    },
1267    { .name = "Spec Ops: The Line (32-bit)",
1268      .executable = "specops.i386",
1269      .num_options = 1,
1270      .options = application_187_options,
1271    },
1272    { .name = "Spec Ops: The Line (64-bit)",
1273      .executable = "specops",
1274      .num_options = 1,
1275      .options = application_189_options,
1276    },
1277    { .name = "Mount and Blade Warband",
1278      .executable = "mb_warband_linux",
1279      .num_options = 1,
1280      .options = application_191_options,
1281    },
1282    { .name = "Valheim",
1283      .executable = "valheim.x86_64",
1284      .num_options = 1,
1285      .options = application_193_options,
1286    },
1287    { .name = "Medieval II: Total War",
1288      .executable = "Medieval2",
1289      .num_options = 1,
1290      .options = application_195_options,
1291    },
1292    { .name = "Carnivores: Dinosaur Hunter Reborn (wine)",
1293      .executable = "Carnivores-master.exe",
1294      .num_options = 1,
1295      .options = application_197_options,
1296    },
1297    { .name = "Far Cry 2 (wine)",
1298      .executable = "farcry2.exe",
1299      .num_options = 1,
1300      .options = application_199_options,
1301    },
1302    { .name = "Talos Principle",
1303      .executable = "Talos",
1304      .num_options = 1,
1305      .options = application_201_options,
1306    },
1307    { .name = "Talos Principle (Unrestricted)",
1308      .executable = "Talos_Unrestricted",
1309      .num_options = 1,
1310      .options = application_203_options,
1311    },
1312    { .name = "7 Days To Die (64-bit)",
1313      .executable = "7DaysToDie.x86_64",
1314      .num_options = 1,
1315      .options = application_205_options,
1316    },
1317    { .name = "7 Days To Die (32-bit)",
1318      .executable = "7DaysToDie.x86",
1319      .num_options = 1,
1320      .options = application_207_options,
1321    },
1322    { .name = "Dolphin Emulator",
1323      .executable = "dolphin-emu",
1324      .num_options = 1,
1325      .options = application_209_options,
1326    },
1327    { .name = "Citra - Nintendo 3DS Emulator",
1328      .executable = "citra-qt",
1329      .num_options = 1,
1330      .options = application_211_options,
1331    },
1332    { .name = "Yuzu - Nintendo Switch Emulator",
1333      .executable = "yuzu",
1334      .num_options = 1,
1335      .options = application_213_options,
1336    },
1337    { .name = "RPCS3",
1338      .executable = "rpcs3",
1339      .num_options = 1,
1340      .options = application_215_options,
1341    },
1342    { .name = "PCSX2",
1343      .executable = "PCSX2",
1344      .num_options = 1,
1345      .options = application_217_options,
1346    },
1347    { .name = "From The Depths",
1348      .executable = "From_The_Depths.x86_64",
1349      .num_options = 1,
1350      .options = application_219_options,
1351    },
1352    { .name = "Plague Inc Evolved (32-bit)",
1353      .executable = "PlagueIncEvolved.x86",
1354      .num_options = 1,
1355      .options = application_221_options,
1356    },
1357    { .name = "Plague Inc Evolved (64-bit)",
1358      .executable = "PlagueIncEvolved.x86_64",
1359      .num_options = 1,
1360      .options = application_223_options,
1361    },
1362    { .name = "Beholder (32-bit)",
1363      .executable = "Beholder.x86",
1364      .num_options = 1,
1365      .options = application_225_options,
1366    },
1367    { .name = "Beholder (64-bit)",
1368      .executable = "Beholder.x86_64",
1369      .num_options = 1,
1370      .options = application_227_options,
1371    },
1372    { .name = "X3 Reunion",
1373      .executable = "X3R_main",
1374      .num_options = 1,
1375      .options = application_229_options,
1376    },
1377    { .name = "X3 Terran Conflict",
1378      .executable = "X3TR_main",
1379      .num_options = 1,
1380      .options = application_231_options,
1381    },
1382    { .name = "X3 Albion Prelude",
1383      .executable = "X3AP_main",
1384      .num_options = 1,
1385      .options = application_233_options,
1386    },
1387    { .name = "Borderlands: The Pre-Sequel",
1388      .executable = "BorderlandsPreSequel",
1389      .num_options = 1,
1390      .options = application_235_options,
1391    },
1392    { .name = "Transport Fever",
1393      .executable = "TransportFever",
1394      .num_options = 1,
1395      .options = application_237_options,
1396    },
1397    { .name = "gnome-shell",
1398      .executable = "gnome-shell",
1399      .num_options = 2,
1400      .options = application_239_options,
1401    },
1402    { .name = "Desktop — Plasma",
1403      .executable = "plasmashell",
1404      .num_options = 1,
1405      .options = application_242_options,
1406    },
1407    { .name = "budgie-wm",
1408      .executable = "budgie-wm",
1409      .num_options = 1,
1410      .options = application_244_options,
1411    },
1412    { .name = "kwin_x11",
1413      .executable = "kwin_x11",
1414      .num_options = 1,
1415      .options = application_246_options,
1416    },
1417    { .name = "ksmserver-logout-greeter",
1418      .executable = "ksmserver-logout-greeter",
1419      .num_options = 1,
1420      .options = application_248_options,
1421    },
1422    { .name = "ksmserver-switchuser-greeter",
1423      .executable = "ksmserver-switchuser-greeter",
1424      .num_options = 1,
1425      .options = application_250_options,
1426    },
1427    { .name = "kscreenlocker_greet",
1428      .executable = "kscreenlocker_greet",
1429      .num_options = 1,
1430      .options = application_252_options,
1431    },
1432    { .name = "startplasma",
1433      .executable = "startplasma",
1434      .num_options = 1,
1435      .options = application_254_options,
1436    },
1437    { .name = "sddm-greeter",
1438      .executable = "sddm-greeter",
1439      .num_options = 1,
1440      .options = application_256_options,
1441    },
1442    { .name = "krunner",
1443      .executable = "krunner",
1444      .num_options = 1,
1445      .options = application_258_options,
1446    },
1447    { .name = "spectacle",
1448      .executable = "spectacle",
1449      .num_options = 1,
1450      .options = application_260_options,
1451    },
1452    { .name = "marco",
1453      .executable = "marco",
1454      .num_options = 1,
1455      .options = application_262_options,
1456    },
1457    { .name = "compton",
1458      .executable = "compton",
1459      .num_options = 1,
1460      .options = application_264_options,
1461    },
1462    { .name = "picom",
1463      .executable = "picom",
1464      .num_options = 1,
1465      .options = application_266_options,
1466    },
1467    { .name = "xfwm4",
1468      .executable = "xfwm4",
1469      .num_options = 1,
1470      .options = application_268_options,
1471    },
1472    { .name = "Enlightenment",
1473      .executable = "enlightenment",
1474      .num_options = 1,
1475      .options = application_270_options,
1476    },
1477    { .name = "mutter",
1478      .executable = "mutter",
1479      .num_options = 2,
1480      .options = application_272_options,
1481    },
1482    { .name = "muffin",
1483      .executable = "muffin",
1484      .num_options = 1,
1485      .options = application_275_options,
1486    },
1487    { .name = "compiz",
1488      .executable = "compiz",
1489      .num_options = 1,
1490      .options = application_277_options,
1491    },
1492    { .name = "Firefox",
1493      .executable = "firefox",
1494      .num_options = 1,
1495      .options = application_279_options,
1496    },
1497    { .name = "Firefox ESR",
1498      .executable = "firefox-esr",
1499      .num_options = 1,
1500      .options = application_281_options,
1501    },
1502    { .name = "Chromium",
1503      .executable = "chromium",
1504      .num_options = 1,
1505      .options = application_283_options,
1506    },
1507    { .name = "Google Chrome",
1508      .executable = "chrome",
1509      .num_options = 1,
1510      .options = application_285_options,
1511    },
1512    { .name = "Iceweasel",
1513      .executable = "iceweasel",
1514      .num_options = 1,
1515      .options = application_287_options,
1516    },
1517    { .name = "Epiphany",
1518      .executable = "epiphany",
1519      .num_options = 1,
1520      .options = application_289_options,
1521    },
1522    { .name = "Konqueror",
1523      .executable = "konqueror",
1524      .num_options = 1,
1525      .options = application_291_options,
1526    },
1527    { .name = "Falkon",
1528      .executable = "falkon",
1529      .num_options = 1,
1530      .options = application_293_options,
1531    },
1532    { .name = "Seamonkey",
1533      .executable = "seamonkey",
1534      .num_options = 1,
1535      .options = application_295_options,
1536    },
1537    { .name = "Waterfox",
1538      .executable = "waterfox",
1539      .num_options = 1,
1540      .options = application_297_options,
1541    },
1542    { .name = "VLC Media Player",
1543      .executable = "vlc",
1544      .num_options = 1,
1545      .options = application_299_options,
1546    },
1547    { .name = "Totem",
1548      .executable = "totem",
1549      .num_options = 1,
1550      .options = application_301_options,
1551    },
1552    { .name = "Dragon Player",
1553      .executable = "dragon",
1554      .num_options = 1,
1555      .options = application_303_options,
1556    },
1557    { .name = "mpv",
1558      .executable = "mpv",
1559      .num_options = 1,
1560      .options = application_305_options,
1561    },
1562    { .name = "Xorg",
1563      .executable = "Xorg",
1564      .num_options = 1,
1565      .options = application_307_options,
1566    },
1567    { .name = "gfxbench",
1568      .executable = "testfw_app",
1569      .num_options = 2,
1570      .options = application_309_options,
1571    },
1572    { .name = "Brink",
1573      .executable = "brink.exe",
1574      .num_options = 2,
1575      .options = application_312_options,
1576    },
1577    { .name = "Enter The Gungeon (32 bits)",
1578      .executable = "EtG.x86",
1579      .num_options = 1,
1580      .options = application_315_options,
1581    },
1582    { .name = "Enter The Gungeon (64 bits)",
1583      .executable = "EtG.x86_64",
1584      .num_options = 1,
1585      .options = application_317_options,
1586    },
1587    { .name = "SWKOTOR (wine)",
1588      .executable = "swkotor.exe",
1589      .num_options = 1,
1590      .options = application_319_options,
1591    },
1592    { .name = "Assault Android Cactus (32-bit)",
1593      .executable = "cactus_demo.x86",
1594      .num_options = 1,
1595      .options = application_321_options,
1596    },
1597    { .name = "Assault Android Cactus (64-bit)",
1598      .executable = "cactus_demo.x86_64",
1599      .num_options = 1,
1600      .options = application_323_options,
1601    },
1602    { .name = "Assault Android Cactus (32-bit)",
1603      .executable = "cactus.x86",
1604      .num_options = 1,
1605      .options = application_325_options,
1606    },
1607    { .name = "Assault Android Cactus (64-bit)",
1608      .executable = "cactus.x86_64",
1609      .num_options = 1,
1610      .options = application_327_options,
1611    },
1612    { .name = "DOOM",
1613      .executable = "DOOMx64vk.exe",
1614      .num_options = 1,
1615      .options = application_329_options,
1616    },
1617    { .name = "DOOMEternal",
1618      .executable = "DOOMEternalx64vk.exe",
1619      .num_options = 1,
1620      .options = application_331_options,
1621    },
1622    { .name = "Wolfenstein: Youngblood(x64vk)",
1623      .executable = "Youngblood_x64vk.exe",
1624      .num_options = 1,
1625      .options = application_333_options,
1626    },
1627    { .name = "Metro: Exodus",
1628      .application_name_match = "metroexodus",
1629      .num_options = 1,
1630      .options = application_335_options,
1631    },
1632};
1633
1634static const struct driconf_device device_1 = {
1635    .num_engines = 1,
1636    .engines = device_1_engines,
1637    .num_applications = 153,
1638    .applications = device_1_applications,
1639};
1640
1641
1642
1643static const struct driconf_option application_340_options[] = {
1644    { .name = "glx_extension_override", .value = "-GLX_EXT_buffer_age -GLX_OML_sync_control -GLX_SGI_video_sync" },
1645};
1646
1647
1648static const struct driconf_option application_342_options[] = {
1649    { .name = "glx_extension_override", .value = "-GLX_EXT_buffer_age -GLX_OML_sync_control" },
1650};
1651
1652
1653static const struct driconf_application device_339_applications[] = {
1654    { .name = "gnome-shell",
1655      .executable = "gnome-shell",
1656      .num_options = 1,
1657      .options = application_340_options,
1658    },
1659    { .name = "Compiz",
1660      .executable = "Compiz",
1661      .num_options = 1,
1662      .options = application_342_options,
1663    },
1664};
1665
1666static const struct driconf_device device_339 = {
1667    .driver = "vmwgfx",
1668    .num_engines = 0,
1669    .num_applications = 2,
1670    .applications = device_339_applications,
1671};
1672
1673
1674
1675static const struct driconf_option application_345_options[] = {
1676    { .name = "mesa_glthread", .value = "true" },
1677};
1678
1679
1680static const struct driconf_option application_347_options[] = {
1681    { .name = "mesa_glthread", .value = "true" },
1682};
1683
1684
1685static const struct driconf_option application_349_options[] = {
1686    { .name = "force_gl_vendor", .value = "X.Org" },
1687};
1688
1689
1690static const struct driconf_option application_351_options[] = {
1691    { .name = "radeonsi_zerovram", .value = "true" },
1692};
1693
1694
1695static const struct driconf_option application_353_options[] = {
1696    { .name = "mesa_glthread", .value = "true" },
1697    { .name = "radeonsi_zerovram", .value = "true" },
1698    { .name = "radeonsi_clamp_div_by_zero", .value = "true" },
1699};
1700
1701
1702static const struct driconf_option application_357_options[] = {
1703    { .name = "radeonsi_zerovram", .value = "true" },
1704};
1705
1706
1707static const struct driconf_option application_359_options[] = {
1708    { .name = "radeonsi_prim_restart_tri_strips_only", .value = "true" },
1709};
1710
1711
1712static const struct driconf_option application_361_options[] = {
1713    { .name = "mesa_glthread", .value = "true" },
1714};
1715
1716
1717static const struct driconf_option application_363_options[] = {
1718    { .name = "radeonsi_sync_compile", .value = "true" },
1719    { .name = "radeonsi_zerovram", .value = "true" },
1720};
1721
1722
1723static const struct driconf_option application_366_options[] = {
1724    { .name = "radeonsi_sync_compile", .value = "true" },
1725};
1726
1727
1728static const struct driconf_option application_368_options[] = {
1729    { .name = "radeonsi_sync_compile", .value = "true" },
1730};
1731
1732
1733static const struct driconf_option application_370_options[] = {
1734    { .name = "radeonsi_sync_compile", .value = "true" },
1735};
1736
1737
1738static const struct driconf_option application_372_options[] = {
1739    { .name = "radeonsi_sync_compile", .value = "true" },
1740};
1741
1742
1743static const struct driconf_option application_374_options[] = {
1744    { .name = "radeonsi_sync_compile", .value = "true" },
1745};
1746
1747
1748static const struct driconf_option application_376_options[] = {
1749    { .name = "radeonsi_no_infinite_interp", .value = "true" },
1750};
1751
1752
1753static const struct driconf_option application_378_options[] = {
1754    { .name = "radeonsi_zerovram", .value = "true" },
1755};
1756
1757
1758static const struct driconf_option application_380_options[] = {
1759    { .name = "radeonsi_zerovram", .value = "true" },
1760};
1761
1762
1763static const struct driconf_option application_382_options[] = {
1764    { .name = "radeonsi_sync_compile", .value = "true" },
1765    { .name = "radeonsi_clamp_div_by_zero", .value = "true" },
1766    { .name = "radeonsi_inline_uniforms", .value = "true" },
1767    { .name = "radeonsi_shader_culling", .value = "true" },
1768};
1769
1770
1771static const struct driconf_option application_387_options[] = {
1772    { .name = "radeonsi_clamp_div_by_zero", .value = "true" },
1773};
1774
1775
1776static const struct driconf_option application_389_options[] = {
1777    { .name = "radeonsi_clamp_div_by_zero", .value = "true" },
1778};
1779
1780
1781static const struct driconf_option application_391_options[] = {
1782    { .name = "radeonsi_clamp_div_by_zero", .value = "true" },
1783    { .name = "radeonsi_no_infinite_interp", .value = "true" },
1784};
1785
1786
1787static const struct driconf_option application_394_options[] = {
1788    { .name = "force_gl_vendor", .value = "X.Org" },
1789};
1790
1791
1792static const struct driconf_application device_344_applications[] = {
1793    { .name = "Half Life 2",
1794      .executable = "hl2_linux",
1795      .num_options = 1,
1796      .options = application_345_options,
1797    },
1798    { .name = "Black Mesa",
1799      .executable = "bms_linux",
1800      .num_options = 1,
1801      .options = application_347_options,
1802    },
1803    { .name = "Alien Isolation",
1804      .executable = "AlienIsolation",
1805      .num_options = 1,
1806      .options = application_349_options,
1807    },
1808    { .name = "American Truck Simulator",
1809      .executable = "amtrucks",
1810      .num_options = 1,
1811      .options = application_351_options,
1812    },
1813    { .name = "Counter-Strike Global Offensive",
1814      .executable = "csgo_linux64",
1815      .num_options = 3,
1816      .options = application_353_options,
1817    },
1818    { .name = "Rocket League",
1819      .executable = "RocketLeague",
1820      .num_options = 1,
1821      .options = application_357_options,
1822    },
1823    { .name = "DiRT Rally",
1824      .executable = "DirtRally",
1825      .num_options = 1,
1826      .options = application_359_options,
1827    },
1828    { .name = "Gfx Bench",
1829      .executable = "gfxbench_gl",
1830      .num_options = 1,
1831      .options = application_361_options,
1832    },
1833    { .name = "Monolith demo5",
1834      .executable = "runner",
1835      .sha1 = "0c40d509a74e357f0280cb1bd882e9cd94b91bdf",
1836      .num_options = 2,
1837      .options = application_363_options,
1838    },
1839    { .name = "Memoranda / Riptale",
1840      .executable = "runner",
1841      .sha1 = "aa13dec6af63c88f308ebb487693896434a4db56",
1842      .num_options = 1,
1843      .options = application_366_options,
1844    },
1845    { .name = "Nuclear Throne",
1846      .executable = "runner",
1847      .sha1 = "84814e8db125e889f5d9d4195a0ca72a871ea1fd",
1848      .num_options = 1,
1849      .options = application_368_options,
1850    },
1851    { .name = "Undertale",
1852      .executable = "runner",
1853      .sha1 = "dfa302e7ec78641d0696dbbc1a06fc29f34ff1ff",
1854      .num_options = 1,
1855      .options = application_370_options,
1856    },
1857    { .name = "Turmoil",
1858      .executable = "runner",
1859      .sha1 = "cbbf757aaab289859f8dae191a7d63afc30643d9",
1860      .num_options = 1,
1861      .options = application_372_options,
1862    },
1863    { .name = "Peace, Death!",
1864      .executable = "runner",
1865      .sha1 = "5b909f3d21799773370adf084f649848f098234e",
1866      .num_options = 1,
1867      .options = application_374_options,
1868    },
1869    { .name = "Kerbal Space Program",
1870      .executable = "KSP.x86_64",
1871      .num_options = 1,
1872      .options = application_376_options,
1873    },
1874    { .name = "7 Days to Die",
1875      .executable = "7DaysToDie.x86_64",
1876      .num_options = 1,
1877      .options = application_378_options,
1878    },
1879    { .name = "7 Days to Die",
1880      .executable = "7DaysToDie.x86",
1881      .num_options = 1,
1882      .options = application_380_options,
1883    },
1884    { .name = "SPECviewperf13",
1885      .executable = "viewperf",
1886      .num_options = 4,
1887      .options = application_382_options,
1888    },
1889    { .name = "Road Redemption",
1890      .executable = "RoadRedemption.x86_64",
1891      .num_options = 1,
1892      .options = application_387_options,
1893    },
1894    { .name = "Wasteland 2",
1895      .executable = "WL2",
1896      .num_options = 1,
1897      .options = application_389_options,
1898    },
1899    { .name = "Teardown",
1900      .executable = "teardown.exe",
1901      .num_options = 2,
1902      .options = application_391_options,
1903    },
1904    { .name = "SpaceEngine",
1905      .executable = "SpaceEngine.exe",
1906      .num_options = 1,
1907      .options = application_394_options,
1908    },
1909};
1910
1911static const struct driconf_device device_344 = {
1912    .driver = "radeonsi",
1913    .num_engines = 0,
1914    .num_applications = 22,
1915    .applications = device_344_applications,
1916};
1917
1918
1919
1920static const struct driconf_option application_397_options[] = {
1921    { .name = "vs_position_always_invariant", .value = "true" },
1922};
1923
1924
1925static const struct driconf_application device_396_applications[] = {
1926    { .name = "Middle Earth: Shadow of Mordor",
1927      .executable = "ShadowOfMordor",
1928      .num_options = 1,
1929      .options = application_397_options,
1930    },
1931};
1932
1933static const struct driconf_device device_396 = {
1934    .driver = "i965",
1935    .num_engines = 0,
1936    .num_applications = 1,
1937    .applications = device_396_applications,
1938};
1939
1940
1941
1942static const struct driconf_option application_400_options[] = {
1943    { .name = "vs_position_always_invariant", .value = "true" },
1944};
1945
1946
1947static const struct driconf_application device_399_applications[] = {
1948    { .name = "Middle Earth: Shadow of Mordor",
1949      .executable = "ShadowOfMordor",
1950      .num_options = 1,
1951      .options = application_400_options,
1952    },
1953};
1954
1955static const struct driconf_device device_399 = {
1956    .driver = "iris",
1957    .num_engines = 0,
1958    .num_applications = 1,
1959    .applications = device_399_applications,
1960};
1961
1962static const struct driconf_option engine_447_options[] = {
1963    { .name = "radv_zero_vram", .value = "true" },
1964};
1965
1966
1967static const struct driconf_option engine_449_options[] = {
1968    { .name = "radv_zero_vram", .value = "true" },
1969    { .name = "radv_lower_discard_to_demote", .value = "true" },
1970    { .name = "radv_disable_tc_compat_htile_general", .value = "true" },
1971};
1972
1973
1974static const struct driconf_engine device_402_engines[] = {
1975    { .engine_name_match = "vkd3d",
1976      .num_options = 1,
1977      .options = engine_447_options,
1978    },
1979    { .engine_name_match = "Quantic Dream Engine",
1980      .num_options = 3,
1981      .options = engine_449_options,
1982    },
1983};
1984
1985
1986static const struct driconf_option application_403_options[] = {
1987    { .name = "radv_report_llvm9_version_string", .value = "true" },
1988    { .name = "radv_invariant_geom", .value = "true" },
1989};
1990
1991
1992static const struct driconf_option application_406_options[] = {
1993    { .name = "radv_invariant_geom", .value = "true" },
1994};
1995
1996
1997static const struct driconf_option application_408_options[] = {
1998    { .name = "radv_enable_mrt_output_nan_fixup", .value = "true" },
1999};
2000
2001
2002static const struct driconf_option application_410_options[] = {
2003    { .name = "radv_no_dynamic_bounds", .value = "true" },
2004    { .name = "radv_absolute_depth_bias", .value = "true" },
2005};
2006
2007
2008static const struct driconf_option application_413_options[] = {
2009    { .name = "radv_no_dynamic_bounds", .value = "true" },
2010    { .name = "radv_absolute_depth_bias", .value = "true" },
2011};
2012
2013
2014static const struct driconf_option application_416_options[] = {
2015    { .name = "radv_no_dynamic_bounds", .value = "true" },
2016    { .name = "radv_absolute_depth_bias", .value = "true" },
2017};
2018
2019
2020static const struct driconf_option application_419_options[] = {
2021    { .name = "radv_no_dynamic_bounds", .value = "true" },
2022    { .name = "radv_absolute_depth_bias", .value = "true" },
2023};
2024
2025
2026static const struct driconf_option application_422_options[] = {
2027    { .name = "radv_disable_shrink_image_store", .value = "true" },
2028    { .name = "radv_zero_vram", .value = "true" },
2029};
2030
2031
2032static const struct driconf_option application_425_options[] = {
2033    { .name = "radv_override_uniform_offset_alignment", .value = "16" },
2034    { .name = "radv_disable_shrink_image_store", .value = "true" },
2035    { .name = "radv_invariant_geom", .value = "true" },
2036};
2037
2038
2039static const struct driconf_option application_429_options[] = {
2040    { .name = "radv_no_dynamic_bounds", .value = "true" },
2041};
2042
2043
2044static const struct driconf_option application_431_options[] = {
2045    { .name = "radv_zero_vram", .value = "true" },
2046};
2047
2048
2049static const struct driconf_option application_433_options[] = {
2050    { .name = "radv_lower_discard_to_demote", .value = "true" },
2051};
2052
2053
2054static const struct driconf_option application_435_options[] = {
2055    { .name = "radv_invariant_geom", .value = "true" },
2056};
2057
2058
2059static const struct driconf_option application_437_options[] = {
2060    { .name = "radv_disable_dcc", .value = "true" },
2061};
2062
2063
2064static const struct driconf_option application_439_options[] = {
2065    { .name = "radv_disable_dcc", .value = "true" },
2066};
2067
2068
2069static const struct driconf_option application_441_options[] = {
2070    { .name = "radv_report_apu_as_dgpu", .value = "true" },
2071};
2072
2073
2074static const struct driconf_option application_443_options[] = {
2075    { .name = "radv_invariant_geom", .value = "true" },
2076};
2077
2078
2079static const struct driconf_option application_445_options[] = {
2080    { .name = "radv_disable_htile_layers", .value = "true" },
2081};
2082
2083
2084static const struct driconf_application device_402_applications[] = {
2085    { .name = "Shadow Of The Tomb Raider (Native)",
2086      .application_name_match = "ShadowOfTheTomb",
2087      .num_options = 2,
2088      .options = application_403_options,
2089    },
2090    { .name = "Shadow Of The Tomb Raider (DX11/DX12)",
2091      .application_name_match = "SOTTR.exe",
2092      .num_options = 1,
2093      .options = application_406_options,
2094    },
2095    { .name = "RAGE 2",
2096      .executable = "RAGE2.exe",
2097      .num_options = 1,
2098      .options = application_408_options,
2099    },
2100    { .name = "Path of Exile (64-bit, Steam)",
2101      .executable = "PathOfExile_x64Steam.exe",
2102      .num_options = 2,
2103      .options = application_410_options,
2104    },
2105    { .name = "Path of Exile (32-bit, Steam)",
2106      .executable = "PathOfExileSteam.exe",
2107      .num_options = 2,
2108      .options = application_413_options,
2109    },
2110    { .name = "Path of Exile (64-bit)",
2111      .executable = "PathOfExile_x64.exe",
2112      .num_options = 2,
2113      .options = application_416_options,
2114    },
2115    { .name = "Path of Exile (32-bit)",
2116      .executable = "PathOfExile.exe",
2117      .num_options = 2,
2118      .options = application_419_options,
2119    },
2120    { .name = "The Surge 2",
2121      .application_name_match = "Fledge",
2122      .num_options = 2,
2123      .options = application_422_options,
2124    },
2125    { .name = "World War Z (and World War Z: Aftermath)",
2126      .application_name_match = "WWZ|wwz",
2127      .num_options = 3,
2128      .options = application_425_options,
2129    },
2130    { .name = "DOOM VFR",
2131      .application_name_match = "DOOM_VFR",
2132      .num_options = 1,
2133      .options = application_429_options,
2134    },
2135    { .name = "DOOM Eternal",
2136      .application_name_match = "DOOMEternal",
2137      .num_options = 1,
2138      .options = application_431_options,
2139    },
2140    { .name = "No Man's Sky",
2141      .application_name_match = "No Man's Sky",
2142      .num_options = 1,
2143      .options = application_433_options,
2144    },
2145    { .name = "Monster Hunter World",
2146      .application_name_match = "MonsterHunterWorld.exe",
2147      .num_options = 1,
2148      .options = application_435_options,
2149    },
2150    { .name = "DOOM (2016)",
2151      .application_name_match = "DOOM$",
2152      .num_options = 1,
2153      .options = application_437_options,
2154    },
2155    { .name = "Wolfenstein II",
2156      .application_name_match = "Wolfenstein II The New Colossus",
2157      .num_options = 1,
2158      .options = application_439_options,
2159    },
2160    { .name = "RDR2",
2161      .application_name_match = "Red Dead Redemption 2",
2162      .num_options = 1,
2163      .options = application_441_options,
2164    },
2165    { .name = "Resident Evil Village",
2166      .application_name_match = "re8.exe",
2167      .num_options = 1,
2168      .options = application_443_options,
2169    },
2170    { .name = "F1 2021",
2171      .application_name_match = "F1_2021_dx12.exe",
2172      .num_options = 1,
2173      .options = application_445_options,
2174    },
2175};
2176
2177static const struct driconf_device device_402 = {
2178    .driver = "radv",
2179    .num_engines = 2,
2180    .engines = device_402_engines,
2181    .num_applications = 18,
2182    .applications = device_402_applications,
2183};
2184
2185
2186
2187static const struct driconf_option application_454_options[] = {
2188    { .name = "force_gl_renderer", .value = "Adreno (TM) 618" },
2189    { .name = "force_gl_vendor", .value = "Qualcomm" },
2190};
2191
2192
2193static const struct driconf_option application_457_options[] = {
2194    { .name = "force_gl_renderer", .value = "Adreno (TM) 630" },
2195    { .name = "force_gl_vendor", .value = "Qualcomm" },
2196};
2197
2198
2199static const struct driconf_option application_460_options[] = {
2200    { .name = "force_gl_renderer", .value = "Adreno (TM) 618" },
2201    { .name = "force_gl_vendor", .value = "Qualcomm" },
2202};
2203
2204
2205static const struct driconf_option application_463_options[] = {
2206    { .name = "force_gl_renderer", .value = "Adreno (TM) 630" },
2207    { .name = "force_gl_vendor", .value = "Qualcomm" },
2208};
2209
2210
2211static const struct driconf_application device_453_applications[] = {
2212    { .name = "Call of Duty Mobile",
2213      .executable = "com.activision.callofduty.shooter",
2214      .num_options = 2,
2215      .options = application_454_options,
2216    },
2217    { .name = "Asphalt 8",
2218      .executable = "com.gameloft.android.ANMP.GloftA8HM",
2219      .num_options = 2,
2220      .options = application_457_options,
2221    },
2222    { .name = "Asphalt 9",
2223      .executable = "com.gameloft.android.ANMP.GloftA9HM",
2224      .num_options = 2,
2225      .options = application_460_options,
2226    },
2227    { .name = "PUBG Mobile",
2228      .executable = "com.tencent.ig",
2229      .num_options = 2,
2230      .options = application_463_options,
2231    },
2232};
2233
2234static const struct driconf_device device_453 = {
2235    .driver = "msm",
2236    .device = "FD618",
2237    .num_engines = 0,
2238    .num_applications = 4,
2239    .applications = device_453_applications,
2240};
2241
2242static const struct driconf_device *driconf[] = {
2243    &device_1,
2244    &device_339,
2245    &device_344,
2246    &device_396,
2247    &device_399,
2248    &device_402,
2249    &device_453,
2250};
2251