Skip to content

Commit 7b7220b

Browse files
committed
Package DLSS 310.9 and Streamline 2.14 alongside the loader
1 parent e7966f6 commit 7b7220b

19 files changed

Lines changed: 390 additions & 14 deletions

‎.github/workflows/just_build_no_signature.yml‎

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,19 @@ jobs:
6868
$hotfixVersion = Get-Version-Component 'VER_HOTFIX_VERSION' '#define VER_HOTFIX_VERSION\s+'
6969
$buildVersion = Get-Version-Component 'VER_BUILD_NUMBER' '#define VER_BUILD_NUMBER\s+'
7070
71+
# Release flavour and fork tag, so the archive name matches VER_PRODUCT_VERSION_STR.
72+
# Anchoring on #define skips the #ifdef and #ifndef lines that carry the same names.
73+
$resourceLines = Get-Content $resourceFile
74+
$devRelease = $resourceLines | Select-String -Pattern '^\s*#define\s+VER_DEV_RELEASE' -Quiet
75+
$forkLine = $resourceLines | Select-String -Pattern '^\s*#define\s+VER_FORK_TAG' | Select-Object -First 1
76+
77+
$forkTag = ''
78+
if ($forkLine) { $forkTag = ($forkLine.Line -replace '.*"(.*)".*', '$1') }
79+
80+
if ($devRelease) { $suffix = "-dev" } else { $suffix = "-pre$buildVersion" }
81+
7182
# Merge into a single version string
72-
$version = "v$majorVersion.$minorVersion.$hotfixVersion-pre$buildVersion"
83+
$version = "v$majorVersion.$minorVersion.$hotfixVersion$suffix$forkTag"
7384
7485
# Get the current date in a specific format (e.g., YYYYMMDD)
7586
$date = Get-Date -Format "yyyyMMdd"
@@ -104,17 +115,46 @@ jobs:
104115
- name: Add the readme
105116
run: Copy-Item ${{ github.workspace }}\dist\README.md ${{ github.workspace }}\x64\Release\a\README.md
106117

118+
# Cut before the redistributables land, so this archive carries the loader alone.
107119
- name: Compress the artifact
108120
run: |
109121
$zipName = "${{ steps.get_version.outputs.filename }}.7z"
110122
7z a -r ${{ github.workspace }}\$zipName ${{ github.workspace }}\x64\Release\a\*.*
111123
112124
continue-on-error: false
113-
125+
114126
- uses: actions/upload-artifact@v7.0.0
115127
with:
116128
name: '${{ steps.get_version.outputs.filename }}'
117129
path: '${{ github.workspace }}\${{ steps.get_version.outputs.filename }}.7z'
118130
archive: false
119131
compression-level: 0
120132
if-no-files-found: error
133+
134+
# Streamline 2.14. A game carrying an older set stops at 2X whatever the ini asks for, and the
135+
# recovery step in the readme is to copy these over the ones it ships.
136+
- name: Add Streamline
137+
run: |
138+
$target = "${{ github.workspace }}\x64\Release\a\OptiScaler\streamline"
139+
New-Item -ItemType Directory -Force -Path $target | Out-Null
140+
Copy-Item ${{ github.workspace }}\dist\streamline\* $target
141+
142+
# DLSS 310.9 snippets. OptiScaler searches its own folder ahead of the exe folder, so these
143+
# are picked up without touching what the game ships. nvngx_dlssnr.dll is not among them.
144+
- name: Add NGX snippets
145+
run: Copy-Item ${{ github.workspace }}\dist\nvngx\* ${{ github.workspace }}\x64\Release\a\OptiScaler\
146+
147+
- name: Compress the artifact with the redistributables
148+
run: |
149+
$zipName = "${{ steps.get_version.outputs.filename }}_with_DLSS.7z"
150+
7z a -r ${{ github.workspace }}\$zipName ${{ github.workspace }}\x64\Release\a\*.*
151+
152+
continue-on-error: false
153+
154+
- uses: actions/upload-artifact@v7.0.0
155+
with:
156+
name: '${{ steps.get_version.outputs.filename }}_with_DLSS'
157+
path: '${{ github.workspace }}\${{ steps.get_version.outputs.filename }}_with_DLSS.7z'
158+
archive: false
159+
compression-level: 0
160+
if-no-files-found: error

‎.gitignore‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,11 @@ FodyWeavers.xsd
420420

421421
!external/directx_agility_sdk/lib/D3D12Core.dll
422422

