Repository navigation
fix(builder): Linux keeps NVIDIA's DLSS SDK in its cache folder, and the license accepted in its settings - #2485
Merged
Conversation
…the license accepted in its settings The Linux builder kept NVIDIA's DLSS SDK (58 MB, a download) in the game's data folder (~/.local/share/hookshot/builder/ngx-sdk), and took the SDK's LICENSE.txt as the record that the player accepted NVIDIA's license. - The SDK goes to the builder's own cache folder, ~/.cache/hookshot-builder (as make_game.py's build files; Windows keeps it in %LOCALAPPDATA%\HookshotBuilder already). - The license acceptance is kept in builder.ini (nvidia_license=1). With the SDK's file as the record, an emptied cache made the next update build without DLSS and delete the game's runtime; now it downloads the SDK again. - An SDK in the old place is moved once when the builder starts, and its license recorded. Split out of NotRexed#2317 at review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Joey-Magnus
approved these changes
Nov 11, 2026
Joey-Magnus
left a comment
Contributor
There was a problem hiding this comment.
folder_has_dlss checks nvidia_license=1 in builder.ini, and builds still pass --fetch-ngx-sdk --accept-nvidia-license, so an emptied cache re-downloads the SDK and DLSS stays on. The move from the old folder is tested, including the empty-cache case. The full suite passed locally merged into main (395 passed, 0 failed); CI hasn't run here yet.
The Windows builder has the same bug: it still uses LICENSE.txt as the licence record (builder/py/hookshot_builder/window.py:1756). That could be a follow-up.
hckrman101
pushed a commit
that referenced
this pull request
Nov 11, 2026
…, so an update keeps DLSS without the SDK's files (#2528) On Windows, an update can drop DLSS from a game built with it: both builders use the DLSS SDK's `LICENSE.txt` as the record that you accepted NVIDIA's license, so if the SDK's files are gone (deleted, a new builder folder) and DLSS isn't ticked in the saved settings, the update builds without DLSS and its runtime is removed. This is the Windows side of #2485, which fixed the same for the Linux builder (pointed out in its review). ## What changed - `builder-settings.json` gets `DlssLicense`, set when the DLSS tick's license is accepted. Both builders read and keep it (the file is shared between the WPF builder and `builder/py`). - An update keeps a folder's DLSS when its runtime is there and `DlssLicense` is set, or, for a license accepted before this change, when the SDK's `LICENSE.txt` is there (as before, so nobody loses DLSS on the switch). ## Testing - `tests/builder_dlss_update_test.cs`: new cases, the record without the SDK keeps DLSS. Run here on .NET 10 (the PC has no .NET 8 packs; the fixture targets 8): 63 assertions pass, and the new case fails on `main`'s `UpdateBuild`. - `tests/test_builder_py_dlss_update.py` (new): the Python builder's update decision, taken from its source and run with stand-ins. Passes, and fails on `main`'s `update_build`. - `python -I -B tests/run_all.py` on Linux: nothing new fails (the three failures there also fail on `main`). - Not run in either builder's UI. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On Linux, an update can silently drop DLSS: the builder uses the DLSS SDK's
LICENSE.txtas its record that you accepted NVIDIA's license, so when that downloaded file is gone, the next update builds without DLSS and deletes the game's runtime. The SDK (58 MB) also sits in the game's data folder rather than the builder's own.Split out of #2317 at review.
What changed
~/.cache/hookshot-builder/ngx-sdk, besidemake_game.py's build files. Windows already keeps it in%LOCALAPPDATA%\HookshotBuilder.~/.config/hookshot/builder.ini(nvidia_license=1) when you tick DLSS.folder_has_dlss()reads that instead of the SDK'sLICENSE.txt, so an emptied cache means the SDK is downloaded again, and DLSS is kept.~/.local/share/hookshot/builder/ngx-sdk) is moved once when the builder starts, and its license is recorded.Testing
tests/test_make_game_ngx.py: the new folder, the settings record, an emptied cache keeping DLSS, the one-time move, including an SDK in both places.python -I -B tests/run_all.pyon Linux: nothing new fails (the three failures there also fail onmain).🤖 Generated with Claude Code