@@ -40,12 +40,12 @@ depends:
4040
4141sources :
4242- kind : remote
43- url : nvidia:XFree86/Linux-x86_64/610.43.02 /NVIDIA-Linux-x86_64-610.43.02 .run
44- ref : 3034a054bb4cdf7752ff8dc272564cb105513804bff53538945901b16ca77463
45- filename : NVIDIA-Linux-x86_64-610.43.02 .run
43+ url : nvidia:XFree86/Linux-x86_64/610.57.04 /NVIDIA-Linux-x86_64-610.57.04 .run
44+ ref : b2e935c66b83bb00c0c857bc8e0ee0fd52de9286b40c9cc1eec29a7ce7eb116d
45+ filename : NVIDIA-Linux-x86_64-610.57.04 .run
4646
4747variables :
48- nvidia-version : ' 610.43.02 '
48+ nvidia-version : ' 610.57.04 '
4949 strip-binaries : ' '
5050
5151config :
@@ -257,6 +257,51 @@ config:
257257 fi
258258 done
259259
260+ # Per-application quirk database. libnvidia-glcore has the path
261+ # compiled in version-stamped, so it cannot be relocated.
262+ awk '$3 == "APPLICATION_PROFILE" { print $1 }' .manifest | \
263+ while read -r f; do
264+ if [ ! -f "$f" ]; then
265+ echo "ERROR: .manifest lists $f but it is not in the payload" >&2
266+ exit 1
267+ fi
268+ install -Dm644 "$f" "%{install-root}%{datadir}/nvidia/$f"
269+ done
270+ # Vacuous if the manifest stops declaring these rows, and the loss
271+ # would be silent.
272+ if [ ! -f "%{install-root}%{datadir}/nvidia/nvidia-application-profiles-%{nvidia-version}-rc" ]; then
273+ echo "ERROR: application profiles were not installed" >&2
274+ exit 1
275+ fi
276+
277+ # OptiX data blob; libnvoptix.so (OPENGL_LIB, above) fails at init
278+ # without it.
279+ if [ ! -f nvoptix.bin ]; then
280+ echo "ERROR: nvoptix.bin missing from driver payload" >&2
281+ exit 1
282+ fi
283+ install -Dm644 nvoptix.bin "%{install-root}%{datadir}/nvidia/nvoptix.bin"
284+
285+ # DLSS/frame-gen under Proton: the PE halves dxvk-nvapi loads, to
286+ # nvidia-installer's default <opengl-libdir>/nvidia/wine. The ELF
287+ # half (libnvidia-ngx.so) comes from TYPE selection above.
288+ WINEDIR="$LIBDIR/nvidia/wine"
289+ install -d "$WINEDIR"
290+ awk '$3 == "WINE_LIB" && $4 == "NATIVE" { print $1 }' .manifest | \
291+ while read -r f; do
292+ if [ ! -f "$f" ]; then
293+ echo "ERROR: .manifest lists $f but it is not in the payload" >&2
294+ exit 1
295+ fi
296+ install -Dm755 "$f" "$WINEDIR/$f"
297+ done
298+ for f in nvngx.dll _nvngx.dll; do
299+ if [ ! -f "$WINEDIR/$f" ]; then
300+ echo "ERROR: expected NGX Wine library $f was not installed" >&2
301+ exit 1
302+ fi
303+ done
304+
260305 # GSP firmware: Turing+ offloads work to a chip-internal RISC-V
261306 # core; nvidia.ko loads the firmware at probe time.
262307 if [ -d firmware ]; then
@@ -314,6 +359,26 @@ config:
314359 "$SYSTEMD_DIR/system/$(basename "$d")/nvidia-suspend-nofreeze.conf"
315360 done
316361
362+ # nvidia-powerd (Dynamic Boost) is inert without all three: unit,
363+ # D-Bus policy to own nvidia.powerd.server, and its data table.
364+ # nvidia-dbus.conf is typed DOCUMENTATION, so TYPE selection above
365+ # can never pick it up. Absent from the preset below but still
366+ # enabled: no catch-all preset rule exists, so systemd's default
367+ # policy enables anything with [Install]. That's fine - it exits 0
368+ # on hardware without Dynamic Boost, so nothing lands in failed.
369+ for f in systemd/system/nvidia-powerd.service nvidia-dbus.conf dlsnetparams.csv; do
370+ if [ ! -f "$f" ]; then
371+ echo "ERROR: $f missing from driver payload" >&2
372+ exit 1
373+ fi
374+ done
375+ install -Dm644 systemd/system/nvidia-powerd.service \
376+ "$SYSTEMD_DIR/system/nvidia-powerd.service"
377+ install -Dm644 nvidia-dbus.conf \
378+ "%{install-root}%{datadir}/dbus-1/system.d/nvidia-dbus.conf"
379+ install -Dm644 dlsnetparams.csv \
380+ "%{install-root}%{datadir}/nvidia/nvidia-powerd/dlsnetparams.csv"
381+
317382 # NVIDIA's SLA permits redistribution of the userspace libs only if
318383 # the EULA travels with them.
319384 if [ -f LICENSE ]; then
0 commit comments