diff --git a/cspell.json b/cspell.json index e37e0a4..9654021 100644 --- a/cspell.json +++ b/cspell.json @@ -13,6 +13,10 @@ "Kikis", "Jcraft", "Kombustor", + "Unigine", + "directx", + "opengl", + "argies", "turbopolsa", "RLCS", "Dota", diff --git a/superposition/README.md b/superposition/README.md index 2e50d82..05a692e 100644 --- a/superposition/README.md +++ b/superposition/README.md @@ -7,9 +7,10 @@ Wrapper for the Unigine benchmark Superposition. - Python 3.10+ - [Unigine Superposition](https://benchmark.unigine.com/superposition) installed. +> Unigine Superposition PROFESSIONAL edition needs to be unlocked to support CLI commands. + ## Output report.json - `api`: graphics api to be used: directx or opengl. -- `preset`: graphics preset to be used: low, medium, high, extreme. -- `resolution` resolution to be used, example: 1080,1920 \ No newline at end of file +- `preset`: graphics preset to be used: low, medium, high, extreme. \ No newline at end of file diff --git a/superposition/manifest.yaml b/superposition/manifest.yaml index 5fb3c6c..7df28aa 100644 --- a/superposition/manifest.yaml +++ b/superposition/manifest.yaml @@ -1,7 +1,7 @@ friendly_name: "Unigine Superposition" executable: "superposition.py" process_name: "superposition.exe" -hidden: 1 +hidden: 0 output_dir: "run" options: - name: api @@ -10,8 +10,5 @@ options: tooltip: "Select API to use in test" - name: preset type: select - values: [low, medium, high, extreme, 4k_optimized, 8k_optimized] + values: [low, medium, high, extreme, 4k_optimized, 8k_optimized] tooltip: See Superposition doc section "Benchmark Presets" - - name: resolution - type: input - tooltip: Format must be height,width. 1080,1920 \ No newline at end of file diff --git a/superposition/superposition.py b/superposition/superposition.py index 0bd03e0..b384adb 100644 --- a/superposition/superposition.py +++ b/superposition/superposition.py @@ -24,20 +24,11 @@ parser.add_argument("-a", "--api", dest="api", help="graphics api", metavar="api", required=True) parser.add_argument("-p", "--preset", dest="preset", help="performance preset", metavar="preset", required=True) -parser.add_argument("-r", "--resolution", dest="resolution", - help="resolution", metavar="resolution", required=True) args = parser.parse_args() if args.preset not in avail_presets: raise ValueError(f"Error, unknown preset: {args.preset}") -match = re.search(r"^\d+,\d+$", args.resolution) -if match is None: - raise ValueError("Resolution value must be in format height,width") -r = args.resolution.split(",") -h = r[0] -w = r[1] - script_dir = os.path.dirname(os.path.realpath(__file__)) log_dir = os.path.join(script_dir, "run") if not os.path.isdir(log_dir): @@ -53,15 +44,15 @@ console.setFormatter(formatter) logging.getLogger('').addHandler(console) cmd = f'{INSTALL_DIR}\\{EXECUTABLE}' -argstr = f"-fullscreen 1 -mode default -api {args.api} -quality {args.preset} -resolution {w}x{h}" +argstr = f"-fullscreen 1 -mode default -api {args.api} -quality {args.preset} -iterations 1" argstr += f" -log_txt {log_dir}\\log.txt" logging.info(cmd) logging.info(argstr) argies = argstr.split(" ") cmd = cmd.rstrip() -process = Popen([cmd, *argies]) -EXIT_CODE = process.wait() +with Popen([cmd, *argies]) as process: + EXIT_CODE = process.wait() if EXIT_CODE > 0: logging.error("Test failed!") @@ -77,8 +68,7 @@ with open(log_path, encoding="utf-8") as log: score = match.group(1) report = { - "resolution": f"{w}x{h}", - "graphics_preset": args.preset, + "preset": args.preset, "score": score }