Tests
Suites
Latest Results
Search
Register
Login
Popular Tests
Timed Linux Kernel Compilation
7-Zip Compression
Blender
SVT-AV1
FFmpeg
Hashcat
Newest Tests
XNNPACK
GROMACS
Stockfish
POV-Ray
GraphicsMagick
7-Zip Compression
Recently Updated Tests
simdjson
LeelaChessZero
Mobile Neural Network
Y-Cruncher
Etcpak
Unigine Heaven
New & Recently Updated Tests
Recently Updated Suites
Machine Learning
Database Test Suite
Steam
New & Recently Updated Suites
Component Benchmarks
CPUs / Processors
GPUs / Graphics
OpenGL
Disks / Storage
Motherboards
File-Systems
Operating Systems
OpenBenchmarking.org
Corporate / Organization Info
Bug Reports / Feature Requests
Total War: WARHAMMER II 1.0.0
pts/tww2-1.0.0
- 20 November 2018 -
Initial commit.
install.sh
#!/bin/bash -e # Install Total War WARHAMMER II on Linux and generate launcher scripts and preference templates # Base constants # export STEAM_GAME_ID=594570 export GAME_PREFS="$DEBUG_REAL_HOME/.local/share/feral-interactive/Total War WARHAMMER II" export GAME_INSTALL_DIR_BASE="steamapps/common/Total War WARHAMMER II/" export DEFAULT_STEAM_INSTALL_BASE="$DEBUG_REAL_HOME/.steam/steam" # Try and install the game in case it isn't already # echo "Ensuring game is installed" HOME="$DEBUG_REAL_HOME" steam "steam://install/$STEAM_GAME_ID" # Work out the steam install directory # export CONFIG_PATH="$DEBUG_REAL_HOME/.steam/steam/config/config.vdf" echo "Searching ${CONFIG_PATH} for install directories" _INSTALL_PATHS=$( awk '/BaseInstallFolder/ { gsub(/"/, "", $2); print $2 }' "${CONFIG_PATH}" ) # Find one that contains the game while read -r STEAM_PATH; do _NEW_FULL_PATH="${STEAM_PATH}/${GAME_INSTALL_DIR_BASE}" echo "Checking for game install: ${_NEW_FULL_PATH}" if [ -d "${_NEW_FULL_PATH}" ]; then echo "Found game install: ${_NEW_FULL_PATH}" export GAME_INSTALL_DIR="${_NEW_FULL_PATH}" fi done <<< "${_INSTALL_PATHS}" # Allow the default location as well if [ ! -d "${GAME_INSTALL_DIR}" ]; then export GAME_INSTALL_DIR="${DEFAULT_STEAM_INSTALL_BASE}/${GAME_INSTALL_DIR_BASE}" echo "Using default directory for game install: ${GAME_INSTALL_DIR}" fi # Bail if we still couldn't find the game if [ ! -f "${GAME_INSTALL_DIR}/TotalWarhammer2.sh" ]; then >&2 echo "Missing run script in install dir - ${GAME_INSTALL_DIR}/TotalWarhammer2.sh" exit 1 fi # Gather the steam env variables the game runs with # echo "Gathering environment variables for game" HOME="$DEBUG_REAL_HOME" steam steam://run/$STEAM_GAME_ID & sleep 6 GAME_PID=$( pidof TotalWarhammer2 | cut -d' ' -f1 ) if [ -z "$GAME_PID" ]; then echo "Could not find process TotalWarhammer2" exit 1 fi echo '#!/bin/bash' > steam-env-vars.sh echo "# Collected steam environment for Total War: Warhammer II\n# PID : $GAME_PID" >> steam-env-vars.sh while read -rd $'\0' ENV ; do NAME=$(echo "$ENV" | cut -zd= -f1); VAL=$(echo "$ENV" | cut -zd= -f2) case $NAME in *DBUS*) true ;; *) echo "export $NAME=\"$VAL\"" ;; esac done < "/proc/$GAME_PID/environ" >> steam-env-vars.sh killall -9 TotalWarhammer2 sleep 6 if [ -z "${STEAM_ACCOUNT_ID}" ]; then pushd "${GAME_PREFS}/SaveData/" STEAM_ACCOUNT_ID="$(ls |head -1)" popd else STEAM_ACCOUNT_ID="Steam Saves (${STEAM_ACCOUNT_ID})" fi RESULTS_PREFIX="${GAME_PREFS}/SaveData/${STEAM_ACCOUNT_ID}/" # Create the game launching script # echo "Generating run script" cat > tww2.sh <<- EOM #!/bin/bash # Generated run script for Total War: WARHAMMER II # $( date ) # Source the steam runtime environment # . steam-env-vars.sh # Run the game # cd "${GAME_INSTALL_DIR}" ./TotalWarhammer2.sh # Grab the output (most recent non _frametimes txt file) RESULTS_DIR="${RESULTS_PREFIX}benchmarks/" mkdir -p "\${RESULTS_DIR}" cd "\${RESULTS_DIR}" true > "\$LOG_FILE" FPS_VALUES=\$( grep -A3 "frames per second" \$(ls -t | grep -P "benchmark_.*[0-9]+.txt" | head -n 1) | tail -n 3 ) cat benchmark_*.txt >> "\$LOG_FILE" echo "\${FPS_VALUES}" >> "\$LOG_FILE" EOM chmod +x tww2.sh # Create the template preferences file # echo "Generating settings template" cat > preferences.template.xml <<- EOM <?xml version="1.0" encoding="UTF-8"?> <registry> <key name="HKEY_CLASSES_ROOT"> </key> <key name="HKEY_CURRENT_CONFIG"> </key> <key name="HKEY_CURRENT_USER"> <key name="AutoValueRemap"> <key name="GPURemap"> <key name="keys"> <value name="Software\IndirectX\Direct3D\Config" type="integer">1</value> </key> <key name="values"> <value name="Software\Feral Interactive\Total War WARHAMMER II\Setup\FullScreen" type="integer">1</value> <value name="Software\Feral Interactive\Total War WARHAMMER II\Setup\ScreenH" type="integer">1</value> <value name="Software\Feral Interactive\Total War WARHAMMER II\Setup\ScreenW" type="integer">1</value> </key> </key> </key> <key name="Software"> <key name="Feral Interactive"> <key name="Total War WARHAMMER II"> <key name="Setup"> <!-- disable pausing --> <value name="AllowPausing" type="integer">0</value> <value name="PauseMoviesOnPause" type="integer">0</value> <value name="PauseOnSuspend" type="integer">0</value> <value name="PauseSoundOnPause" type="integer">0</value> <value name="PauseTimersOnPause" type="integer">0</value> <value name="AllowSendUsageData" type="integer">0</value> <!-- Don't show splash screen --> <value name="GameOptionsDialogLastTab" type="integer">60000</value> <value name="GameOptionsDialogShouldShow" type="integer">0</value> <value name="GameOptionsDialogShouldShowBigPicture" type="integer">0</value> <value name="GameOptionsDialogShown" type="integer">1</value> <!-- Disable Splash Screen Warnings --> <value name="SoftwareUpdatedAskedUser" type="integer">1</value> <value name="SoftwareUpdatedCanCheck" type="integer">0</value> <key name="GraphicsSettings"> <value name="advice_level" type="integer">2</value> <value name="advisor_mode" type="integer">2</value> <value name="alliance_faction_colours" type="integer">0</value> <value name="audio_api_type" type="integer">0</value> <value name="audio_mute_in_background" type="integer">1</value> <value name="audio_quality" type="integer">0</value> <value name="audio_speaker_configuration" type="integer">0</value> <value name="battle_camera_shake_enabled" type="integer">1</value> <value name="battle_defend_default" type="integer">0</value> <value name="battle_groups_locked_by_default" type="integer">0</value> <value name="battle_run_by_default" type="integer">1</value> <value name="battle_skirmish_default" type="integer">1</value> <value name="camera_move_speed" type="binary">0000000000005940</value> <value name="camera_turn_speed" type="binary">0000000000001440</value> <value name="cinematic_smoothing" type="binary">0000000000002ec0</value> <value name="default_battle_camera_type" type="integer">0</value> <value name="gfx_aa" type="integer">@gfx_aa@</value> <value name="gfx_alpha_blend" type="integer">0</value> <value name="gfx_blood_effects" type="integer">1</value> <value name="gfx_brightness_setting" type="binary">000000403333f33f</value> <value name="gfx_building_quality" type="integer">@gfx_building_quality@</value> <value name="gfx_depth_of_field" type="integer">0</value> <value name="gfx_device_type" type="integer">1</value> <value name="gfx_distortion" type="integer">1</value> <value name="gfx_effects_quality" type="integer">@gfx_effects_quality@</value> <value name="gfx_first_run" type="integer">0</value> <value name="gfx_fog" type="integer">@gfx_fog@</value> <value name="gfx_gamma_setting" type="binary">0000000000000040</value> <value name="gfx_gpu_select" type="integer">0</value> <value name="gfx_grass_quality" type="integer">@gfx_grass_quality@</value> <value name="gfx_lighting_quality" type="integer">@gfx_lighting_quality@</value> <value name="gfx_resolution_scale" type="binary">000000000000f03f</value> <value name="gfx_screen_space_reflections" type="integer">0</value> <value name="gfx_shadow_quality" type="integer">@gfx_shadow_quality@</value> <value name="gfx_sharpening" type="integer">1</value> <value name="gfx_sky_quality" type="integer">@gfx_sky_quality@</value> <value name="gfx_ssao" type="integer">@gfx_ssao@</value> <value name="gfx_terrain_quality" type="integer">@gfx_terrain_quality@</value> <value name="gfx_tesselation" type="integer">0</value> <value name="gfx_texture_filtering" type="integer">@gfx_texture_filtering@</value> <value name="gfx_texture_quality" type="integer">@gfx_texture_quality@</value> <value name="gfx_tree_quality" type="integer">@gfx_tree_quality@</value> <value name="gfx_unit_quality" type="integer">@gfx_unit_quality@</value> <value name="gfx_unit_size" type="integer">@gfx_unit_size@</value> <value name="gfx_unlimited_video_memory" type="integer">0</value> <value name="gfx_vignette" type="integer">0</value> <value name="gfx_vsync" type="integer">0</value> <value name="gfx_water_quality" type="integer">@gfx_water_quality@</value> <value name="invert_cam_x_axis" type="integer">0</value> <value name="invert_cam_y_axis" type="integer">0</value> <value name="mouse_wheel_sensitivity" type="integer">50</value> <value name="porthole_3d" type="integer">@porthole_3d@</value> <value name="proximity_fading" type="integer">1</value> <value name="scroll_transition_enabled" type="integer">1</value> <value name="show_projectile_trails" type="integer">1</value> <value name="sound_advisor_volume" type="integer">100</value> <value name="sound_master_enabled" type="integer">1</value> <value name="sound_master_volume" type="integer">100</value> <value name="sound_music_enabled" type="integer">1</value> <value name="sound_music_volume" type="integer">100</value> <value name="sound_sfx_volume" type="integer">100</value> <value name="sound_vo_enabled" type="integer">1</value> <value name="sound_vo_volume" type="integer">100</value> <value name="subtitles" type="integer">0</value> <value name="ui_colour_profile" type="integer">0</value> <value name="ui_mouse_scroll" type="integer">1</value> <value name="ui_scale" type="binary">000000000000f03f</value> <value name="ui_unit_id_scale" type="binary">0000000000000000</value> <value name="ui_unit_tooltip_expand_mode" type="integer">2</value> <value name="voice_chat_enable" type="integer">1</value> <value name="voice_chat_microphone_gain" type="integer">100</value> <value name="voice_chat_microphone_gain_boost" type="integer">1</value> <value name="voice_chat_transmit_only_when_key_pressed" type="integer">1</value> <value name="voice_chat_volume" type="integer">100</value> </key> <value name="AvoidSwapInjectionDuringPGOW" type="integer">1</value> <value name="ConstrainLiveWindowResize" type="integer">1</value> <value name="DisableMomentumScrolling" type="integer">1</value> <value name="DoneMinOS" type="integer">1</value> <value name="DonePromotional" type="integer">1</value> <value name="DoneUnsupported" type="integer">1</value> <value name="ForceSystemFullscreen" type="integer">1</value> <value name="FullScreen" type="integer">1</value> <value name="GameSelected" type="integer">0</value> <value name="LiveWindowResizePercentage" type="integer">0</value> <value name="LiveWindowResizeThreshold" type="integer">0</value> <value name="MinWindowedHeight" type="integer">0</value> <value name="MinWindowedWidth" type="integer">0</value> <value name="MissionControlDetection" type="integer">1</value> <value name="ScreenH" type="integer">@screen_height@</value> <value name="ScreenW" type="integer">@screen_width@</value> <value name="SpecificationFirstLaunchCheck" type="integer">0</value> <value name="UseDynamicShroud" type="integer">1</value> <value name="UseRestrictedWorkGroupSize" type="integer">1</value> <value name="UseSpecializedShaders" type="integer">1</value> </key> </key> </key> <key name="MacDoze"> <key name="Config"> <value name="ExtraCommandLine" type="string">game_startup_mode benchmark_auto_quit script/benchmarks/@benchmark_name@</value> <value name="ExtraCommandLineEnabled" type="integer">1</value> </key> </key> </key> </key> <key name="HKEY_LOCAL_MACHINE"> <key name="Hardware"> </key> <key name="Software"> </key> </key> <key name="HKEY_USERS"> </key> </registry> EOM
interim.sh
#!/bin/bash GAME_PREFS="$DEBUG_REAL_HOME/.local/share/feral-interactive/Total War WARHAMMER II" if [ -z "${STEAM_ACCOUNT_ID}" ]; then pushd "${GAME_PREFS}/SaveData/" STEAM_ACCOUNT_ID="$(ls |head -1)" popd else STEAM_ACCOUNT_ID="Steam Saves (${STEAM_ACCOUNT_ID})" fi RESULTS_PREFIX="${GAME_PREFS}/SaveData/${STEAM_ACCOUNT_ID}/" rm -rf "${RESULTS_PREFIX:?}"
post.sh
#!/bin/bash -e GAME_PREFS="$DEBUG_REAL_HOME/.local/share/feral-interactive/Total War WARHAMMER II" # Grab the old prefs bkp location DATETIME=$( cat /tmp/tww2-bkp-dt ) rm /tmp/tww2-bkp-dt GAME_PREFS_BKP="${GAME_PREFS}.pts-$DATETIME-bkp" # Put back our game prefs rm -rf "${GAME_PREFS:?}/" mv "$GAME_PREFS_BKP" "$GAME_PREFS"
pre.sh
#!/bin/bash -e set -o xtrace exec > /tmp/test exec 2>&1 # Input settings WIDTH=$1 HEIGHT=$2 SETTING=$3 SCENARIO=$4 # Game preferences export HOME=$DEBUG_REAL_HOME GAME_PREFS="$DEBUG_REAL_HOME/.local/share/feral-interactive/Total War WARHAMMER II" # Set up (and back up) the game preferences files DATETIME=$( date +%Y-%d-%m-%H-%M ) echo "$DATETIME" >/tmp/tww2-bkp-dt GAME_PREFS_BKP="${GAME_PREFS}.pts-$DATETIME-bkp" cp -r "$GAME_PREFS" "$GAME_PREFS_BKP" # clear previous runs rm -rf "${GAME_PREFS:?}" mkdir -p "${GAME_PREFS}" # Set up the files to use cp "preferences.template.xml" "$GAME_PREFS/preferences" # Replace the resolutions cd "$GAME_PREFS" || exit 1 # Replace settings with those chosen sed -i "s/@screen_height@/$WIDTH/g" preferences sed -i "s/@screen_width@/$HEIGHT/g" preferences # Replace benchmark scenario, use commas as delimiters since this is replacing a # path string sed -i "s,@benchmark_name@,$SCENARIO,g" preferences # Lowest if [ $SETTING -eq "0" ]; then sed -i "s/@gfx_aa@/0/g" preferences sed -i "s/@gfx_building_quality@/0/g" preferences sed -i "s/@gfx_effects_quality@/0/g" preferences sed -i "s/@gfx_grass_quality@/0/g" preferences sed -i "s/@gfx_shadow_quality@/0/g" preferences sed -i "s/@gfx_sky_quality@/0/g" preferences sed -i "s/@gfx_ssao@/0/g" preferences sed -i "s/@gfx_terrain_quality@/0/g" preferences sed -i "s/@gfx_texture_filtering@/0/g" preferences sed -i "s/@gfx_texture_quality@/2/g" preferences sed -i "s/@gfx_tree_quality@/0/g" preferences sed -i "s/@gfx_unit_quality@/0/g" preferences sed -i "s/@gfx_unit_size@/0/g" preferences sed -i "s/@gfx_water_quality@/0/g" preferences sed -i "s/@gfx_fog@/0/g" preferences sed -i "s/@gfx_lighting_quality@/0/g" preferences sed -i "s/@porthole_3d@/0/g" preferences elif [ $SETTING -eq "1" ]; then sed -i "s/@gfx_aa@/0/g" preferences sed -i "s/@gfx_building_quality@/1/g" preferences sed -i "s/@gfx_effects_quality@/1/g" preferences sed -i "s/@gfx_grass_quality@/1/g" preferences sed -i "s/@gfx_shadow_quality@/1/g" preferences sed -i "s/@gfx_sky_quality@/1/g" preferences sed -i "s/@gfx_ssao@/0/g" preferences sed -i "s/@gfx_terrain_quality@/1/g" preferences sed -i "s/@gfx_texture_filtering@/2/g" preferences sed -i "s/@gfx_texture_quality@/2/g" preferences sed -i "s/@gfx_tree_quality@/1/g" preferences sed -i "s/@gfx_unit_quality@/1/g" preferences sed -i "s/@gfx_unit_size@/1/g" preferences sed -i "s/@gfx_water_quality@/1/g" preferences sed -i "s/@gfx_fog@/0/g" preferences sed -i "s/@gfx_lighting_quality@/1/g" preferences sed -i "s/@porthole_3d@/1/g" preferences elif [ $SETTING -eq "2" ]; then sed -i "s/@gfx_aa@/0/g" preferences sed -i "s/@gfx_building_quality@/2/g" preferences sed -i "s/@gfx_effects_quality@/2/g" preferences sed -i "s/@gfx_grass_quality@/2/g" preferences sed -i "s/@gfx_shadow_quality@/2/g" preferences sed -i "s/@gfx_sky_quality@/2/g" preferences sed -i "s/@gfx_ssao@/0/g" preferences sed -i "s/@gfx_terrain_quality@/2/g" preferences sed -i "s/@gfx_texture_filtering@/3/g" preferences sed -i "s/@gfx_texture_quality@/2/g" preferences sed -i "s/@gfx_tree_quality@/2/g" preferences sed -i "s/@gfx_unit_quality@/2/g" preferences sed -i "s/@gfx_unit_size@/2/g" preferences sed -i "s/@gfx_water_quality@/2/g" preferences sed -i "s/@gfx_fog@/1/g" preferences sed -i "s/@gfx_lighting_quality@/1/g" preferences sed -i "s/@porthole_3d@/1/g" preferences elif [ $SETTING -eq "3" ]; then sed -i "s/@gfx_aa@/1/g" preferences sed -i "s/@gfx_building_quality@/3/g" preferences sed -i "s/@gfx_effects_quality@/3/g" preferences sed -i "s/@gfx_grass_quality@/3/g" preferences sed -i "s/@gfx_shadow_quality@/3/g" preferences sed -i "s/@gfx_sky_quality@/3/g" preferences sed -i "s/@gfx_ssao@/1/g" preferences sed -i "s/@gfx_terrain_quality@/3/g" preferences sed -i "s/@gfx_texture_filtering@/4/g" preferences sed -i "s/@gfx_texture_quality@/2/g" preferences sed -i "s/@gfx_tree_quality@/3/g" preferences sed -i "s/@gfx_unit_quality@/3/g" preferences sed -i "s/@gfx_unit_size@/3/g" preferences sed -i "s/@gfx_water_quality@/3/g" preferences sed -i "s/@gfx_fog@/1/g" preferences sed -i "s/@gfx_lighting_quality@/1/g" preferences sed -i "s/@porthole_3d@/1/g" preferences else echo "Failed to set graphics preset" exit 2 fi
results-definition.xml
<?xml version="1.0"?> <!--Phoronix Test Suite v8.4.0m3--> <PhoronixTestSuite> <ResultsParser> <OutputTemplate> mean #_RESULT_# min #_MIN_RESULT_# max #_MAX_RESULT_#</OutputTemplate> </ResultsParser> <ExtraData> <Identifier>csv-individual-frame-times</Identifier> </ExtraData> </PhoronixTestSuite>
test-definition.xml
<?xml version="1.0"?> <!--Phoronix Test Suite v8.4.0m3--> <PhoronixTestSuite> <TestInformation> <Title>Total War: WARHAMMER II</Title> <AppVersion>1.0</AppVersion> <Description>Total War: WARHAMMER II on Steam. The test profile assumes you have a Steam account, have Steam installed for the system, and that you own a copy of this game. This automates the process of executing the game and using its built-in benchmark mode. Backs up old preferences (in ~/.local/share/feral-interactive/) for the run. NOTES for cross-platform comparisons: TODO </Description> <ResultScale>Frames Per Second</ResultScale> <Proportion>HIB</Proportion> <Executable>tww2.sh</Executable> <TimesToRun>3</TimesToRun> </TestInformation> <TestProfile> <Version>1.0.0</Version> <SupportedPlatforms>Linux</SupportedPlatforms> <SoftwareType>Game</SoftwareType> <TestType>Graphics</TestType> <License>Retail</License> <Status>Unverified</Status> <SupportedArchitectures>x86_64</SupportedArchitectures> <ExternalDependencies>steam</ExternalDependencies> <RequiresDisplay>TRUE</RequiresDisplay> <ProjectURL>https://store.steampowered.com/app/594570/</ProjectURL> <Maintainer>Liam Middlebrook</Maintainer> </TestProfile> <TestSettings> <Option> <DisplayName>Resolution</DisplayName> <Identifier>auto-resolution</Identifier> <Menu> <Entry> <Name>$VIDEO_WIDTH x $VIDEO_HEIGHT</Name> <Value>$VIDEO_WIDTH $VIDEO_HEIGHT</Value> </Entry> </Menu> </Option> <Option> <DisplayName>Graphics Preset</DisplayName> <Identifier>graphics-preset</Identifier> <Menu> <Entry> <Name>Low</Name> </Entry> <Entry> <Name>Medium</Name> <Value>1</Value> </Entry> <Entry> <Name>High</Name> <Value>2</Value> </Entry> <Entry> <Name>Ultra</Name> <Value>3</Value> </Entry> </Menu> </Option> <Option> <DisplayName>Scenario</DisplayName> <Identifier>scenario</Identifier> <Menu> <Entry> <Name>Fallen Gates Battle</Name> <Value>fallen_gates/battle_benchmark.xml</Value> </Entry> <Entry> <Name>Skaven Battle</Name> <Value>skaven_benchmark/skaven_benchmark.xml</Value> </Entry> </Menu> </Option> </TestSettings> </PhoronixTestSuite>