diff --git a/pts/ffxiv-endwalker-1.0.0/downloads.xml b/pts/ffxiv-endwalker-1.0.0/downloads.xml new file mode 100644 index 00000000..7717397b --- /dev/null +++ b/pts/ffxiv-endwalker-1.0.0/downloads.xml @@ -0,0 +1,11 @@ + + + + + + https://download.finalfantasyxiv.com/ys8glaimvmykn88p/ffxiv-endwalker-bench.zip + ffxiv-endwalker-bench.zip + 2376241167 + + + diff --git a/pts/ffxiv-endwalker-1.0.0/install.sh b/pts/ffxiv-endwalker-1.0.0/install.sh new file mode 100644 index 00000000..add27dd2 --- /dev/null +++ b/pts/ffxiv-endwalker-1.0.0/install.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -o errexit -o pipefail -o nounset -o noclobber + +mkdir -p ffxiv-endwalker-bench +unzip ffxiv-endwalker-bench.zip -d ffxiv-endwalker-bench +rm -r ffxiv-endwalker-bench/screenshots # Prevent benchmark from automatically taking screenshots +cp "$(dirname -- "${BASH_SOURCE[0]}")/run.sh" ffxiv-endwalker +chmod +x ffxiv-endwalker +rm ffxiv-endwalker-bench.zip diff --git a/pts/ffxiv-endwalker-1.0.0/results-definition.xml b/pts/ffxiv-endwalker-1.0.0/results-definition.xml new file mode 100644 index 00000000..ab7ded5e --- /dev/null +++ b/pts/ffxiv-endwalker-1.0.0/results-definition.xml @@ -0,0 +1,14 @@ + + + + + Score + HIB + SCORE=#_RESULT_# + + + Frames Per Second + HIB + SCORE_FPSAVERAGE=#_RESULT_# + + diff --git a/pts/ffxiv-endwalker-1.0.0/run.sh b/pts/ffxiv-endwalker-1.0.0/run.sh new file mode 100755 index 00000000..ee796da3 --- /dev/null +++ b/pts/ffxiv-endwalker-1.0.0/run.sh @@ -0,0 +1,241 @@ +#!/bin/bash +set -o errexit -o pipefail -o nounset -o noclobber + +ARGS="$(getopt -o "w:h:m:q:" -n "$0" -- "$@")" +eval set -- "$ARGS" +WIDTH= HEIGHT= MODE= QUALITY= +while true; do + case "$1" in + -w) WIDTH="$2"; shift 2;; + -h) HEIGHT="$2"; shift 2;; + -m) MODE="$2"; shift 2;; + -q) QUALITY="$2"; shift 2;; + --) shift; break;; + *) echo "Internal error!" >&2; exit 1;; + esac +done + +CONFIG=("[EVN]") +CMDLINE=(SYS.Language=0 SYS.Fps=0) + +if [ -z "$WIDTH" -o -z "$HEIGHT" ]; then + echo "Missing -w or -h " >&2 + exit 1 +fi +CMDLINE+=(SYS.ScreenWidth="$WIDTH" SYS.ScreenHeight="$HEIGHT" SYS.FullScreenWidth="$WIDTH" SYS.FullScreenHeight="$HEIGHT") + +case "$MODE" in + fullscreen) CMDLINE+=(SYS.ScreenMode=1);; + windowed) CMDLINE+=(SYS.ScreenMode=0);; + borderless) CMDLINE+=(SYS.ScreenMode=2);; + *) echo "Missing -m fullscreen|windowed|borderless" >&2; exit 1;; +esac + +case "$QUALITY" in + maximum) + CONFIG+=(SPEC_DX11=0) + CMDLINE+=( + SYS.WaterWet_DX11=1 + SYS.OcclusionCulling_DX11=0 + SYS.LodType_DX11=0 + SYS.ReflectionType_DX11=3 + SYS.AntiAliasing_DX11=1 + SYS.TranslucentQuality_DX11=1 + SYS.GrassQuality_DX11=3 + SYS.ShadowLOD_DX11=0 + SYS.ShadowVisibilityTypeSelf_DX11=1 + SYS.ShadowVisibilityTypeOther_DX11=1 + SYS.ShadowTextureSizeType_DX11=2 + SYS.ShadowCascadeCountType_DX11=2 + SYS.ShadowSoftShadowType_DX11=1 + SYS.PhysicsTypeSelf_DX11=2 + SYS.PhysicsTypeOther_DX11=2 + SYS.TextureFilterQuality_DX11=2 + SYS.TextureAnisotropicQuality_DX11=2 + SYS.Vignetting_DX11=1 + SYS.RadialBlur_DX11=1 + SYS.SSAO_DX11=4 + SYS.Glare_DX11=2 + SYS.DepthOfField_DX11=1 + SYS.ParallaxOcclusion_DX11=1 + SYS.Tessellation_DX11=1 + SYS.GlareRepresentation_DX11=1 + SYS.DistortionWater_DX11=2 + ) + ;; + high-desktop) + CONFIG+=(SPEC_DX11=1) + CMDLINE+=( + SYS.WaterWet_DX11=1 + SYS.OcclusionCulling_DX11=1 + SYS.LodType_DX11=0 + SYS.ReflectionType_DX11=3 + SYS.AntiAliasing_DX11=1 + SYS.TranslucentQuality_DX11=1 + SYS.GrassQuality_DX11=3 + SYS.ShadowLOD_DX11=1 + SYS.ShadowVisibilityTypeSelf_DX11=1 + SYS.ShadowVisibilityTypeOther_DX11=1 + SYS.ShadowTextureSizeType_DX11=2 + SYS.ShadowCascadeCountType_DX11=2 + SYS.ShadowSoftShadowType_DX11=1 + SYS.PhysicsTypeSelf_DX11=2 + SYS.PhysicsTypeOther_DX11=2 + SYS.TextureFilterQuality_DX11=2 + SYS.TextureAnisotropicQuality_DX11=1 + SYS.Vignetting_DX11=1 + SYS.RadialBlur_DX11=1 + SYS.SSAO_DX11=3 + SYS.Glare_DX11=2 + SYS.DepthOfField_DX11=1 + SYS.ParallaxOcclusion_DX11=1 + SYS.Tessellation_DX11=1 + SYS.GlareRepresentation_DX11=1 + SYS.DistortionWater_DX11=2 + ) + ;; + high-laptop) + CONFIG+=(SPEC_DX11=2) + CMDLINE+=( + SYS.WaterWet_DX11=1 + SYS.OcclusionCulling_DX11=1 + SYS.LodType_DX11=1 + SYS.ReflectionType_DX11=0 + SYS.AntiAliasing_DX11=1 + SYS.TranslucentQuality_DX11=0 + SYS.GrassQuality_DX11=2 + SYS.ShadowLOD_DX11=1 + SYS.ShadowVisibilityTypeSelf_DX11=1 + SYS.ShadowVisibilityTypeOther_DX11=1 + SYS.ShadowTextureSizeType_DX11=1 + SYS.ShadowCascadeCountType_DX11=2 + SYS.ShadowSoftShadowType_DX11=1 + SYS.PhysicsTypeSelf_DX11=2 + SYS.PhysicsTypeOther_DX11=2 + SYS.TextureFilterQuality_DX11=2 + SYS.TextureAnisotropicQuality_DX11=0 + SYS.Vignetting_DX11=1 + SYS.RadialBlur_DX11=1 + SYS.SSAO_DX11=3 + SYS.Glare_DX11=2 + SYS.DepthOfField_DX11=1 + SYS.ParallaxOcclusion_DX11=1 + SYS.Tessellation_DX11=1 + SYS.GlareRepresentation_DX11=0 + SYS.DistortionWater_DX11=2 + ) + ;; + standard-desktop) + CONFIG+=(SPEC_DX11=3) + CMDLINE+=( + SYS.WaterWet_DX11=1 + SYS.OcclusionCulling_DX11=1 + SYS.LodType_DX11=1 + SYS.ReflectionType_DX11=0 + SYS.AntiAliasing_DX11=0 + SYS.TranslucentQuality_DX11=0 + SYS.GrassQuality_DX11=1 + SYS.ShadowLOD_DX11=1 + SYS.ShadowVisibilityTypeSelf_DX11=1 + SYS.ShadowVisibilityTypeOther_DX11=0 + SYS.ShadowTextureSizeType_DX11=1 + SYS.ShadowCascadeCountType_DX11=1 + SYS.ShadowSoftShadowType_DX11=0 + SYS.PhysicsTypeSelf_DX11=2 + SYS.PhysicsTypeOther_DX11=1 + SYS.TextureFilterQuality_DX11=1 + SYS.TextureAnisotropicQuality_DX11=0 + SYS.Vignetting_DX11=0 + SYS.RadialBlur_DX11=1 + SYS.SSAO_DX11=0 + SYS.Glare_DX11=2 + SYS.DepthOfField_DX11=1 + SYS.ParallaxOcclusion_DX11=0 + SYS.Tessellation_DX11=0 + SYS.GlareRepresentation_DX11=0 + SYS.DistortionWater_DX11=2 + ) + ;; + standard-laptop) + CONFIG+=(SPEC_DX11=4) + CMDLINE+=( + SYS.WaterWet_DX11=1 + SYS.OcclusionCulling_DX11=1 + SYS.LodType_DX11=1 + SYS.ReflectionType_DX11=0 + SYS.AntiAliasing_DX11=0 + SYS.TranslucentQuality_DX11=0 + SYS.GrassQuality_DX11=1 + SYS.ShadowLOD_DX11=1 + SYS.ShadowVisibilityTypeSelf_DX11=1 + SYS.ShadowVisibilityTypeOther_DX11=0 + SYS.ShadowTextureSizeType_DX11=1 + SYS.ShadowCascadeCountType_DX11=1 + SYS.ShadowSoftShadowType_DX11=0 + SYS.PhysicsTypeSelf_DX11=2 + SYS.PhysicsTypeOther_DX11=0 + SYS.TextureFilterQuality_DX11=1 + SYS.TextureAnisotropicQuality_DX11=0 + SYS.Vignetting_DX11=0 + SYS.RadialBlur_DX11=1 + SYS.SSAO_DX11=0 + SYS.Glare_DX11=2 + SYS.DepthOfField_DX11=1 + SYS.ParallaxOcclusion_DX11=0 + SYS.Tessellation_DX11=0 + SYS.GlareRepresentation_DX11=0 + SYS.DistortionWater_DX11=2 + ) + ;; + *) + echo "Missing -q maximum|high-desktop|high-laptop|standard-desktop|standard-laptop" >&2 + exit 1 + ;; +esac + +declare -A CMDLINE2CONFIG=( + [SYS.Language]=LANGUAGE + [SYS.ScreenWidth]=SCREENWIDTH_DX11 + [SYS.ScreenHeight]=SCREENHEIGHT_DX11 + [SYS.ScreenMode]=SCREENMODE_DX11 + + [SYS.WaterWet_DX11]=WaterWetness_DX11 + [SYS.OcclusionCulling_DX11]=OcclusionCulling_DX11 + [SYS.LodType_DX11]=LodType_DX11 + [SYS.ReflectionType_DX11]=ReflectionType_DX11 + [SYS.AntiAliasing_DX11]=AntiAliasing_DX11 + [SYS.TranslucentQuality_DX11]=TranslucentQuality_DX11 + [SYS.GrassQuality_DX11]=GrassQuality_DX11 + [SYS.ShadowLOD_DX11]=ShadowLOD_DX11 + [SYS.ShadowVisibilityTypeSelf_DX11]=ShadowVisibilityTypeSelf_DX11 + [SYS.ShadowVisibilityTypeOther_DX11]=ShadowVisibilityTypeOther_DX11 + [SYS.ShadowTextureSizeType_DX11]=ShadowTextureSizeType_DX11 + [SYS.ShadowCascadeCountType_DX11]=ShadowCascadeCountType_DX11 + [SYS.ShadowSoftShadowType_DX11]=ShadowSoftShadowType_DX11 + [SYS.PhysicsTypeSelf_DX11]=PhysicsTypeSelf_DX11 + [SYS.PhysicsTypeOther_DX11]=PhysicsTypeOther_DX11 + [SYS.TextureFilterQuality_DX11]=TextureFilterQuality_DX11 + [SYS.TextureAnisotropicQuality_DX11]=TextureAnisotropicQuality_DX11 + [SYS.Vignetting_DX11]=Vignetting_DX11 + [SYS.RadialBlur_DX11]=RadialBlur_DX11 + [SYS.SSAO_DX11]=SSAO_DX11 + [SYS.Glare_DX11]=Glare_DX11 + [SYS.DepthOfField_DX11]=DepthOfField_DX11 + [SYS.ParallaxOcclusion_DX11]=Parallax_DX11 + [SYS.Tessellation_DX11]=WaterTess_DX11 + [SYS.GlareRepresentation_DX11]=GlareRepresentation_DX11 + [SYS.DistortionWater_DX11]=DistortionWater_DX11 +) +for ARG in "${CMDLINE[@]}"; do + KEY="${ARG%%=*}" + VALUE="${ARG#*=}" + if [[ -v "CMDLINE2CONFIG[$KEY]" ]]; then + CONFIG+=("${CMDLINE2CONFIG[$KEY]}=$VALUE") + fi +done + +cd ffxiv-endwalker-bench +rm -f ffxivbenchmarklauncher.ini +(IFS=$'\n'; echo "${CONFIG[*]}" > ffxivbenchmarklauncher.ini) +${USE_WINE:-} game/ffxiv_dx11.exe "${CMDLINE[@]}" "$@" +grep -E "SCORE(_FPSAVERAGE)?=" ffxivbenchmarklauncher.ini > "$LOG_FILE" diff --git a/pts/ffxiv-endwalker-1.0.0/test-definition.xml b/pts/ffxiv-endwalker-1.0.0/test-definition.xml new file mode 100644 index 00000000..9c5fa920 --- /dev/null +++ b/pts/ffxiv-endwalker-1.0.0/test-definition.xml @@ -0,0 +1,84 @@ + + + + + FFXIV Endwalker Benchmark + 1.0 + + This test calculates the score from the FFXIV Endwalker Benchmark, released in 2021. + + Technically a Windows-only benchmark, but also runs at near-native performance under Linux with wine+dxvk (e.g., with the USE_WINE config) + Score + HIB + 3 + + + 1.0.0 + Windows + Game + Graphics + Non-Free + Verified + x86_64 + TRUE + 5100 + https://jp.finalfantasyxiv.com/benchmark/download/ + Michael Larabel + + + + + + +