Tests
Suites
Latest Results
Search
Register
Login
Popular Tests
Timed Linux Kernel Compilation
Blender
7-Zip Compression
SVT-AV1
FFmpeg
Hashcat
Newest Tests
OpenVINO GenAI
Rustls
LiteRT
WarpX
Epoch
Valkey
Recently Updated Tests
srsRAN Project
VVenC
x265
RELION
Llamafile
Llama.cpp
New & Recently Updated Tests
Recently Updated Suites
Machine Learning
Server Motherboard
HPC - High Performance Computing
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
Shadow of the Tomb Raider 1.0.0
pts/shadowofthetombraider-1.0.0
- 09 November 2019 -
Initial commit
install.sh
#!/bin/bash -e # Install Shadow of the Tomb Raider on Linux and generate launcher scripts and preference templates # Base constants # export STEAM_GAME_ID=750920 export GAME_PREFS="$DEBUG_REAL_HOME/.local/share/feral-interactive/Shadow of the Tomb Raider" export GAME_INSTALL_DIR_BASE="steamapps/common/Shadow of the Tomb Raider/" 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}/ShadowOfTheTombRaider.sh" ]; then >&2 echo "Missing run script in install dir - ${GAME_INSTALL_DIR}/ShadowOfTheTombRaider.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 ShadowOfTheTombRaider | cut -d' ' -f1 ) if [ -z "$GAME_PID" ]; then echo "Could not find process ShadowOfTheTombRaider" exit 1 fi echo '#!/bin/bash' > steam-env-vars.sh echo "# Collected steam environment for Shadow of the Tomb Raider\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 ShadowOfTheTombRaider 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 # Create the game launching script # echo "Generating run script" cat > shadowofthetombraider <<- EOM #!/bin/bash # Generated run script for Shadow of the Tomb Raider # Mon Oct 28 13:46:00 PDT 2019 # Source the steam runtime environment # . steam-env-vars.sh # Clear the results dir RESULTS_DIR="${GAME_PREFS}/SaveData" if [ -d "\${RESULTS_DIR}" ]; then rm -R "\${RESULTS_DIR}" mkdir -p "\${RESULTS_DIR}" fi # Run the game # cd "${GAME_INSTALL_DIR}" ./ShadowOfTheTombRaider.sh # Grab the output (most recent xml file results line) # # NOTE: There's also a location_machine_frametimes_datetime.txt file for more detailed results cd "\${RESULTS_DIR}" true > "\$LOG_FILE" FPS_VALUES=\$(grep --text --no-filename FPS -R --include="*.txt" | head -3 | tr -d '\r' | paste -s ) echo "\${FPS_VALUES}" >> "\${LOG_FILE}" EOM chmod +x shadowofthetombraider # 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="Software"> <key name="Eidos Montreal"> <key name="Shadow of the Tomb Raider"> <value name="ChannelFormat" type="integer">0</value> <value name="FirstRun" type="integer">0</value> <value name="SteamLanguage" type="integer">0</value> <value name="TextLanguage" type="integer">0</value> <value name="VOLanguage" type="integer">0</value> <key name="Graphics"> <key name="Defaults"> <value name="AA" type="integer">@gfx_aa@</value> <value name="AmbientOcclusionQuality" type="integer">@gfx_ao@</value> <value name="Bloom" type="integer">@gfx_bloom@</value> <value name="DOFQuality" type="integer">@gfx_dof_quality@</value> <value name="Fullscreen" type="integer">1</value> <value name="FullscreenHeight" type="integer">@ScreenH@</value> <value name="FullscreenWidth" type="integer">@ScreenW@</value> <value name="LevelOfDetail" type="integer">@gfx_lod@</value> <value name="MotionBlur" type="integer">@gfx_motion_blur@</value> <value name="Preset" type="integer">@gfx_preset@</value> <value name="ScreenSpaceContactShadows" type="integer">@gfx_contact_shadows@</value> <value name="ScreenSpaceReflections" type="integer">@gfx_reflections@</value> <value name="ShadowQuality" type="integer">@gfx_shadow_quality@</value> <value name="Tessellation" type="integer">@gfx_tessellation@</value> <value name="TextureFiltering" type="integer">@gfx_tex_filter@</value> <value name="TextureQuality" type="integer">@gfx_tex_quality@</value> <value name="TressFX" type="integer">@gfx_tressfx@</value> <value name="VolumetricLighting" type="integer">@gfx_volumetric@</value> </key> </key> </key> </key> <key name="Feral Interactive"> <key name="Shadow of the Tomb Raider"> <key name="Setup"> <value name="AllowPausing" type="integer">0</value> <value name="AllowSendCrashReports" type="integer">0</value> <value name="AllowSendUsageData" type="integer">0</value> <value name="AvoidSwapInjectionDuringPGOW" type="integer">1</value> <value name="ConstrainLiveWindowResize" type="integer">1</value> <value name="DoneMinOS" type="integer">0</value> <value name="DonePromotional" type="integer">0</value> <value name="DoneUnsupported" type="integer">0</value> <value name="GameOptionsDialogShouldShow" type="integer">0</value> <value name="GameOptionsDialogShouldShowBigPicture" type="integer">0</value> <value name="GameOptionsDialogShown" type="integer">1</value> <value name="GameSelected" type="integer">0</value> <value name="IgnoreLanguageHeadings" type="integer">1</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="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="RestoreMouseOnSuspend" type="integer">1</value> <value name="RestoreResOnSuspend" type="integer">1</value> <value name="ScreenH" type="integer">0</value> <value name="ScreenW" type="integer">0</value> <value name="ShowAssertAlerts" type="integer">0</value> <value name="ShowLevelSelect" type="integer">1</value> <value name="ShowTheHideDockCheckbox" type="integer">0</value> <value name="SoftwareUpdatedAskedUser" type="integer">1</value> <value name="SoftwareUpdatedCanCheck" type="integer">1</value> <value name="SpecificationFirstLaunchCheck" type="integer">0</value> <key name="SpecificationAlerts"> <value name="DriverOrHardwareUnsupported" type="integer">1</value> <value name="LnxCPUGovernorSubOptimal" type="integer">1</value> </key> </key> </key> </key> <key name="MacDoze"> <key name="Config"> <value name="ClearSavesEnabled" type="integer">0</value> <value name="DisableClearSaveDataAlert" type="integer">0</value> <value name="ExtraCommandLine" type="string">--feral-benchmark</value> <value name="ExtraCommandLineEnabled" type="integer">1</value> </key> </key> </key> </key> </registry> EOM
interim.sh
#!/bin/bash GAME_PREFS="$DEBUG_REAL_HOME/.local/share/feral-interactive/Shadow of the Tomb Raider" # Clean out the game temp files to ensure we have a clean run rm -rf "${GAME_PREFS:?}/VFS"
post.sh
#!/bin/bash -e GAME_PREFS="$DEBUG_REAL_HOME/.local/share/feral-interactive/Shadow of the Tomb Raider" # Grab the old prefs bkp location DATETIME=$( cat /tmp/sotr-bkp-dt ) rm /tmp/sotr-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 AA=$4 # Game preferences export HOME=$DEBUG_REAL_HOME GAME_PREFS="$DEBUG_REAL_HOME/.local/share/feral-interactive/Shadow of the Tomb Raider" # Set up (and back up) the game preferences files DATETIME=$( date +%Y-%d-%m-%H-%M ) echo "$DATETIME" > /tmp/sotr-bkp-dt GAME_PREFS_BKP="${GAME_PREFS}.pts-$DATETIME-bkp" cp -r "$GAME_PREFS" "$GAME_PREFS_BKP" if [ -f "$GAME_PREFS/preferences" ]; then rm "$GAME_PREFS/preferences" fi # clear previous runs rm -rf "${GAME_PREFS}.pts*" # Set up the files to use cp "preferences.template.xml" "$GAME_PREFS/preferences" # Replace the resolutions cd "$GAME_PREFS" || exit # Replace settings with those chosen sed -i "s/@ScreenW@/$WIDTH/g" preferences sed -i "s/@ScreenH@/$HEIGHT/g" preferences sed -i "s/@gfx_aa@/$AA/g" preferences if [ $SETTING = "Lowest" ]; then sed -i "s/@gfx_ao@/0/g" preferences sed -i "s/@gfx_bloom@/0/g" preferences sed -i "s/@gfx_dof_quality@/0/g" preferences sed -i "s/@gfx_lod@/0/g" preferences sed -i "s/@gfx_motion_blur@/0/g" preferences sed -i "s/@gfx_contact_shadows@/0/g" preferences sed -i "s/@gfx_preset@/0/g" preferences sed -i "s/@gfx_reflections@/0/g" preferences sed -i "s/@gfx_shadow_quality@/0/g" preferences sed -i "s/@gfx_tessellation@/0/g" preferences sed -i "s/@gfx_tex_filter@/0/g" preferences sed -i "s/@gfx_tex_quality@/0/g" preferences sed -i "s/@gfx_tressfx@/0/g" preferences sed -i "s/@gfx_volumetric@/0/g" preferences elif [ $SETTING = "Low" ]; then sed -i "s/@gfx_ao@/0/g" preferences sed -i "s/@gfx_bloom@/1/g" preferences sed -i "s/@gfx_dof_quality@/0/g" preferences sed -i "s/@gfx_lod@/1/g" preferences sed -i "s/@gfx_motion_blur@/0/g" preferences sed -i "s/@gfx_contact_shadows@/0/g" preferences sed -i "s/@gfx_reflections@/0/g" preferences sed -i "s/@gfx_preset@/1/g" preferences sed -i "s/@gfx_shadow_quality@/1/g" preferences sed -i "s/@gfx_tessellation@/0/g" preferences sed -i "s/@gfx_tex_filter@/0/g" preferences sed -i "s/@gfx_tex_quality@/0/g" preferences sed -i "s/@gfx_tressfx@/0/g" preferences sed -i "s/@gfx_volumetric@/1/g" preferences elif [ $SETTING = "Medium" ]; then sed -i "s/@gfx_ao@/1/g" preferences sed -i "s/@gfx_bloom@/1/g" preferences sed -i "s/@gfx_dof_quality@/1/g" preferences sed -i "s/@gfx_lod@/2/g" preferences sed -i "s/@gfx_motion_blur@/1/g" preferences sed -i "s/@gfx_contact_shadows@/0/g" preferences sed -i "s/@gfx_reflections@/1/g" preferences sed -i "s/@gfx_preset@/2/g" preferences sed -i "s/@gfx_shadow_quality@/1/g" preferences sed -i "s/@gfx_tessellation@/0/g" preferences sed -i "s/@gfx_tex_filter@/1/g" preferences sed -i "s/@gfx_tex_quality@/1/g" preferences sed -i "s/@gfx_tressfx@/1/g" preferences sed -i "s/@gfx_volumetric@/1/g" preferences elif [ $SETTING = "High" ]; then sed -i "s/@gfx_ao@/1/g" preferences sed -i "s/@gfx_bloom@/1/g" preferences sed -i "s/@gfx_dof_quality@/1/g" preferences sed -i "s/@gfx_lod@/2/g" preferences sed -i "s/@gfx_motion_blur@/1/g" preferences sed -i "s/@gfx_contact_shadows@/0/g" preferences sed -i "s/@gfx_reflections@/1/g" preferences sed -i "s/@gfx_shadow_quality@/2/g" preferences sed -i "s/@gfx_preset@/3/g" preferences sed -i "s/@gfx_tessellation@/1/g" preferences sed -i "s/@gfx_tex_filter@/2/g" preferences sed -i "s/@gfx_tex_quality@/2/g" preferences sed -i "s/@gfx_tressfx@/1/g" preferences sed -i "s/@gfx_volumetric@/1/g" preferences elif [ $SETTING = "Highest" ]; then sed -i "s/@gfx_ao@/1/g" preferences sed -i "s/@gfx_bloom@/1/g" preferences sed -i "s/@gfx_dof_quality@/2/g" preferences sed -i "s/@gfx_lod@/3/g" preferences sed -i "s/@gfx_motion_blur@/1/g" preferences sed -i "s/@gfx_contact_shadows@/1/g" preferences sed -i "s/@gfx_reflections@/1/g" preferences sed -i "s/@gfx_preset@/4/g" preferences sed -i "s/@gfx_shadow_quality@/3/g" preferences sed -i "s/@gfx_tessellation@/1/g" preferences sed -i "s/@gfx_tex_filter@/3/g" preferences sed -i "s/@gfx_tex_quality@/3/g" preferences sed -i "s/@gfx_tressfx@/1/g" preferences sed -i "s/@gfx_volumetric@/1/g" preferences else echo "Failed to set graphics preset" exit 2 fi
results-definition.xml
<?xml version="1.0"?> <!--Phoronix Test Suite v9.2.0m1--> <PhoronixTestSuite> <ResultsParser> <OutputTemplate>Min FPS: #_MIN_RESULT_# Max FPS: #_MAX_RESULT_# Average FPS: #_RESULT_#</OutputTemplate> </ResultsParser> </PhoronixTestSuite>
test-definition.xml
<?xml version="1.0"?> <!--Phoronix Test Suite v9.2.0m1--> <PhoronixTestSuite> <TestInformation> <Title>Shadow of the Tomb Raider</Title> <Description>Shadow of the Tomb Raider 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. </Description> <ResultScale>Frames Per Second</ResultScale> <Proportion>HIB</Proportion> <TimesToRun>3</TimesToRun> <PreInstallMessage>This test will attempt to install the necessary game using your Steam account. If the test appears hung you may need to manually exit the Steam client.</PreInstallMessage> </TestInformation> <TestProfile> <Version>1.0.0</Version> <SupportedPlatforms>Linux</SupportedPlatforms> <SoftwareType>Game</SoftwareType> <TestType>Graphics</TestType> <License>Retail</License> <Status>Verified</Status> <SupportedArchitectures>x86_64</SupportedArchitectures> <RequiresDisplay>TRUE</RequiresDisplay> <EnvironmentSize>2</EnvironmentSize> <EstimatedTimePerRun>1080</EstimatedTimePerRun> <ProjectURL>https://store.steampowered.com/app/750920/</ProjectURL> <Maintainer>NVIDIA</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>Lowest</Name> <Value>Lowest</Value> </Entry> <Entry> <Name>Low</Name> <Value>Low</Value> </Entry> <Entry> <Name>Medium</Name> <Value>Medium</Value> </Entry> <Entry> <Name>High</Name> <Value>High</Value> </Entry> <Entry> <Name>Highest</Name> <Value>Highest</Value> </Entry> </Menu> </Option> <Option> <DisplayName>Anti Aliasing</DisplayName> <Identifier>anti-aliasing</Identifier> <Menu> <Entry> <Name>Off</Name> <Value>0</Value> </Entry> <Entry> <Name>SMAA</Name> <Value>1</Value> <Message>Subpixel Morphological AA</Message> </Entry> <Entry> <Name>TAA</Name> <Value>2</Value> <Message>Temporal AA</Message> </Entry> <Entry> <Name>SMAAT2x</Name> <Value>3</Value> <Message>Blend of SMAA and TAA</Message> </Entry> </Menu> </Option> </TestSettings> </PhoronixTestSuite>