Skip to content

Commit b998246

Browse files
Streamline SDK 2.9.0 Release
1 parent 3e78b8f commit b998246

52 files changed

Lines changed: 1197 additions & 968 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
*.dll filter=lfs diff=lfs merge=lfs -text
2-
*.png filter=lfs diff=lfs merge=lfs -text
3-
*.pdb filter=lfs diff=lfs merge=lfs -text
4-
*.pdf filter=lfs diff=lfs merge=lfs -text
5-
*.lib filter=lfs diff=lfs merge=lfs -text
6-
*.exe filter=lfs diff=lfs merge=lfs -text
1+
*.dll filter=lfs diff=lfs merge=lfs -text
2+
*.png filter=lfs diff=lfs merge=lfs -text
3+
*.pdb filter=lfs diff=lfs merge=lfs -text
4+
*.pdf filter=lfs diff=lfs merge=lfs -text
5+
*.lib filter=lfs diff=lfs merge=lfs -text
6+
*.exe filter=lfs diff=lfs merge=lfs -text
7+
*.zip filter=lfs diff=lfs merge=lfs -text

.gitignore

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
_project/
2-
_artifacts/
3-
_sdk/
4-
_public/
5-
docs/pages/*
6-
copy.bat
7-
mr.bat
8-
fb.bat
9-
.vs/
10-
**/*.aps
1+
_project/
2+
_artifacts/
3+
_sdk/
4+
_public/
5+
docs/pages/*
6+
copy.bat
7+
mr.bat
8+
fb.bat
9+
.vs/
10+
**/*.aps
1111
tools/premake5/**

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Streamline (SL) - Version 2.8.0
1+
# Streamline (SL) - Version 2.9.0
22

33
Streamline is an open-sourced cross-IHV solution that simplifies integration of the latest NVIDIA and other independent hardware vendors' super resolution technologies into applications and games. This framework allows developers to easily implement one single integration and enable multiple super-resolution technologies and other graphics effects supported by the hardware vendor.
44

@@ -8,6 +8,8 @@ For a high level overview, see the [NVIDIA Developer Streamline page](https://de
88

99
As of SL 2.0.0, it is now possible to recompile all of SL from source, with the exception of the DLSS-G plugin. The DLSS-G plugin is provided as prebuilt DLLs only. We also provide prebuilt DLLs (signed) for all other plugins that have source. Most application developers will never need to rebuild SL themselves, especially for shipping; all of the pieces needed to develop, debug and ship an application that integrates SL and its features are provided in the pre-existing directories `bin/`, `include/`, and `lib/`. Compiling from source is purely optional and likely of interest to a subset of SL application developers. For developers wishing to build SL from source, see the following sections.
1010

11+
As of SL 2.7.32, binary artifacts (DLSS feature DLLs and Streamline DLLs) are not in the GitHub repository. In order to obtain these artifacts, please download the appropriate release zip from the [GitHub releases page](https://github.com/NVIDIA-RTX/Streamline/releases).
12+
1113
------
1214

1315
## Prerequisites
@@ -20,8 +22,7 @@ As of SL 2.0.0, it is now possible to recompile all of SL from source, with the
2022

2123
- Win10 20H1 (version 2004 - 10.0.19041) or newer
2224
- Install latest graphics driver (**if using NVIDIA GPU it MUST be 512.15 or newer**)
23-
- Install VS Code or VS2017/VS2019/VS2022 with [SDK 10.0.19041+](https://go.microsoft.com/fwlink/?linkid=2120843)
24-
- NOTE: VS2017 support is deprecated and will be removed in SL 2.9
25+
- Install VS Code or VS2019+ with [SDK 10.0.19041+](https://go.microsoft.com/fwlink/?linkid=2120843)
2526
- Install "git".
2627
- Clone your fork to a local hard drive, make sure to use a NTFS drive on Windows (SL uses symbolic links)
2728

@@ -42,9 +43,9 @@ To configure a new SL tree to build, there is a script called `setup.bat`. Note
4243
Running the `setup.bat` script will cause two things to be done:
4344

4445
1. Use the NVIDIA tool `packman` to pull all build dependencies to the local machine and cache them in a shared directory. Links are created from `external` in the SL tree to this shared cache for external build dependencies.
45-
2. Run `premake` to generate the project build files in `_project\vs2017` (for Windows)
46+
2. Run `premake` to generate the project build files in `_project\vs2019` (for Windows)
4647

47-
To build the project, simply open `_project\vs2017\streamline.sln` in Visual Studio, select the desired build configuration and build, or else use the provided build script:
48+
To build the project, simply open `_project\vs2019\streamline.sln` in Visual Studio, select the desired build configuration and build, or else use the provided build script:
4849

4950
`./build.bat` with `-{debug|develop|production}` (`debug` is default) or use VS IDE and load solution from the `_project` directory
5051

build.bat

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,5 @@ if exist .\_project\vs2022\streamline.sln (
103103
) else if exist .\_project\vs2019\streamline.sln (
104104
msbuild .\_project\vs2019\streamline.sln /m /t:%bld% /property:Configuration=%cfg% /property:Platform=x64
105105
) else (
106-
echo WARNING vs2017 is deprecated and will be removed in SL 2.9
107-
msbuild .\_project\vs2017\streamline.sln /m /t:%bld% /property:Configuration=%cfg% /property:Platform=x64
106+
goto :ErrorExit
108107
)

changelog.txt

Lines changed: 66 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,64 @@
1+
======== Release 2.9.0 Entries ========
2+
3+
* Removed support for the following `sl::DLSSPreset` values:
4+
- `sl::DLSSPreset::ePresetA`
5+
- `sl::DLSSPreset::ePresetB`
6+
- `sl::DLSSPreset::ePresetC`
7+
- `sl::DLSSPreset::ePresetD`
8+
- `sl::DLSSPreset::ePresetE`
9+
10+
* Removed support for the following `sl::DLSSDPreset` values:
11+
- `sl::DLSSDPreset::ePresetA`
12+
- `sl::DLSSDPreset::ePresetB`
13+
- `sl::DLSSDPreset::ePresetC`
14+
15+
* Removed support for building with Visual Studio 2017.
16+
17+
* Updated the `sl::PreferenceFlags::eLoadDownloadedPlugins` flag to control
18+
the loading of Optional OTA Updates. The loading of Mandatory OTA Updates
19+
is not impacted by this flag.
20+
21+
* Added `slFreeResources` function to `sl.nis`. See Section 3.0 "TAG ALL
22+
REQUIRED RESOURCES" in `ProgrammingGuideNIS.md` for more information.
23+
24+
* Fixed a bug in `sl.common` where the NGX allocation callbacks where
25+
failure to allocate resources would not be properly reported back to the
26+
caller.
27+
28+
* Fixed a bug in `sl.dlss` and `sl.dlss_d` where feature NGX failures during
29+
`slEvaluate()` and `slGetData()` were not properly communicated to the
30+
application.
31+
32+
* Fixed a bug in `sl.dlss` and `sl.dlss_d` which could lead to crash if the
33+
feature was re-created while GPU work was still in-flight.
34+
35+
* Fixed a bug in `sl.dlss_g` where references to tagged resources would be
36+
kept for 32 frames after their last usage.
37+
Reported on GitHub by @simco50 as issue #66
38+
39+
* Fixed a bug in `sl.dlss_g` which could lead to crashes when feature
40+
creation failed. This was most commonly found in scenarios where the
41+
swapchain resolution was not supported.
42+
43+
* Fixed a bug in `sl.dlss_g` which could lead to simultaneous access of
44+
swapchain buffers as a result of a GPU timeout during frame presentation.
45+
46+
* Fixed a bug in `sl.dlss_g` which resulted in high latency when Vertical
47+
sync was enabled in the NVIDIA Control Panel.
48+
49+
* Fixed a bug where `sl.interposer` would incorrectly state that a
50+
`sl::Preferences::applicationId` was required despite the application
51+
passing in `sl::Preferences::projectId`.
52+
53+
* Fixed a bug in `sl.deepdvc` where `sl::FeatureVersion::versionNGX` was not set.
54+
55+
* Fixed a bug in `sl.imgui` where resources would be leaked on `slShutdown()`.
56+
Reported on GitHub by @simco50 as issue #59
57+
58+
* Fixed a bug in `sl_core_types.h` which resulted in compilation failures on clang.
59+
Reported on GitHub by @clshortfuse as issue #71
60+
61+
162
======== Release 2.8.0 Entries ========
263

364
* Deprecated support for the following `sl::DLSSPreset` values:
@@ -61,10 +122,10 @@
61122

62123
* Added support for `slSetTagForFrame()` which allows for frame-based
63124
tagging of resources.
64-
See section 2.9 of `ProgrammingGuide.md` "TAGGING RESOURCES" for more inforamtion.
125+
See section 2.9 of `ProgrammingGuide.md` "TAGGING RESOURCES" for more information.
65126

66127
* Deprecated support for `slSetTag()`. Use `slSetTagForFrame()` instead.
67-
See section 2.9 of `ProgrammingGuide.md` "TAGGING RESOURCES" for more inforamtion.
128+
See section 2.9 of `ProgrammingGuide.md` "TAGGING RESOURCES" for more information.
68129

69130
* Added support for an additional DLSS Super Resolution Transformer Model (BETA)
70131
Available as `sl::DLSSPreset::ePresetK`.
@@ -127,7 +188,7 @@
127188
`ProgrammingGuideDLSS_G.md` for more information.
128189

129190
* Added a new `sl::DLSSGOptions` field `queueParallelismMode`, see the above
130-
changelog entry on `sl::DLSSGQueueParallelismMode for more information.
191+
changelog entry on `sl::DLSSGQueueParallelismMode` for more information.
131192

132193
* Added support for overriding Streamline's logging behavior via environment
133194
variables and Windows registry keys. See the "Logging" section in
@@ -265,7 +326,7 @@
265326
======== Release 2.3.0 Entries ========
266327

267328
* Added support for DeepDVC with a new plugin: `sl.deepdvc`.
268-
See `ProgrammingGuideDeepDVC.md` for more information see.
329+
See `ProgrammingGuideDeepDVC.md` for more information.
269330

270331
* Added a new plugin `sl.pcl` for handling the IHV-agnostic functionality
271332
previously covered within `sl.reflex`. See `ProgrammingGuidePCL.md` and
@@ -340,7 +401,7 @@
340401
* Added a new `sl::Constants` field `minRelativeLinearDepthObjectSeparation`
341402
for describing the minimum depth difference between two objects in screen-space.
342403

343-
* Added a new structure `sl::PrecsisionInfo` for specifying floating-point
404+
* Added a new structure `sl::PrecisionInfo` for specifying floating-point
344405
precision bias for a `sl::Resource`.
345406
See section 2.8 "TAGGING RESOURCES" in `ProgrammingGuide.md` for more
346407
information.

docs/DLSS Programming Guide.pdf

0 Bytes
Binary file not shown.

docs/DLSS-FG Programming Guide.pdf

132 Bytes
Binary file not shown.

docs/DLSS-RR Integration Guide.pdf

0 Bytes
Binary file not shown.

docs/ProgrammingGuide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Streamline - SL
33
=======================
44

5-
Version 2.8.0
5+
Version 2.9.0
66
=======
77

88
1 SETTING UP

docs/ProgrammingGuideDLSS.md

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Streamline - DLSS
66
>The focus of this guide is on using Streamline to integrate DLSS into an application. For more information about DLSS itself, please visit the [NVIDIA Developer DLSS Page](https://developer.nvidia.com/rtx/dlss)
77
>For information on user interface considerations when using the DLSS plugin, please see the ["RTX UI Developer Guidelines.pdf"](<RTX UI Developer Guidelines.pdf>) document included with this SDK.
88
9-
Version 2.8.0
9+
Version 2.9.0
1010
=======
1111

1212
### 1.0 INITIALIZE AND SHUTDOWN
@@ -64,40 +64,40 @@ if(SL_FAILED(res, slSetD3DDevice(nativeD3DDevice)))
6464
As soon as SL is initialized, you can check if DLSS is available for the specific adapter you want to use:
6565

6666
```cpp
67-
Microsoft::WRL::ComPtr<IDXGIFactory> factory;
68-
if (SUCCEEDED(CreateDXGIFactory(__uuidof(IDXGIFactory), (void**)&factory)))
69-
{
70-
Microsoft::WRL::ComPtr<IDXGIAdapter> adapter{};
71-
uint32_t i = 0;
72-
while (factory->EnumAdapters(i, &adapter) != DXGI_ERROR_NOT_FOUND)
73-
{
74-
DXGI_ADAPTER_DESC desc{};
75-
if (SUCCEEDED(adapter->GetDesc(&desc)))
76-
{
77-
sl::AdapterInfo adapterInfo{};
78-
adapterInfo.deviceLUID = (uint8_t*)&desc.AdapterLuid;
79-
adapterInfo.deviceLUIDSizeInBytes = sizeof(LUID);
80-
if (SL_FAILED(result, slIsFeatureSupported(sl::kFeatureDLSS, adapterInfo)))
81-
{
82-
// Requested feature is not supported on the system, fallback to the default method
83-
switch (result)
84-
{
85-
case sl::Result::eErrorOSOutOfDate: // inform user to update OS
86-
case sl::Result::eErrorDriverOutOfDate: // inform user to update driver
87-
case sl::Result::eErrorNoSupportedAdapterFound: // cannot use this adapter (older or non-NVDA
88-
// GPU etc)
89-
break;
90-
// and so on ...
91-
};
92-
}
93-
else
94-
{
95-
// Feature is supported on this adapter!
96-
}
97-
}
98-
i++;
99-
}
100-
}
67+
Microsoft::WRL::ComPtr<IDXGIFactory> factory;
68+
if (SUCCEEDED(CreateDXGIFactory(__uuidof(IDXGIFactory), (void**)&factory)))
69+
{
70+
Microsoft::WRL::ComPtr<IDXGIAdapter> adapter{};
71+
uint32_t i = 0;
72+
while (factory->EnumAdapters(i, &adapter) != DXGI_ERROR_NOT_FOUND)
73+
{
74+
DXGI_ADAPTER_DESC desc{};
75+
if (SUCCEEDED(adapter->GetDesc(&desc)))
76+
{
77+
sl::AdapterInfo adapterInfo{};
78+
adapterInfo.deviceLUID = (uint8_t*)&desc.AdapterLuid;
79+
adapterInfo.deviceLUIDSizeInBytes = sizeof(LUID);
80+
if (SL_FAILED(result, slIsFeatureSupported(sl::kFeatureDLSS, adapterInfo)))
81+
{
82+
// Requested feature is not supported on the system, fallback to the default method
83+
switch (result)
84+
{
85+
case sl::Result::eErrorOSOutOfDate: // inform user to update OS
86+
case sl::Result::eErrorDriverOutOfDate: // inform user to update driver
87+
case sl::Result::eErrorNoSupportedAdapterFound: // cannot use this adapter (older or non-NVDA
88+
// GPU etc)
89+
break;
90+
// and so on ...
91+
};
92+
}
93+
else
94+
{
95+
// Feature is supported on this adapter!
96+
}
97+
}
98+
i++;
99+
}
100+
}
101101
```
102102

103103
### 3.0 CHECK DLSS SETTINGS AND SETUP VIEWPORT RENDERING SIZE

0 commit comments

Comments
 (0)