mirror of
https://github.com/LTTLabsOSS/markbench-tests.git
synced 2026-01-10 22:48:18 -05:00
RIP furmark (#21)
This commit is contained in:
@@ -1,61 +0,0 @@
|
||||
# FurMark Test Harness
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Python 3.10+
|
||||
- FurMark installed and on path.
|
||||
|
||||
This harness expects that FurMark has been installed on the system using installer defaults.
|
||||
> Note: Hopefully it will install itself in the future if not present.
|
||||
|
||||
## Setup
|
||||
|
||||
1. Follow the setup instructions for the framework. If you have done so, all required python dependencies *should* be installed.
|
||||
2. Install FurMark from https://geeks3d.com/furmark/downloads/
|
||||
1. Follow the installer's defaults.
|
||||
|
||||
## Configuration
|
||||
|
||||
Below is an example use of this harness as a test in a benchmark configuration.
|
||||
|
||||
```yaml
|
||||
...
|
||||
...
|
||||
tests:
|
||||
- name: furmark
|
||||
executable: "furmark.py"
|
||||
process_name: "FurMark.exe"
|
||||
output_dir:
|
||||
- 'C:\Program Files (x86)\Geeks3D\Benchmarks\FurMark\furmark-gpu-monitoring.xml'
|
||||
- 'C:\Program Files (x86)\Geeks3D\Benchmarks\FurMark\FurMark_0001.txt'
|
||||
- 'C:\Program Files (x86)\Geeks3D\Benchmarks\FurMark\furmark-gpu-monitoring.csv'
|
||||
args:
|
||||
- "/nogui"
|
||||
- "/nomenubar"
|
||||
- "/noscore"
|
||||
- "/width=640"
|
||||
- "/height=480"
|
||||
- "/msaa=4"
|
||||
- "/run_mode=1"
|
||||
- "/max_time=10000"
|
||||
- "/log_temperature"
|
||||
- "/disable_catalyst_warning"
|
||||
```
|
||||
|
||||
__name__ : _(required)_ name of the test. This much match the name of a directory in the harness folder so the framework
|
||||
can find the executable and any supplementary files.
|
||||
|
||||
__executable__ : _(required)_ the entry point to the test harness. In this case a python script.
|
||||
|
||||
__process_name__ : _(required)_ The process name that should be the target for FPS recording (ex: PresentMon).
|
||||
|
||||
__output_dir__: _(optional)_ Directory containing files to aggregate copies of after a successful test run. If a directory path is
|
||||
given, the contents are copied.
|
||||
|
||||
__args__ : _(optional)_ list of arguments to be appended to the command to execute. All the arguments will be passed to
|
||||
the executable when invoked by the framework.
|
||||
|
||||
Arguments for this harness are the same
|
||||
as [the documented CLI arguments](https://www.geeks3d.com/20081123/geeks3d-howto-know-furmarks-command-line-parameters/)
|
||||
.
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
import json
|
||||
import logging
|
||||
import os.path
|
||||
import sys
|
||||
from subprocess import Popen
|
||||
|
||||
DEFAULT_FURMARK_DIR = "C:\\Program Files (x86)\\Geeks3D\\Benchmarks\\FurMark"
|
||||
EXECUTABLE = "FurMark.exe"
|
||||
ABS_EXECUTABLE_PATH = os.path.join(DEFAULT_FURMARK_DIR, EXECUTABLE)
|
||||
|
||||
if os.path.isfile(ABS_EXECUTABLE_PATH) is False:
|
||||
raise ValueError('No FurMark installation detected! Default installation expected to be present on the system.')
|
||||
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
log_dir = os.path.join(script_dir, "run")
|
||||
if not os.path.isdir(log_dir):
|
||||
os.mkdir(log_dir)
|
||||
logging_format = '%(asctime)s %(levelname)-s %(message)s'
|
||||
logging.basicConfig(filename=f'{log_dir}/harness.log',
|
||||
format=logging_format,
|
||||
datefmt='%m-%d %H:%M',
|
||||
level=logging.DEBUG)
|
||||
console = logging.StreamHandler()
|
||||
formatter = logging.Formatter(logging_format)
|
||||
console.setFormatter(formatter)
|
||||
logging.getLogger('').addHandler(console)
|
||||
|
||||
# omit the first arg which is the script name
|
||||
args = sys.argv[1:]
|
||||
command = f'{ABS_EXECUTABLE_PATH}'
|
||||
arg_string = ""
|
||||
for arg in args:
|
||||
arg_string += arg + ' '
|
||||
|
||||
command = command.rstrip()
|
||||
logging.info(command)
|
||||
process = Popen([command, arg_string])
|
||||
exit_code = process.wait()
|
||||
|
||||
if exit_code > 0:
|
||||
logging.error("Test failed!")
|
||||
exit(exit_code)
|
||||
|
||||
result = {
|
||||
"resolution": "",
|
||||
"graphics_preset": ""
|
||||
}
|
||||
|
||||
f = open(os.path.join(log_dir, "report.json"), "w")
|
||||
f.write(json.dumps(result))
|
||||
f.close()
|
||||
@@ -1,6 +0,0 @@
|
||||
friendly_name: "FurMark"
|
||||
executable: "furmark.py"
|
||||
process_name: "FurMark.exe"
|
||||
disable_presentmon: true
|
||||
hidden: 1
|
||||
output_dir: "run"
|
||||
Reference in New Issue
Block a user