Update superposition harness (#72)

* Update superposition harness

* update cspell:

---------

Signed-off-by: nharris-lmg <105814489+nharris-lmg@users.noreply.github.com>
This commit is contained in:
nharris-lmg
2023-10-20 10:05:06 -07:00
committed by GitHub
parent 04328ed730
commit e8b57e0b50
4 changed files with 13 additions and 21 deletions

View File

@@ -13,6 +13,10 @@
"Kikis",
"Jcraft",
"Kombustor",
"Unigine",
"directx",
"opengl",
"argies",
"turbopolsa",
"RLCS",
"Dota",

View File

@@ -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
- `preset`: graphics preset to be used: low, medium, high, extreme.

View File

@@ -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

View File

@@ -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
}