423+
# Streamline 2.14 and DLSS 310.9 redistributables, packaged into the build under OptiScaler
424+
# and OptiScaler/streamline.
425+
!dist/streamline/*.dll
426+
!dist/nvngx/*.dll
427+
423428
# Fortran module files
424429
*.mod
425430
*.smod

‎dist/README.md‎

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,19 @@ Modify these to your OptiScaler.ini (read the comments, might not apply to you):
66

77
```ini
88
[NvApi]
9-
; x2~x6 MFG spacing is uneven without this (basically frame generation will feel laggy)
9+
; x2~x6 MFG spacing is uneven without this (basically frame generation will feel laggy) for 40XX cards only! (?) older cards should keep it auto?
1010
DisableFlipMetering = true
1111

12-
; ONLY IF YOURE ON LINUX? set this to true, otherwise keep to auto
12+
; only if youre on linux and noticing some weird motion pacing bug
1313
DisableReflexSync = true
1414

1515
[DLSSG]
1616
; only needed if you have a 40XX card
1717
AdaMfgUnlock = true
1818
```
1919

20+
These values should be tried and played with if things don't behave as you expect.
21+
2022
## Step 2:
2123

2224
Put all these files in your game folder (next to the actual .exe, not the launcher)
@@ -32,7 +34,17 @@ you pick is the one you override in Step 5.
3234
## Step 4:
3335

3436
You need to put the `nvngx_dlssnr.dll` file (about 158mb) in the game's folder. Make sure to use
35-
the patched version if you have a card other than a 50XX.
37+
the patched version if you have a card other than a 50XX. It is not in either package.
38+
39+
There are two downloads. The plain one is the loader by itself. The `_with_DLSS` one also carries,
40+
already in place and needing no action:
41+
42+
- `OptiScaler\nvngx_dlss.dll`, `nvngx_dlssd.dll`, `nvngx_dlssg.dll` are DLSS 310.9. OptiScaler
43+
searches its own folder ahead of the exe folder, so these are used without touching what the
44+
game ships.
45+
- `OptiScaler\streamline\sl.*.dll` are Streamline 2.14.
46+
47+
Take the plain one if the game already has newer, or you keep your own set.
3648

3749
## Step 5 (proton only)
3850

@@ -50,18 +62,19 @@ For support, contact y4my4m in Harmony's town hall (https://har.mony.lol)
5062

5163
---
5264

53-
In case of emergency:
54-
- Copy all the sl.*.dll files in OptiScaler/streamline into the base game's folder, essentially
55-
updating to streamline 2.14
56-
- Put nvngx_dlss.dll, nvngx_dlssd.dll, nvngx_dlssg.dll from DLSS 310.9 into the game's folder
65+
In case of emergency, with the files from the `_with_DLSS` package:
66+
- Copy `OptiScaler\streamline\sl.*.dll` over the set the game ships
67+
- Copy `OptiScaler\nvngx_dlss.dll`, `nvngx_dlssd.dll`, `nvngx_dlssg.dll` next to the exe
5768

58-
You shouldn't have to do this, but worth the shot if nothing else works.
69+
You shouldn't have to do this, but worth the shot if nothing else works. Keep a copy of whatever
70+
you overwrite.
5971

60-
A game that ships its own Streamline loads it from where it put it, not from the folder holding
61-
the exe. Unreal titles keep it under `Engine\Plugins\Runtime\Nvidia\Streamline\Binaries\
62-
ThirdParty\Win64`. Copy over that set, and keep a copy of the originals.
72+
The first one is the fix for a game stuck at 2X. A game that ships its own Streamline loads it
73+
from where it put it, and OptiScaler's copy does not override that. Unreal titles keep theirs
74+
under `Engine\Plugins\Runtime\Nvidia\Streamline\Binaries\ThirdParty\Win64`, which is where the
75+
files have to go, not next to the exe.
6376

64-
The overlay reports the version it found. Below Streamline 2.7.1 there is no multi frame
77+
The overlay reports the Streamline version it found. Below 2.7.1 there is no multi frame
6578
generation to unlock and the ratio stops at 2X, whatever the ini asks for.
6679

6780
---
@@ -89,6 +102,8 @@ Versions before 4 are not recorded here.
89102
instead of being read and ignored.
90103
- A reported maximum below the configured interpolation count no longer rewrites that count
91104
in the ini.
105+
- A generated frame ceiling read before nvngx_dlssg.dll loads is no longer cached. It held
106+
Ada's 1 for the session and clamped the ratio with it.
92107
- Neural Rendering on a native D3D11 upscaler names what it needs instead of waiting forever.
93108
- Per-pass Neural Rendering settings, and a pass ceiling that can be lifted.
94109

‎dist/nvngx/nvngx_dlss.dll‎

70.8 MB
Binary file not shown.

‎dist/nvngx/nvngx_dlssd.dll‎

76 MB
Binary file not shown.

‎dist/nvngx/nvngx_dlssg.dll‎

7.12 MB
Binary file not shown.

‎dist/streamline/nis.license.txt‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// The MIT License(MIT)
2+
//
3+
// Copyright(c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
4+
//
5+
// Permission is hereby granted, free of charge, to any person obtaining a copy of
6+
// this software and associated documentation files(the "Software"), to deal in
7+
// the Software without restriction, including without limitation the rights to
8+
// use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of
9+
// the Software, and to permit persons to whom the Software is furnished to do so,
10+
// subject to the following conditions :
11+
//
12+
// The above copyright notice and this permission notice shall be included in all
13+
// copies or substantial portions of the Software.
14+
//
15+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17+
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR
18+
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19+
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20+
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

0 commit comments

Comments
 (0)