-
Notifications
You must be signed in to change notification settings - Fork 135
Expand file tree
/
Copy pathchangelog.txt
More file actions
641 lines (449 loc) · 27.3 KB
/
Copy pathchangelog.txt
File metadata and controls
641 lines (449 loc) · 27.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
======== Release 2.12.0 Entries ========
* Added a new optional input buffer type `sl::kBufferTypeResponsivityMask`
to `sl.dlss_d` for biasing temporal responsivity per-pixel.
* Added Vulkan profiling marker support in `sl.common` for visualization
of SL and NGX workloads in tools such as Nsight Graphics and RenderDoc.
The host application must enable the `VK_EXT_debug_utils` instance
extension on its `VkInstance` to see SL/NGX resource names and
present-boundary markers. See section 2.5 "HOW TO PROVIDE CORRECT
DEVICE" in `ProgrammingGuide.md` for more information.
* Updated `sl.ota` to download the bundled SL SDK package as a single zip
archive instead of fetching individual plugin DLLs on a cold cache,
reducing the number of OTA fetches required at startup.
* Updated `sl.ota` to use the combined `-bootstrap`/`-update` NGX Updater
invocation on driver 565 and newer, reducing the number of NGX Updater
calls from two to one. Older drivers continue to use the separate
bootstrap-then-update path.
* Fixed a bug in `sl.dlss_g` causing excessive latency when VSync was
enabled and Frame Generation was disabled. The frame-latency waitable
object on the internal swap chain was configured but never waited on,
allowing multiple frames to accumulate in the DXGI flip queue. The
waitable is now waited on each frame with the limit set to 1 when
Frame Generation is off, eliminating the excess latency without
impacting FG-on performance.
* Fixed a bug in `sl.dlss_g` where VSync was incorrectly detected on
Vulkan swap chains.
* Fixed a bug in `sl.dlss_g` where the application's VSync `SyncInterval`
was not preserved when Frame Generation was disabled.
* Fixed a crash in `sl.dlss_g` when the OS transitioned the swap chain
out of fullscreen (for example, on monitor sleep) without invoking the
`SetFullscreenState` hook. Subsequent `Present()` calls could fail
with `DXGI_ERROR_MISCELLANEOUS` and crash the application.
* Fixed a crash in `sl.dlss_g` during window focus transitions.
* Fixed a bug in `sl.dlss_g` where Frame Generation would not activate in
`DLSSGMode::eAuto` due to an inverted internal filter check.
* Fixed a bug in `sl.dlss_g` where interpolation was not reset when an
invalid state was detected.
* Fixed a bug in `sl.dlss_g` where a D3D12 resource barrier mismatch
could occur on Frame Generation output buffers.
* Fixed a bug in `sl.dlss_g` where the `ComputeStatus` return from
`setFullscreenState()` was treated as an `HRESULT`, causing some error
codes to be silently ignored.
* Fixed a crash in `sl.interposer` when loading OTA plugins on an older
(pre-2.3.0) interposer.
* Improved logging for DRS key reads in `sl.dlss_g` and added the plugin
build configuration to startup logs to make diagnosis easier.
* Updated `sl.dlss_g` to only log the VSync clamping warning when Frame
Generation is active.
* Documented the Independent Flip (IFLIP) requirement for VSync with
Frame Generation, including guidance on diagnosing IFLIP state with
NVIDIA FrameView. See section 22.6 "IFLIP REQUIREMENT" in
`ProgrammingGuideDLSS_G.md` for more information.
======== Release 2.11.0 Entries ========
* Added support for application-controlled VSync with DLSS Frame Generation.
Applications using D3D12 can now enable VSync while using Frame Generation
for tear-free presentation with frame interpolation. Check
`sl::DLSSGState::bIsVsyncSupportAvailable` before exposing VSync controls
in the UI. See section 24.0 "VSYNC WITH FRAME GENERATION" in
`ProgrammingGuideDLSS_G.md` for more information.
* Added support for DLSS Dynamic Multi Frame Generation with a new
`sl::DLSSGOptions::dynamicTargetFrameRate` field for specifying the target
frame rate when `DLSSGMode::eDynamic` is enabled. See section 14.2 "HOW TO
CHECK FOR DYNAMIC MULTI FRAME SUPPORT" in `ProgrammingGuideDLSS_G.md` for
more information.
* Added support for DLSS Frame Generation User Interface Recomposition with
a new `sl::DLSSGOptions::enableUserInterfaceRecomposition` field. When
enabled, DLSS-G allocates a codepath that supports interpolating HUDless
and UI Color & Alpha buffers separately from the Color Backbuffer. See
section 6.6 "ENABLING USER INTERFACE RECOMPOSITION" in
`ProgrammingGuideDLSS_G.md` for more information.
* Updated `slIsFeatureSupported()` to provide more detailed error reporting
instead of always returning `sl::Result::eErrorFeatureMissing`.
* Fixed a memory leak in `sl.common` where tagged resources were not properly
released.
Reported on GitHub by @anyiscsak as issue #89
* Fixed a memory leak in `sl.nis` where viewports were not properly released
when `slFreeResources()` was called.
* Fixed a memory leak in `sl.common` where `requiredTags` were not properly
released.
* Fixed a bug in `sl.common` where D3D12 buffers were created with an
incorrect initial state. Buffers are now created in
`D3D12_RESOURCE_STATE_COMMON` instead of `D3D12_RESOURCE_STATE_COPY_DEST`.
* Fixed a bug in `sl.interposer` where OTA updates could fail if the
DriverStore path did not exist.
* Fixed a bug in `sl.dlss_g` where mode keybinds could override the Off
state.
* Fixed a bug in `sl.plugin-manager` where `mapPlugins()` used an invalidated
iterator.
* Fixed a bug in `sl.dlss_g` where swapchain null pointer handling could lead
to unexpected behavior.
* Fixed a bug in DLSS Super Resolution where a crash could occur during
feature creation when clearing the autoexposure texture on Vulkan.
* Fixed a bug in DLSS Super Resolution where Dynamic Resolution Scaling
could cause unnecessary resource reallocation when input dimensions
exceeded the creation-time dimensions.
* Fixed a bug in DLSS Super Resolution where internal state was incorrectly
shared across multiple feature instances, causing incorrect behavior.
* Fixed a bug in DLSS-FG where unnecessary copies from input to output buffer
were performed when both buffers pointed to the same resource.
* Fixed a bug in `sl.common` which could cause excessive debug log spam when
`slSetTagForFrame()` was called with DLSS-FG disabled.
* Improved `sl.common` to detect when `presentCommon()` is not being called
and log appropriate warnings. See section 2.2.2.3 "MEMORY MANAGEMENT" in
`ProgrammingGuide.md` for more information.
* Demoted zero-width/height errors from `getOptimalSettings` in `sl.dlss` and
`sl.dlss_d` to warnings.
* Updated the DLSS-FG debug visualization to include distortion offset in the
MV/Depth alignment mode.
======== Release 2.10.3 Entries ========
* Fixed a bug in `sl.dlss_g` which could lead to a crash during
transitions between frame generation states.
======== Release 2.10.0 Entries ========
* Added support for two additional DLSS Super Resolution Transformer
Models:
- `sl::DLSSPreset::ePresetL`
- `sl::DLSSPreset::ePresetM`
* Updated `sl.dlss_g` to reduce latency on high refresh rate displays
when Vertical Sync is enabled in the NVIDIA Control Panel.
* Updated `sl.interposer` to only load plugins from the OTA cache when
updated versions of all requested plugins are available.
* Fixed a memory leak in `slGetFeatureRequirements()`.
* Fixed a bug in `slIsFeatureSupported` for `sl::kFeatureDLSS_G` where
`sl::Result::eErrorOSDisabledHWS` was not returned when GPU-Accelerated
Hardware Scheduling was disabled.
* Fixed a bug in `sl.common` where stale registry key information could
cause NGX initialization to fail.
* Fixed a bug in `sl.interposer` where stale registry key information
could prevent OTA Updates from downloading.
* Fixed a memory leak in `sl.nis` when `slFreeResources()` was called.
Reported on GitHub by @CCPNobody as issue #85
* Fixed a bug in `sl.reflex` where the `VK_NV_low_latency` extension was
required on unsupported hardware.
* Fixed a bug in DLSS-SR which could cause NvApp In-Game Overlay to
incorrectly report DLSS-SR Override as "Inactive".
* Improved logging and documentation around presentation hooking. See
section 2.2.2.3 "MEMORY MANAGEMENT" in `ProgrammingGuide.md` and
section 2.0 "MANUAL HOOKING API" in `ProgrammingGuideManualHooking.md`
for more information.
* Reduced verbosity of log messages for `slSetTagForFrame()`.
Reported on GitHub by @simco50 as issue #80
* Added an `eAll` value to the following enumerations:
- `sl::DirectSRVariantFlags`
- `sl::DLSSGFlags`
- `sl::DLSSGStatus`
- `sl::FeatureRequirementFlags`
- `sl::PreferenceFlags`
* Added an `eCount` value to the following enumerations:
- `sl::DirectSROptimizationType`
- `sl::DLSSDNormalRoughnessMode`
- `sl::NvPerfMode`
======== Release 2.9.0 Entries ========
* Removed support for the following `sl::DLSSPreset` values:
- `sl::DLSSPreset::ePresetA`
- `sl::DLSSPreset::ePresetB`
- `sl::DLSSPreset::ePresetC`
- `sl::DLSSPreset::ePresetD`
- `sl::DLSSPreset::ePresetE`
* Removed support for the following `sl::DLSSDPreset` values:
- `sl::DLSSDPreset::ePresetA`
- `sl::DLSSDPreset::ePresetB`
- `sl::DLSSDPreset::ePresetC`
* Removed support for building with Visual Studio 2017.
* Updated the `sl::PreferenceFlags::eLoadDownloadedPlugins` flag to control
the loading of Optional OTA Updates. The loading of Mandatory OTA Updates
is not impacted by this flag.
* Added `slFreeResources` function to `sl.nis`. See Section 3.0 "TAG ALL
REQUIRED RESOURCES" in `ProgrammingGuideNIS.md` for more information.
* Fixed a bug in `sl.common` where the NGX allocation callbacks where
failure to allocate resources would not be properly reported back to the
caller.
* Fixed a bug in `sl.dlss` and `sl.dlss_d` where feature NGX failures during
`slEvaluate()` and `slGetData()` were not properly communicated to the
application.
* Fixed a bug in `sl.dlss` and `sl.dlss_d` which could lead to crash if the
feature was re-created while GPU work was still in-flight.
* Fixed a bug in `sl.dlss_g` where references to tagged resources would be
kept for 32 frames after their last usage.
Reported on GitHub by @simco50 as issue #66
* Fixed a bug in `sl.dlss_g` which could lead to crashes when feature
creation failed. This was most commonly found in scenarios where the
swapchain resolution was not supported.
* Fixed a bug in `sl.dlss_g` which could lead to simultaneous access of
swapchain buffers as a result of a GPU timeout during frame presentation.
* Fixed a bug in `sl.dlss_g` which resulted in high latency when Vertical
sync was enabled in the NVIDIA Control Panel.
* Fixed a bug where `sl.interposer` would incorrectly state that a
`sl::Preferences::applicationId` was required despite the application
passing in `sl::Preferences::projectId`.
* Fixed a bug in `sl.deepdvc` where `sl::FeatureVersion::versionNGX` was not set.
* Fixed a bug in `sl.imgui` where resources would be leaked on `slShutdown()`.
Reported on GitHub by @simco50 as issue #59
* Fixed a bug in `sl_core_types.h` which resulted in compilation failures on clang.
Reported on GitHub by @clshortfuse as issue #71
======== Release 2.8.0 Entries ========
* Deprecated support for the following `sl::DLSSPreset` values:
- `sl::DLSSPreset::ePresetA`
- `sl::DLSSPreset::ePresetB`
- `sl::DLSSPreset::ePresetC`
- `sl::DLSSPreset::ePresetD`
- `sl::DLSSPreset::ePresetE`
* Deprecated support for building with Visual Studio 2017.
* Fixed a bug in `sl.dlss_g` which allowed applications to pass in an
invalid `sl::DLSSGOptions::numFramesToGenerate` value of zero, resulting
in the presentation of stale frame data when DLSS-FG was enabled.
* Fixed a bug in `sl.common` which could lead to graphical corruption and
instability in when used across different threads.
* Disabled loading of plugins via OTA Updates on non-production builds.
* Improved performance of the following functions:
- `slAllocateResources()`
- `slEvaluateFeature()`
- `slFreeResources()`
- `slGetFeatureFunction()`
- `slIsFeatureLoaded()`
- `slSetConstants()`
- `slSetTag()`
- `slSetTagForFrame()`
* Added debug event markers for the following APIs:
- `slEvaluateFeature()`
- `slSetTag()`
- `slSetTagForFrame()`
* Enabled debug names in all build configurations.
* Updated the FrameView SDK installer bundled with Streamline.
* Added documentation for frame pacing behavior. See section 14.1
"UNDERSTANDING FRAME PACING BEHAVIOR" in `ProgrammingGuideDLSS_G.md` for
more information.
======== Release 2.7.32 Entries ========
* Removed the following directories from the repository. Release packages
containing these binaries can be found at:
https://github.com/NVIDIA-RTX/Streamline/releases
- `bin`
- `lib`
- `symbols`
- `utils`
* Fixed a bug in `sl.dlss_g` where a worker-thread could time out and cause
a deadlock.
* Fixed a crash in `sl.dlss_g` where the presentation fence could time out
and inadvertently result in an active GPU command buffer being overwritten.
======== Release 2.7.30 Entries ========
* Added support for `slSetTagForFrame()` which allows for frame-based
tagging of resources.
See section 2.9 of `ProgrammingGuide.md` "TAGGING RESOURCES" for more information.
* Deprecated support for `slSetTag()`. Use `slSetTagForFrame()` instead.
See section 2.9 of `ProgrammingGuide.md` "TAGGING RESOURCES" for more information.
* Added support for an additional DLSS Super Resolution Transformer Model (BETA)
Available as `sl::DLSSPreset::ePresetK`.
* Fixed a bug in `sl.dlss_g` where DLSS-G was marked as unsupported when
used with image format `VK_FORMAT_A2B10G10R10_UNORM_PACK32`.
* Fixed a race condition in `sl.dlss_g` when enabling either `sl.dlss` or
`sl.dlss_d` simultaneously, which could result in graphical corruption and
degraded performance.
* Fixed a bug in `sl.dlss_g` where calling `slFreeResources()` was called in
multi-swapchain applications would result in a crash.
* Fixed a bug in `sl.dlss_g` leading to D3D12 Validation
`RESOURCE_MANIPULATION ERROR #527 RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH`.
* Fixed a bug in `sl.dlss_g` where enabling the debug visualization would
result in a crash.
* Fixed a bug in `sl.common` which caused a memory leak in D3D11
applications.
* Added additional documentation for DLSS-SR and DLSS-RR to the `docs` directory.
======== Release 2.7.2 Entries ========
* Added support for DLSS Ray Reconstruction Transformer Model
Available as `sl::DLSSDPreset::ePresetD`.
* Deprecated support for the following `sl::DLSSDPreset` values:
- `sl::DLSSDPreset::ePresetA`
- `sl::DLSSDPreset::ePresetB`
- `sl::DLSSDPreset::ePresetC`
* Added support for DLSS Multi-Frame Generation.
See section 6.1 "ENABLING MULTI-FRAME GENERATION" in
`ProgrammingGuideDLSS_G.md` for more information.
* Added support for DLSS Super Resolution Transformer Model (BETA)
Available as `sl::DLSSPreset::ePresetJ`.
* Removed the `sl.nrd` plugin, which was deprecated in v2.4.10.
* Migrated the Reflex SDK for Vulkan applications from an externally hosted
Packman package, into Streamline SDK directly under the
`external/reflex-sdk-vk` directory.
* Added Reflex Verification Tools under the `utils/reflex` directory.
* Added a new enumeration `sl::DLSSGQueueParallelismMode` for controlling
GPU work overlap. See section 18.0 "DLSS-G INTEGRATION CHECKLIST DETAILS"
in `ProgrammingGuideDLSS_G.md` for more information.
* Added two new `sl::DLSSGState` fields:
- `inputsProcessingCompletionFence`
- `inputsProcessingCompletionFenceValue`
For guarding tagged resource use by `sl.dlssg`. See section 15.1 "HOW TO
SYNCHRONIZE THE HOST APP DLSS-G INPUTS AND STERAMLINE IF REQUIRED" in
`ProgrammingGuideDLSS_G.md` for more information.
* Added a new `sl::DLSSGOptions` field `queueParallelismMode`, see the above
changelog entry on `sl::DLSSGQueueParallelismMode` for more information.
* Added support for overriding Streamline's logging behavior via environment
variables and Windows registry keys. See the "Logging" section in
`README.md` for more information.
* Added a new helper function `getDLSSGModeAsStr()`.
* Fixed a bug where `sl.dlss` would not propagate changes to the
`sl::DLSSPreset` fields in `sl::DLSSOptions` structure.
* Fixed a bug where `sl.interposer` could attempt to add both
`VkPhysicalDeviceVulkan12Features` and `VkPhysicalDeviceVulkan13Features`
to the same pNext chain.
* Fixed a bug where `sl.interposer` would attempt to enable
`VK_EXT_buffer_device_address` simultaneously with
`VK_KHR_buffer_device_address`.
* Updated documentation `sl::kBufferTypeBidirectionalDistortionField` to
include a HLSL example of an iterative Newton-Raphson method for inverse
distortion. See section 5.0 "TAG ALL REQUIRED RESOURCES" in
`ProgrammingGuideDLSS_G.md` for more information.
======== Release 2.4.15 Entries ========
* Added support for DirectSR with a new plugin: `sl.directsr`.
See `ProgrammingGuideDirectSR.md` for more information.
* Fixed a bug in `sl.dlss_g` where the correct `sl::Resource::Type` of a VK resource was not set.
* Fixed a bug in `sl.dlss_g` which violated the following Vulkan valid usage IDs:
- `VUID-VkDescriptorImageInfo-imageView-01976`
* Fixed a bug in `sl.dlss_g` which led `vkAcquireNextImageKHR` to stall unnecessarily.
* Fixed a bug in `sl.imgui` where the native `VkQueue` was passed instead of `sl::chi::CommandQueueVk`,
resulting in a crash.
* Fixed a bug in `sl.imgui` which could cause a crash during swapchain recreation.
* Fixed a bug in `sl.dlss_g` where the fence passed to `slHookVkAcquireNextImageKHR`
was not used.
* Fixed a bug in `sl.dlss_g` where an old `VkQueue` would get used if the presenting queue
changed, resulting in a crash.
======== Release 2.4.11 Entries ========
* Fixed a bug in `sl.common` where shared `ID3D12CommandAllocator` objects were not reset,
resulting in a video memory leak.
* Fixed a bug in `sl.dlss_g` where `sl::Constants::reset` would get set for every frame.
======== Release 2.4.10 Entries ========
* Added debug names for Streamline-created Vulkan objects.
* Added `sl::Result::eWarnOutOfVRAM` to `sl::getResultAsStr()` helper
function.
Reported on GitHub by @QDanteQ as issue #38
* Improved support for depth-stencil formats when using Vulkan.
* Deprecated the `sl.nrd` plugin; this plugin will be removed in a future
release.
* Fixed a regression introduced in SL 2.4.0 where options set via calls to
`slDLSSGSetOptions()` would not persist across frames.
* Fixed a bug in `sl.common` which violated the following Vulkan valid usage IDs:
- `VUID-vkCmdCopyBuffer-srcBuffer-00118`
- `VUID-vkDestroyDevice-device-05137`
- `VUID-VkImageMemoryBarrier-newLayout-01198`
- `VUID-VkSubmitInfo-pWaitSemaphores-parameter`
* Fixed a bug in `sl.common` where descriptor sets may have been used before
being properly initialized.
Reported on GitHub by @Bizzarrus as issue #30
* Fixed a bug in `sl.common` where descriptor processing could fail on
Vulkan.
Reported on GitHub by @Bizzarrus as issue #29
* Fixed a bug in `sl.common` where calls to `getSystemCaps()` would leak
D3DKMTAdapter handles.
Reported on GitHub by @Nukem9 as issue #28
* Fixed a bug in `sl.dlssg` where unused memory would be allocated when
`sl::DLSSGFlags::eShowOnlyInterpolatedFrame` was in used.
* Fixed a bug in `sl.dlssg` which violated the following Vulkan valid usage IDs:
- `UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout`
- `UNASSIGNED-vkQueueSubmit-QueueForwardProgress`
- `VUID-vkAcquireNextImageKHR-semaphore-01779`
- `VUID-vkDestroyDevice-device-05137`
- `VUID-vkQueueSubmit-pWaitSemaphores-03238`
* Fixed a bug in `sl.imgui` which violated the following Vulkan valid usage IDs:
- `VUID-VkMappedMemoryRange-size-01389`
* Fixed a bug in `sl.interposer` which violated the following Vulkan valid
usage IDs:
- `VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383`
* Fixed a bug in `sl.nis` where it did not properly request `shaderFloat16`
feature support.
Reported on GitHub by @dzhdanNV as issue #32
* Fixed the documentation for `sl.nis` to indicate that `slNISSetOptions`
should be used to set `sl::NISOptions`.
Reported on GitHub by @Bizzarrus as issue #34
======== Release 2.4.1 Entries ========
* Fixed a bug in `sl.dlssg` where tagged
`sl::kBufferTypeBidirectionalDistortionField` extents were incorrectly
applied to `sl::kBufferTypeDepth` inputs, causing visual corruption.
======== Release 2.4.0 Entries ========
* Added support for upscaling Alpha in `sl.dlss`.
* Added support for multiple viewports in `sl.dlss_g`.
See section 5.0 "MULTIPLE VIEWPORTS" in `ProgrammingGuideDLSS_G.md` for more information.
* Added support for `VK_FORMAT_D32_SFLOAT_S8_UINT`.
* Added fullscreen menu detection in `sl.dlss_g`.
See section 6.3 "AUTOMATICALLY DISABLING DLSS-G IN MENUS" in `ProgrammingGuideDLSS_G.md` for more information.
* Added support for a new preset `sl::DLSSPreset::ePresetE`. This is now the default preset for DLSS SR.
* Deprecated the ambiguous flag `sl::ReflexOptions::useMarkersToOptimize`.
======== Release 2.3.0 Entries ========
* Added support for DeepDVC with a new plugin: `sl.deepdvc`.
See `ProgrammingGuideDeepDVC.md` for more information.
* Added a new plugin `sl.pcl` for handling the IHV-agnostic functionality
previously covered within `sl.reflex`. See `ProgrammingGuidePCL.md` and
`ProgrammingGuideReflex.md` for more information.
* Added support for specifying `sl::Extent` values which are smaller than
the backbuffer size for `sl.dlssg`. See `ProgrammingGuideDLSS_G.md` for
more information.
* Added support for the Nsight Perf SDK with a new plugin: `sl.nvperf`.
See `Debugging - Nsight-Perf-SDK GUI.md` for more information
* Added a new `sl::DLSSGFlags` enumeration value `eRetainResourcesWhenOff`
for controlling resource retention behavior on changes to `sl::DLSSGOptions::mode`.
See section 6.2 "RETAINING RESOURCES WHEN DLSS-G IS OFF" in `ProgrammingGuideDLSS_G.md`
for more information.
* Added a CMakeLists file for easier integration into projects using the
CMake build system.
* Added the Reflex Verification Tools to the repository under the `utils`
directory.
* Added a new enumeration `sl::PCLHotKey` for specifying the PC Latency
Marker hotkey. The field-type of `sl::PCLOptions::virtualKey` makes use of
this type rather than `uint16_t` that `sl::ReflexOptions::virtualKey`
used.
* Added the current thread id to log messages.
* Fixed a bug where `sl.dlssg` would occasionally deadlock when applications
switched between windows via the alt+tab keybind.
* Fixed a bug in `sl.reflex` where a workaround for the Unity engine was
checking for the incorrect `sl::PCLMarker`.
* Fixed a bug where the `sl.dlssg` debug interface could display when DLSS-G
was not enabled.
* Fixed a bug in `sl.imgui` where the `WM_GETMESSAGE` hook was leaked on plugin shutdown.
* Fixed a bug where logging would crash if the supplied message was greater
than 1024 characters in length.
* Fixed a bug where logging would crash if the supplied message was an empty
string.
* Updated `sl.nrd` to NRD version 4.3.5.
* Demoted GPU-Accelerated Hardware Scheduling related errors in `sl.dlssg`
to warnings. These cause non-fatal issues which impacted the logging
callback on machine configurations where DLSS-G was unsupported.
======== Release 2.2.1 Entries ========
* Added support for DLSS Frame Generation Dynamic Frame Generation.
See section 22.0 "Dynamic Frame Generation" in `ProgrammingGuideDLSS_G.md`
for more information.
* Added two new buffer types:
- `sl::kBufferTypeTransparencyLayer`
- `sl::kBufferTypeTransparencyLayerOpacity`
See section 4.1.10 "Transparency Overlay" in `ProgrammingGuideDLSS_RR.md`
for more information.
* Added new buffer type `sl::kBufferTypeBidirectionalDistortionField` for
post-processed distortion patterns applied to the backbuffer and
`sl::kBufferTypeUIColorAndAlpha`.
See section 5.0 "TAG ALL REQUIRED RESOURCES" in `ProgrammingGuideDLSS_G.md`
for more information.
* Added a new `sl::Constants` field `minRelativeLinearDepthObjectSeparation`
for describing the minimum depth difference between two objects in screen-space.
* Added a new structure `sl::PrecisionInfo` for specifying floating-point
precision bias for a `sl::Resource`.
See section 2.8 "TAGGING RESOURCES" in `ProgrammingGuide.md` for more
information.
* Fixed a bug where `sl.interposer.dll` would crash if plugins were located
in paths containing wide characters.
* Fixed a bug where verbose logging would not include additional information for OTA Updates.
* Updated documentation for `sl::DLSSGMode::eOff` to match current behavior.
See section 5.0 "TURN DLSS-G ON/OFF/AUTO AND PROVIDE OTHER DLSS-G OPTIONS" in
`ProgrammingGuideDLSS_G.md` for more information.
======== Release 2.2.0 Entries ========
* Added support for multiple viewports to the sl.nis plugin.
* Added a new structure `sl::SubresourceRange` for specifying Vulkan subresource range information.
* Moved SL Feature ID definitions to a central location in `sl.h`.
* Added support for DLSS Ray Reconstruction with a new plugin: `sl.dlss_d`.
* Fixed a bug where only the first 8 bytes of child-classes of `sl::StructType` would be used for comparison operators.
* Added support for DLSS Frame Generation Auto Scene Change Detection.
See section 21.0 "Auto Scene Change Detection" in `ProgrammingGuideDLSS_G.md` for more information.