@@ -15,21 +15,22 @@ def is_game_path(path):
15
15
return extension in ["cue" , "chd" ]
16
16
17
17
18
- def run_regression_test (runner , destdir , dump_interval , frames , renderer , gamepath ):
18
+ def run_regression_test (runner , destdir , dump_interval , frames , renderer , cargs , gamepath ):
19
19
args = [runner ,
20
20
"-log" , "error" ,
21
21
"-dumpdir" , destdir ,
22
22
"-dumpinterval" , str (dump_interval ),
23
23
"-frames" , str (frames ),
24
24
"-renderer" , ("Software" if renderer is None else renderer ),
25
- "--" , gamepath
26
25
]
26
+ args += cargs
27
+ args += ["--" , gamepath ]
27
28
28
29
print ("Running '%s'" % (" " .join (args )))
29
30
subprocess .run (args )
30
31
31
32
32
- def run_regression_tests (runner , gamedir , destdir , dump_interval , frames , parallel , renderer ):
33
+ def run_regression_tests (runner , gamedir , destdir , dump_interval , frames , parallel , renderer , cargs ):
33
34
paths = glob .glob (gamedir + "/*.*" , recursive = True )
34
35
gamepaths = list (filter (is_game_path , paths ))
35
36
@@ -44,10 +45,10 @@ def run_regression_tests(runner, gamedir, destdir, dump_interval, frames, parall
44
45
45
46
if parallel <= 1 :
46
47
for game in gamepaths :
47
- run_regression_test (runner , destdir , dump_interval , frames , renderer , game )
48
+ run_regression_test (runner , destdir , dump_interval , frames , renderer , cargs , game )
48
49
else :
49
50
print ("Processing %u games on %u processors" % (len (gamepaths ), parallel ))
50
- func = partial (run_regression_test , runner , destdir , dump_interval , frames , renderer )
51
+ func = partial (run_regression_test , runner , destdir , dump_interval , frames , renderer , cargs )
51
52
pool = multiprocessing .Pool (parallel )
52
53
pool .map (func , gamepaths , chunksize = 1 )
53
54
pool .close ()
@@ -65,10 +66,23 @@ def run_regression_tests(runner, gamedir, destdir, dump_interval, frames, parall
65
66
parser .add_argument ("-frames" , action = "store" , type = int , default = 36000 , help = "Number of frames to run" )
66
67
parser .add_argument ("-parallel" , action = "store" , type = int , default = 1 , help = "Number of processes to run" )
67
68
parser .add_argument ("-renderer" , action = "store" , type = str , help = "Renderer to use" )
69
+ parser .add_argument ("-upscale" , action = "store" , type = int , help = "Upscale multiplier" )
70
+ parser .add_argument ("-pgxp" , action = "store_true" , help = "Enable PGXP" )
71
+ parser .add_argument ("-pgxpcpu" , action = "store_true" , help = "Enable PGXP CPU mode" )
72
+ parser .add_argument ("-cpu" , action = "store" , help = "CPU execution mode" )
68
73
69
74
args = parser .parse_args ()
70
-
71
- if not run_regression_tests (args .runner , os .path .realpath (args .gamedir ), os .path .realpath (args .destdir ), args .dumpinterval , args .frames , args .parallel , args .renderer ):
75
+ cargs = []
76
+ if (args .upscale is not None ):
77
+ cargs += ["-upscale" , str (args .upscale )]
78
+ if (args .pgxp ):
79
+ cargs += ["-pgxp" ]
80
+ if (args .pgxpcpu ):
81
+ cargs += ["-pgxp-cpu" ]
82
+ if (args .cpu is not None ):
83
+ cargs += ["-cpu" , args .cpu ]
84
+
85
+ if not run_regression_tests (args .runner , os .path .realpath (args .gamedir ), os .path .realpath (args .destdir ), args .dumpinterval , args .frames , args .parallel , args .renderer , cargs ):
72
86
sys .exit (1 )
73
87
else :
74
88
sys .exit (0 )
0 commit comments