GSRunner: Reduce log spam

This commit is contained in:
Stenzek 2023-03-08 01:15:04 +10:00 committed by refractionpcsx2
parent 54e59e2f7b
commit 9efdeae3ac
2 changed files with 25 additions and 7 deletions

View File

@ -60,7 +60,9 @@
namespace GSRunner namespace GSRunner
{ {
static void InitializeConsole();
static bool InitializeConfig(); static bool InitializeConfig();
static bool ParseCommandLineArgs(int argc, char* argv[], VMBootParameters& params);
static bool CreatePlatformWindow(); static bool CreatePlatformWindow();
static void DestroyPlatformWindow(); static void DestroyPlatformWindow();
@ -77,6 +79,7 @@ alignas(16) static SysMtgsThread s_mtgs_thread;
static std::string s_output_prefix; static std::string s_output_prefix;
static s32 s_loop_count = 1; static s32 s_loop_count = 1;
static std::optional<bool> s_use_window; static std::optional<bool> s_use_window;
static bool s_no_console = false;
// Owned by the GS thread. // Owned by the GS thread.
static u32 s_dump_frame_number = 0; static u32 s_dump_frame_number = 0;
@ -112,7 +115,7 @@ bool GSRunner::InitializeConfig()
si.SetBoolValue("EmuCore", "EnablePerGameSettings", false); si.SetBoolValue("EmuCore", "EnablePerGameSettings", false);
// force logging // force logging
si.SetBoolValue("Logging", "EnableSystemConsole", true); si.SetBoolValue("Logging", "EnableSystemConsole", !s_no_console);
si.SetBoolValue("Logging", "EnableTimestamps", true); si.SetBoolValue("Logging", "EnableTimestamps", true);
si.SetBoolValue("Logging", "EnableVerbose", true); si.SetBoolValue("Logging", "EnableVerbose", true);
@ -453,7 +456,15 @@ static void PrintCommandLineHelp(const char* progname)
std::fprintf(stderr, "\n"); std::fprintf(stderr, "\n");
} }
static bool ParseCommandLineArgs(int argc, char* argv[], VMBootParameters& params) void GSRunner::InitializeConsole()
{
const char* var = std::getenv("PCSX2_NOCONSOLE");
s_no_console = (var && StringUtil::FromChars<bool>(var).value_or(false));
if (!s_no_console)
CommonHost::InitializeEarlyConsole();
}
bool GSRunner::ParseCommandLineArgs(int argc, char* argv[], VMBootParameters& params)
{ {
bool no_more_args = false; bool no_more_args = false;
for (int i = 1; i < argc; i++) for (int i = 1; i < argc; i++)
@ -650,7 +661,7 @@ static bool ParseCommandLineArgs(int argc, char* argv[], VMBootParameters& param
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
CommonHost::InitializeEarlyConsole(); GSRunner::InitializeConsole();
if (!GSRunner::InitializeConfig()) if (!GSRunner::InitializeConfig())
{ {
@ -659,7 +670,7 @@ int main(int argc, char* argv[])
} }
VMBootParameters params; VMBootParameters params;
if (!ParseCommandLineArgs(argc, argv, params)) if (!GSRunner::ParseCommandLineArgs(argc, argv, params))
return EXIT_FAILURE; return EXIT_FAILURE;
PerformanceMetrics::SetCPUThread(Threading::ThreadHandle::GetForCallingThread()); PerformanceMetrics::SetCPUThread(Threading::ThreadHandle::GetForCallingThread());

View File

@ -46,11 +46,15 @@ def run_regression_test(runner, dumpdir, renderer, upscale, renderhacks, paralle
if parallel > 1: if parallel > 1:
args.append("-noshadercache") args.append("-noshadercache")
# disable output console entirely
environ = os.environ.copy()
environ["PCSX2_NOCONSOLE"] = "1"
args.append("--") args.append("--")
args.append(gspath) args.append(gspath)
print("Running '%s'" % (" ".join(args))) #print("Running '%s'" % (" ".join(args)))
subprocess.run(args) subprocess.run(args, env=environ, stdin=subprocess.DEVNULL, stderr=subprocess.DEVNULL, stdout=subprocess.DEVNULL)
def run_regression_tests(runner, gsdir, dumpdir, renderer, upscale, renderhacks, parallel=1): def run_regression_tests(runner, gsdir, dumpdir, renderer, upscale, renderhacks, parallel=1):
@ -69,7 +73,10 @@ def run_regression_tests(runner, gsdir, dumpdir, renderer, upscale, renderhacks,
print("Processing %u games on %u processors" % (len(gamepaths), parallel)) print("Processing %u games on %u processors" % (len(gamepaths), parallel))
func = partial(run_regression_test, runner, dumpdir, renderer, upscale, renderhacks, parallel) func = partial(run_regression_test, runner, dumpdir, renderer, upscale, renderhacks, parallel)
pool = multiprocessing.Pool(parallel) pool = multiprocessing.Pool(parallel)
pool.map(func, gamepaths) completed = 0
for _ in pool.imap_unordered(func, gamepaths, chunksize=1):
completed += 1
print("Processed %u of %u GS dumps (%u%%)" % (completed, len(gamepaths), (completed * 100) // len(gamepaths)))
pool.close() pool.close()