release: install.sh downloads DLSS RR 310.9.1 and builds the engine's models

A fresh extract plus bash install.sh builds all 9 models in about a minute, and they run in the shim.
Engine-vs-CUDA path: K 67 dB, M/L 45-50 dB, RR D/E/F 43/46/37 dB.
This commit is contained in:
woutermans committed 2026-10-14 20:10:17 +02:00
1 parent 11a3511120
commit d1559ca5fa
7 files changed
+361 -70

No files matched your search

+3 -1
View File
@@ -23,6 +23,8 @@ from pathlib import Path, PurePosixPath
# Files the native engine's tools write from NVIDIA's DLSS (engine/README.md); NOTICE names them.
MODEL_DATA = {'weights.bin', 'offsets.bin', 'lut.bin', 'hipnet.bin', 'model.json'}
# ... and the M / L and Ray Reconstruction models' (engine/compile_m.py, compile_rr.py, compile_rr2.py)
MODEL_DATA_PATTERNS = ('weights8.bin', 'weights16.bin', 'weights-*.bin', '*.args', 'enc0-aux.bin', '*.generated.*')
# Compiled or extracted NVIDIA GPU code.
NVIDIA_CODE_SUFFIXES = {'.ptx', '.cubin', '.fatbin', '.nvngx'}
# Kernels kernels/build.sh builds from NVIDIA's PTX (tex/l families and the PTX-translated hiluma kernels).
@@ -62,7 +64,7 @@ def findings_for(path, read, release=None):
suffix = PurePosixPath(lower).suffix
full = release == 'full'
problems = []
if lower in MODEL_DATA:
if lower in MODEL_DATA or any(fnmatch.fnmatch(lower, pattern) for pattern in MODEL_DATA_PATTERNS):
problems.append('engine model data read from NVIDIA\'s DLSS')
if suffix in NVIDIA_CODE_SUFFIXES:
problems.append('NVIDIA GPU code')
+2
View File
@@ -140,6 +140,8 @@ if [[ "$VARIANT" != clean ]]; then
[[ "$INSTALL_MODE" != asi ]] || installer_dir="$STAGE/d4r"
cp "$ROOT/install.sh" "$installer_dir/install.sh"
chmod +x "$installer_dir/install.sh"
# install.sh builds the engine's models from the downloaded DLLs (D4R_GLSLANG, D4R_GLSLANG_LICENSE)
"$ROOT/scripts/stage_engine_kit.sh" "$STAGE/d4r"
# The downloader is pinned to DLSS 310.7.0: refuse mismatched release inputs.
expected=$(sed -n "s/^DLSS_SHA256=//p" "$ROOT/install.sh")
[[ "$(sha256sum "$D4R_BUNDLE_DLSS" | cut -d' ' -f1)" == "$expected" ]] || {
+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env bash
# Puts the engine-model builder into a release's d4r folder: d4r/tools/build-engine-models.sh (install.sh runs it)
# and d4r/tools/models/ with d4r's model compilers and shader sources, the D3D12 test app and glslangValidator.
# Only d4r's own code and Khronos' glslang go in; the models are built on the user's machine from their DLLs.
#
# usage: scripts/stage_engine_kit.sh D4R_FOLDER
# D4R_GLSLANG glslang release archive or extracted folder (bin/glslangValidator; Khronos 16.6.0 tested)
# D4R_GLSLANG_LICENSE its LICENSE.txt (the release archives have none; the tag's LICENSE.txt in KhronosGroup/glslang)
# D4R_HARNESS_EXE the D3D12 test app (default build/d3d12_dlss_harness.exe, scripts/build_d3d12_dlss_harness.sh)
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
D4R="$(realpath "${1:?usage: stage_engine_kit.sh D4R_FOLDER}")"
: "${D4R_GLSLANG:?set D4R_GLSLANG to a glslang release (glslang-16.6.0-linux-x86_64-release.tar.gz)}"
: "${D4R_GLSLANG_LICENSE:?set D4R_GLSLANG_LICENSE to the LICENSE.txt of glslang}"
HARNESS="${D4R_HARNESS_EXE:-$ROOT/build/d3d12_dlss_harness.exe}"
[[ -f "$HARNESS" ]] || { echo "missing $HARNESS (scripts/build_d3d12_dlss_harness.sh)" >&2; exit 2; }
KIT="$D4R/tools/models"
rm -rf "$KIT"
mkdir -p "$KIT/bin" "$KIT/engine/rr" "$KIT/kernels/tools" "$KIT/kernels/rr" "$KIT/vulkan" "$D4R/licenses"
copy() { # copy SRC_DIR DST_DIR PATTERN...: never tests
local src=$1 dst=$2 pat f
shift 2
for pat in "$@"; do
for f in "$ROOT/$src"/$pat; do
[[ -f "$f" ]] || continue
case "$(basename "$f")" in test_*) continue ;; esac
cp "$f" "$dst/"
done
done
}
copy engine "$KIT/engine" '*.py' '*.comp' '*.glsl'
copy engine/rr "$KIT/engine/rr" '*.py' '*.comp' '*.glsl' '*.txt' '*.npy' '*.sh'
copy kernels/tools "$KIT/kernels/tools" '*.py'
copy kernels/rr "$KIT/kernels/rr" '*.py'
copy vulkan "$KIT/vulkan" '*.py' # ptx2glsl.py: engine/rr/ptx2rr.py builds on it
# the model compilers import these test modules' packing helpers
cp "$ROOT/engine/test_k.py" "$ROOT/engine/test_m.py" "$KIT/engine/"
cp "$ROOT/engine/rr/test_layer.py" "$KIT/engine/rr/"
cp "$HARNESS" "$KIT/bin/d3d12_dlss_harness.exe"
TMP="$(mktemp -d)"; trap 'rm -rf "$TMP"' EXIT
GL="$D4R_GLSLANG"
if [[ -f "$GL" ]]; then
case "$GL" in *.zip) unzip -q "$GL" -d "$TMP" ;; *) tar xf "$GL" -C "$TMP" ;; esac
GL="$TMP"
fi
cp "$GL/bin/glslangValidator" "$KIT/bin/glslangValidator"
chmod +x "$KIT/bin/glslangValidator"
cp "$D4R_GLSLANG_LICENSE" "$D4R/licenses/glslang-LICENSE.txt"
cp "$ROOT/packaging/build_engine_models.sh" "$D4R/tools/build-engine-models.sh"
chmod +x "$D4R/tools/build-engine-models.sh"
printf 'Staged the engine-model builder in %s (%s)\n' "$D4R/tools" "$(du -sh "$D4R/tools" | cut -f1)"