forked from SpecialKO/SpecialK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
11143 lines (8552 loc) · 405 KB
/
CHANGELOG.txt
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
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
24.9.28.4
=========
+ Fixed macros and keybinds occasionally activating while a game window
does not have input focus if the game uses a (Low-Level) Keyboard Hook.
+ Command console blocks keybinds while it has text input focus, as expected
+ Auto-start PresentMon worker thread if AutoVRR is set to re-optimize and
has triggered once, or set to enabled and has not yet triggered.
* This allows SK to auto-optimize the framerate limiter without the users
having to first open the control panel or display the current FPS.
24.9.28.3
=========
+ Added option to disable Metaphor plug-in for testing
AllowDxDiagn={true|false} Default=true (enabled)
+ Reworked DXGI factory initialization when async init is disabled.
+ Disabled window style hooks (GetWindowLong[Ptr]{A|W})
24.9.28.2
=========
+ Automatically set Linear EOTF when enabling HDR in Blt Model sRGB games
+ Add framerate smoothing mechanism to Metaphor scheduling fix
24.9.28.1
=========
+ Add hook on SetProcessAffinityMask (...) to ensure games do not override
any user-requested overrides.
24.9.28
=======
+ Overhauled input management for keybinds to better handle games with
child/sibling windows (such as Metaphor's stupid exit confirmation)
+ Add hook on msvcp140.dll!_Thrd_sleep (...) because it may call directly
into kernelbase.dll!SleepEx (...) instead of kernel32.dll.
+ Re-enable HID in Metaphor because it is required on SteamOS for gamepads.
24.9.27.1
=========
+ Further optimize Metaphor; no more periodic stutter.
+ Set PerformanceCoresOnly=false by default for all games except Metaphor.
24.9.27
=======
+ Use 10-bpc for sRGB bypass when upgrading games to Flip Model in SDR mode.
+ Add Alt+F4 bypass for Metaphor
(Uncheck "Enable Alt+F4" to remove SK's confirmation dialog)
+ Disable Fullscreen Exclusive in Metaphor
+ Disable XInput slots 1,2,3 in Metaphor
+ Enable XInput emulation by default in Metaphor
+ Add thread scheduling fixes for Metaphor
* For proper performance, make sure to set the game's framerate limiter to
"Uncapped" and enable Special K's.
+ Added INI option to run games on Intel Performance Cores only
[Scheduler.System]
PerformanceCoresOnly={true|false} Default=true
This will limit the entire game to running only on P-cores, it is enabled
by default and applies on top of any affinity mask overrides you set, or
affinity mask overrides set by external applications.
24.9.25.7
=========
+ Fixed forced 10-bpc being applied to AMD's Vulkan interop; it is a compat.
hack for NVIDIA's interop-only and does not work on AMD's driver.
+ Do not list XInput slot# for UI controller in the Input Management section
of the control panel when only a PlayStation controller is attached.
+ Revert back to asynchronous initialization by default for Streamline games,
unless the new AllowFakeStreamline setting is set to false.
+ Force AllowFakeStreamline OFF in Ratchet & Clank
+ Added crash_handler.exe to internal injection blacklist
+ Added up to 100 ms spin if D3D11 hooks initialize before DXGI capabilities
have been determined (i.e. flip model); if initialization times out, we
will assume that Flip Model and Tearing are both supported.
24.9.25.6
=========
+ Added option to disable strict Streamline compatibility, because it
is not compatible with various DLSS3->FSR3 mods that do not implement
all of Streamline.
[Compatibility.General]
AllowFakeStreamline={true|false} Default=true
This may hurt stability in games that use real Streamline, but it is
unlikely the myriad of mods pretending to be Streamline will be made
more compatible any time soon.
24.9.25.5
=========
+ Added LOD Bias and Anisotropic Filtering options to the D3D12 control panel
24.9.25.4
=========
+ Added INI option to force a Mipmap LOD bias in D3D12 games
[Render.D3D12]
ForceLODBias=[-32.0,32.0] Default=0.0 (Unchanged)
>> An LOD Bias of 0.0 is technically valid, but using this INI, it cannot
be set... consider using -0.000001 if you want to force all LOD Bias
in a game to 0.0 for some reason.
* Be very conservative with this setting unless you are deliberately
trying to radically alter the image (lol)
(i.e. single color flat texturing if a very large positive bias is used)
- Negative biases increase sharpening and shimmering in texture filtering,
the most likely use-case for a user to override them would be applying
a small negative LOD bias to sharpen textures when using DLSS/FSR.
24.9.25.3
=========
+ Check D3D12_FEATURE_DATA_D3D12_OPTIONS19::AnisoFilterWithPointMipSupported
at runtime before attempting to upgrade bilinear texture filters to
anisotropic min/mag + point mip filter.
>> This requires newer drivers and is a Vulkan interop-centric feature;
if not supported by the driver, bilinear will be upgraded to trilinear
when forcing anisotropic filtering on.
24.9.25.2
=========
+ Add workaround for implicit AMD OpenGL/DXGI Interop so that OpenGL-IK
will always work without interference from AMD's D3D12 SwapChain.
24.9.25.1
=========
+ Added warning dialog with info on SKinny (a new support DLL for SK) when
attempting to use Global Injection in certain Streamline games.
* Currently, Horizon: Forbidden West and Forza Horizon 5
24.9.25
=======
+ Remove part of SK's libScePad integration now that SK can poll PlayStation
controllers directly using their USB HID communication protocol.
>> This fixes weird gamepad behavior in SK's control panel from polling
PlayStation controllers twice in games that use libScePad.
24.9.24.3
=========
+ Fixed God of War: Ragnarok's fullscreen mode without having to force
borderless on by default.
+ Fixed potential problem with Special K's global injection DLLs becoming
stuck in "immersive" process (UWP) due to terminating the teardown listener
thread early.
24.9.24.2
=========
+ Force AlwaysOnTop off in God of War: Ragnarok to prevent crashes
+ Remove option to disable redirection bitmaps on Flip Model SwapChains
because this is not compatible with DXVK
24.9.24.1
=========
+ Fixed God of War: Ragnarok SwapChain re-creation failing due to incompatible
window styles
+ Forced Borderless on by default in God of War: Ragnarok
+ Added additional validation to prevent executing D3D12 command lists on the
wrong command queue when FSR3 and Streamline are used in a game
24.9.24
=======
+ Added options to force anisotropic level and upgrade standard bilinear or
trilinear texture filtering to anisotropic in D3D12 games.
[Render.D3D12]
MaxAnisotropy=[1,16] Default: -1 (No Preference)
ForceAnisotropic={true|false} Default: false
24.9.23
=======
+ Remove WS_EX_TOPMOST style on windows with otherwise DXGI incompatible
window styles when calling CreateSwapChain[ForHwnd] (...) to fix an
obscure problem with Streamline.
+ Fixed games using DirectStorage queues too large for the API to support
+ Window management improvements for Final Fantasy XVI
24.9.20.1
=========
+ Fixed incorrect display topology caching caused by hashing VBlank statistics
as part of SK_RenderBackend_V2::output_s's invariant data.
+ Reworked Streamline initialization for games that load sl.interposer.dll
but have not loaded any plug-ins yet when SK is injected.
24.9.20
=======
+ Add hook on sl.interposer.dll slInit (...) in order to override various
Streamline configuration for enhanced compatibility with third-party
overlays that do not have any Streamline compatibility measures.
+ Change Streamline initialization, when possible, to use DXGI Factory Proxy
instead of vftable hooks to help fpsmon and other overlays not crash.
+ Disable attempts by a game to divert or silence Streamline debug output.
24.9.19.5
=========
+ Fixed DLSS control panel not appearing in D3D11 games
24.9.19.4
=========
+ Set DontHookWndProc=true by default in FFXVI to deal with the splash screen
24.9.19.3
=========
+ Handle Final Fantasy XVI's NVIDIA Streamline Interposer trying to
create a new SwapChain while the game is exiting and has no window
to create a SwapChain on in the first place... wtf?!
+ Make sure all HDR metadata API calls bypass NVIDIA Streamline's fake
interposer SwapChain and are directed to the real SwapChain with a
real display attached.
24.9.19.2
=========
+ Added aggressive anti-stutter mode to FFXVI; trades increased idle
CPU load for decreased traversal stutter.
24.9.19.1
=========
+ Added auto-loading of .asi files from a game's directory or from
any subdirectory of Special K's Profiles\<Game Name> directory.
* This makes SK an automatic ASI loader and eliminates the need
for third-party software to use ASI mods such as FFXVIFix.
> Just drop your .asi file(s) into the appropriate directory and go!
( Feature is disabled-by-default in most games, but can be opted-in )
To opt-in per-game, or globally (Global\default_SpecialK.ini), set:
[SpecialK.System]
AutoLoadASIFiles=true
+ Added an internal blacklist of third-party overlays that cannot be used
in NVIDIA Streamline games because they will crash frame generation.
* These are nothing to do with Special K itself, but blocking them puts
an end to really cryptic errors from the overlays being blamed on SK.
Currently only one overlay is known to be 100% incompatible and blocked:
- fpsmon-64.dll
This overlay creates useless "Operation Completed Successfully" error
dialogs and then proceeds to b0rk the game.
When the developer goes through the hell that is making their overlay
compatible with NVIDIA Streamline and DLSS3 Frame Generation, the
software will be removed from the blocklist.
+ Tweaked DirectStorage queue lengths in Final Fantasy XVI
24.9.19
=======
+ Added protection against SteamAPI's internal exceptions being caught by
NVIDIA Streamline's Interposer DLL and triggering NVIDIA's stupid
any exception detected ==> minidump crap built-in to DLSS3.
* Calling SteamAPI functions from overlay code is UNSAFE thanks to NVIDIA
and their non-defeatable and ill-advised exception handler built-in to
Streamline.
Streamline catches exceptions that ARE handled by the software, or are
continuable, and turns harmless exceptions into full crashes (gah!!).
sl.interposer.dll is pure evil when officially compiled by NVIDIA using
the release build configuration.
@ NVIDIA get that crap out of there please, and remove the codesigned DLL
DRM so users can at least bypass your boobytrap without losing DLSS3.
24.9.18.6
=========
+ Added sensible limits to DirectStorage thread count sliders
+ Reduced the DirectStorage queue length in FFXVI to reduce stutter
24.9.18.5
=========
+ Added experimental DirectStorage Submit Thread and CPU Decompression Thread
count overrides to Final Fantasy XVI.
>> Default Submit Threads are 1; increasing may reduce load time and stutter.
* Experiment with conservatively, high thread count has been known to crash.
* CPU decomp threads are unlikely to help unless GPU decomp is disabled.
24.9.18.4
=========
+ Fixed potential "Steam is Offline" errors in Final Fantasy XVI for some users
24.9.18.3
=========
+ Fixed edge-case where DLSS3 Frame Generation is active on a VRR display, but
SK was not disabling tearing while the game has VSYNC turned off.
24.9.18.2
=========
+ Baldur's Gate 3 has native DualSense support now, but lacks DualSense Edge
support, so SK is configured to identify DualSense Edge controllers as
DualSense to make them work natively in Baldur's Gate 3.
24.9.18.1
=========
+ Adjusted SEH Exception logging code for compatibility with GOG Galaxy API
24.9.18
=======
+ Use Flip Sequential by default if a game is already Flip Model and uses
Sequential, or if upgrading a Blt Sequential game to Flip Model, or
if ReShade is loaded.
>> This helps screenshot compatibility in games when using ReShade.
24.9.17.5
=========
+ Enable "Fake Fullscreen" by default in FFXVI to make HDR less of a nuisance
24.9.17.4
=========
+ Patched out graphics debugger check from Final Fantasy XVI Retail
24.9.17.3
=========
+ Hotfix for DirectStorage instability in Final Fantasy XVI
24.9.17.2
=========
+ Hotfix for VBlank counting thread running while a game has destroyed and
is re-creating a SwapChain.
24.9.17.1
=========
+ Add RAM warning if used system RAM reaches >= 98% while a game is running
+ Added command console variable to control DXGI Budget Scale (see 24.9.10)
DXGI.VRAMBudgetScale (Range: 0.1 - 5.0)
[ Press Ctrl+Shift+Tab to Open/Close the Command Console ]
* Some games will respond in real-time to changes to this.
* Changes made from the command console are saved to SK's per-game INI.
This allows tweaking over- or under-reporting of available VRAM to get a
game to load in higher detail assets or evict memory to reduce stutter.
DXGI Budget tracking is used mostly in D3D12 or very advanced D3D11 games;
Nixxes games have a weird Dedicated VRAM => Shared Mem offload system that
can make tuning this worthwhile on cards with low VRAM (i.e. RTX 3070).
-> Using a scale slightly above 1.0 will cause Nixxes ports to keep more
in VRAM and page textures in/out of system memory less often.
24.9.17
=======
+ Disable tearing when using a VRR screen w/ DLSS3 Frame Generation,
so that FG can use G-Sync instead of ... randomly tear :)
24.9.16.2
=========
+ Improved precision of real-time VRR refresh rate calculation
+ Restored the gray bars of "animation error" (as PresentMon calls it)
to users with drivers that support HW GPU Scheduling + HW Flip Queue
24.9.16.1
=========
+ Added explicit DwmFlush (...) on a dedicated thread to sample DXGI's
VBLANK timing information so that it doesn't wobble on drivers that
support HW Flip Queue.
+ Added CPU affinity INI option
[Scheduler.System]
ProcessorAffinityMask=[1,0xFFFFFFFFFFFFFFFF] Default=0xFFFFFFFFFFFFFFFF
This is a bitmask, so map out the processor numbers you want in binary
and then convert to decimal.
(i.e. ProcessorAffinityMask=1365 -> 10101010101 (6 physical cores))
24.9.16
=======
+ Reduced overhead and added smoothing to real-time VRR Rate calculation
* Uses DXGI Present Statistics when available instead of NVIDIA's VBLANK
counter. This should translate over to AMD and Intel GPUs in the future.
24.9.15
========
+ Added Cutscene FPS unlock options for Final Fantasy XVI
24.9.14
=======
+ Fallback to DLL / EXE ProductName / ProductVersion for version info if
FileDescription / FileVersion is not available (i.e. Starwars Outlaws)
24.9.10.1
=========
+ Fixed incorrect Pixel Shader input signature for Epic overlay in D3D12
24.9.10
=======
+ Added INI parameter to report increased or decreased VRAM capacity to D3D12
games in order to reduce memory allocation issues.
[Render.DXGI]
VRAMBudgetScale=[0.1,5.0] (Default=1.0)
24.9.9
======
+ Fixed FSR3 Frame Gen compatibility issues in FFXVI
24.9.8
======
+ Tidy up DLSS3 Frame Gen compat hacks for Star Wars Outlaws to make them safe
for use in other games.
+ Added ShadPS4 emulator to list of auto-Vulkan enabled software.
24.9.7.2
========
+ Increase memory pattern scan timeout from 2 seconds to 5 seconds to ensure
that Steam Input bypass works as expected in Tales of Arise.
+ Scan memory addresses on a 16-byte boundary when disabling Steam Input in
Tales of Arise to speed up text search.
24.9.7.1
========
+ Re-enable partial debug features in Star Wars Outlaws, otherwise DLSS
cannot be properly detected.
24.9.7
======
+ Fix window management problems for non-HDR users when disabling NVIDIA's
D3D12/Vk interop
+ Always use D3D12_RESOURCE_STATE_GENERIC_READ for initial state on GPU upload
heap resources because some drivers actually validate this
24.9.6.3
========
+ Disable D3D12 Vulkan Interop on NVIDIA drivers in favor of D3D11
+ Disable various debug features when injecting into Star Wars Outlaws
to avoid the wrath of Ubisoft's multi-layered DRM shenanigans
24.9.6.2
========
+ Fixed all known compatibility issues for Star Wars Outlaws Frame Generation
24.9.6.1
========
+ Restrict synchronous init to games that have Streamline and DLSS-G loaded
before SK.
24.9.6
======
+ Use D3D12 GPU Upload Heaps for ImGui vtx/idx buffers on supported systems
+ Use synchronous initialization when sl.interposer.dll is loaded before SK
+ Fix incorrect HDR_COLORSPACE_PARAMS struct size in D3D12
+ Fix HDR10 metadata override type
24.9.5.2
========
+ When a game sets HDR modes using NVAPI, do not switch active presets
if the user has already setup an override.
+ Ignore HDR metadata set using NVAPI
24.9.5.1
========
+ Remove check for number of generated frames.
* Evidently DLSS3 works no matter what values you set...?
24.9.5
======
+ Improved compatibility with DLSS3 Frame Generation in Star Wars Outlaws
+ Detect DLSS-G as active if DLSSG.NumFrames is 0 or > 1; required for Outlaws
24.9.4
======
+ Added extra frames of delay when capturing a snipped screenshot region for
games that have more than 2 backbuffers, so that the screenshot does not
include the light blue snipping rectangle :)
24.9.3.2
========
+ Removed code to lighten images where max tonemapped R,G or B are below 1.0
24.9.3.1
========
+ Disable overbright tonemapping unless luminance scale is >= 1.0
24.9.3
======
+ Enable loading HDR presets in native HDR games even when the override does
not specify any change to luminance.
+ Auto-switch to HDR10 Passthrough tonemap mode when switching from HDR10
native to scRGB.
24.8.29
=======
+ Added support for AVIF and JXL screenshots in 32-bit games (finally)
24.8.28
=======
+ Use 2.2 gamma when HDR color correcting third-party overlays instead of sRGB
+ Brighten alpha transparency on Steam overlay in HDR10 mode
+ Add support for UltraHDR JPEG screenshot encoding
24.8.27.1
=========
+ Fixed potential crash if DLSS text OSD is enabled and game completely turns
DLSS off.
24.8.27
=======
+ Fixed mouse performance issues in Black Myth: Wukong when the cursor is
inside the game window's client region.
24.8.26.3
=========
+ Fix intermittent mouse cursor flickering after opening SK's control panel
in some games.
+ Re-implement feature to save and restore mouse cursor position when the
control panel is opened / closed.
+ Do not center mouse cursor on control panel if it is already hovering one
of SK's mouse-interactable widgets (i.e. HDR).
24.8.26.2
=========
+ Perform HDR->SDR tonemapping in parallel on multiple threads to reduce
wait time to paste tonemapped screenshots.
+ Optimize clipboard acquire lock/release behavior.
24.8.26.1
=========
+ Fixed JPEG XL DLLs not downloading correctly when selected from the HDR menu
24.8.26
=======
+ Patch end-of-frame anti-debug checks for graphics debuggers out of FFXVI
24.8.25
=======
+ Implement half-float (scRGB) and uint16 (HDR10) lossless JPEG XL encoding
24.8.24.4
=========
+ Disable Final Fantasy XVI's Splash Screen so it cannot break DirectFlip
>> Only works for Global Injection
24.8.24.3
=========
+ Reduce the number of threads Final Fantasy XVI uses for JPEG XL screenshots
in its photo mode to eliminate hitching (libjxl spawns 1 thread per-core).
24.8.24.2
=========
+ Transform HDR10 to scRGB before encoding JPEG XL screenshots in HDR10 games
24.8.24.1
=========
+ Added support for JPEG XL screenshots (64-bit only; 32-bit will be added)
* Default quality level is 99%, this is primarily a lossy format.
* JXL lossless compression ratio is poor, but not as poor as PNG.
* AVIF or PNG are better choices for sharing lossless reference images.
24.8.24
=======
+ Fixed issues with "hide mouse cursor" feature not working in some games
after alt-tab following changes in 24.5.25.2.
+ Fixed potential black pixel artifacts on ImGui's UI when using HDR10->scRGB
translation mode.
24.8.22.1
=========
+ Add workaround for FFXVI beeping after Alt-Tab because it thinks the Alt
key is stuck down.
24.8.22
=======
+ Added FFXVI plug-in to improve JPEG XL screenshot quality after looking at
the artifacts caused by Square-Enix's default compression settings.
>> Screenshots are now 16-bpc instead of 8-bpc and quality set to 98.5%
* Lossless screenshots are possible, but will be significantly larger.
24.8.21
=======
+ Fixed potential DLSS3 Frame Generation crash when exiting Final Fantasy XVI
24.8.20
=======
+ Increased opacity of SK's UI in HDR10 mode.
+ Fixed a typo in ApplySRGBCurve (...) in shaders/common_defs.hlsl that
would cause black clipping when converting between sRGB and Linear
when direct copies between two resources are impossible due
to format mismatch.
24.8.19
=======
+ Correctly distinguish FFXVI from FFXV since the executable naming
pattern's underscore and store name are consistent.
24.8.18
=======
+ Add LastUsedColorSpace INI setting to help tonemap third-party
overlays in D3D12 games with native HDR support
+ Reduce luminance histogram buckets for frequency analysis during
tonemapping to 16384
24.8.17.1
=========
+ Byte-swap > 1-byte fields in PNG chunks when building on x86/x64
+ Use 99.5th percentile luminance for PNG / AVIF MaxCLL as discussed:
https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9508136
24.8.17
=======
+ Fixed artifacts when using Gamut Expansion on input colors wider than AP1
+ Improved alpha transparency when drawing SK's UI in HDR10
24.8.16.2
=========
+ Fixed PQ being 1/125th as bright as it should be in AVIF and PNG screenshots
24.8.16.1
=========
+ Write 99th percentile luminance to AVIF MaxCLL metadata
+ Improve PQ <--> Linear calculations for pixels in > Rec 709 gamuts
* Improves HDR->SDR tone mapping in some games
24.8.16
=======
+ Write 99th percentile luminance to HDR PNG clli chunk
+ Reverse the search direction (high->low) when searching percentile cutoffs
using luminance histogram buckets for larger values and quicker calculation
24.8.11.1
=========
+ Fixed display of achievement titles and descriptions containing % characters
in ImGui popups since ImGui expects a printf-formatted string...
24.8.11
=======
+ Improved handling of wide gamut scRGB colors when doing HDR->SDR tonemapping
24.8.9
======
+ Apply IDXGISwapChain3::SetColorSpace1 (...) whenever a D3D11/D3D12 SwapChain
overlay instance is (re)created, for compatibility with RenoDX / ReShade.
24.8.6.1
========
+ Add support for HDR10 UAV upgrades in Trine 4.
>> Unordered Access View format mismatches were not being handled for
the case where the original format had the same number of bits as
the new format (i.e. R10G10B10A2 = 32-bpp, R8G8B8A8 = 32-bpp)
24.8.6
======
+ Ignore texture hashing on D3D11 array textures because injection is not
supported and it reads from unallocated memory in Trine 4.
+ Increase maximum HDR pipeline remaster RenderTarget size (after upgrade)
from 128 MiB to 256 MiB. Resources that require more VRAM will continue
to be ignored, which may affect users supersampling to > 8K.
24.8.4
======
+ Add additional HDR metadata logging in games that use HDR metadata
+ Auto-fix games that use invalid HDR metadata values when SK is not
configured to disable HDR metadata outright (HDRMetadataType=-2)
24.7.30
=======
+ Improved (brightened) HDR->SDR screenshot tonemapping
24.7.29
=======
+ Remove debug log on calls to ID3D11DeviceContext1::UpdateSubresource1 (...)
24.7.28
=======
+ Use a RenderTargetView's Resource name if the RTV does not have a debug
name in D3D11 Live RenderTarget View (mod tools).
+ Enable right-click emulation by holding gamepad activation button for
> 0.4 seconds.
24.7.23.1
=========
+ Change size of sBIT chunk when adding HDR chunks to PNG data to account for
missing alpha channel
24.7.23
=======
+ Use Windows SDR white level as SDR reference white level in HDR->SDR tonemap
24.7.22.1
=========
+ Slightly increase the overall brightness of HDR->SDR tonemapped screenshots
+ Added option to Global\osd.ini to assign a keybind to toggle command console
[OSD.System]
ConsoleToggle=... Default=Ctrl+Shift+Tab
* Set ConsoleToggle=<Not Bound> to disable the console
24.7.22
=======
+ When saving HDR->SDR screenshots, use the display's maximum luminance as the
maximum tonemapped light level if the content's maximum level exceeds it.
>> Often overlays, UIs, or other unintended things on screen contribute to a
higher calculated maximum luminance and would dim the tonemapped image.
* Your display is the mastering display, so the tonemap should adhere to its
limitations to prevent dimming from details that were not even visible
to you due to your display's capabilities.
24.7.21.1
=========
+ Add maximum 250 ms initialization sync delay when games call
D3D11CreateDevice rather than D3D11CreateDeviceAndSwapChain
to ensure Flip Model SwapChain overrides work.
24.7.21
=======
+ Fixed incorrect ICtCp chroma scaling during HDR->SDR screenshot tonemapping
24.7.20
=======
+ Added default config AsyncInit=false for Crash Bandicoot N'Sane Trilogy
in order to ensure SK can upgrade it from Blit Model to Flip Model
24.7.17.1
=========
+ Disable D3D9[Ex] and OpenGL hooks in Talos Principle 2 to speed up init
+ Fixed potential loss of window tracking when games create new SwapChains
24.7.17
=======
+ Added fix-up for Talos Principle 2's addition of FSR3 Frame Generation;
FSR3 always destroys the existing SwapChain and creates a new one when
toggling frame generation on/off.
24.7.15
=======
+ Disable texture caching in Kingdom Come Deliverance by default
24.7.14.3
=========
+ Fixed OpenGL instability in Tomb Raider 2
24.7.14.2
=========
+ Fixed potential crash in Elden Ring when turning the game's framerate
limiter back on starting with the latest patch.
+ Added cached memory addresses for Elden Ring 2.2.3.0 to speed-up game start.
24.7.14.1
=========
+ Revert project settings to use the latest Windows SDK version installed
+ Various code has been refactored to eliminate compiler crashing when trying
to compile SK using clang (lol).
24.7.14
=======
+ Create HDR screenshots directory when saving HDR screenshots as .png, if
the directory does not already exist.
24.7.13
=======
+ Fixed potentially blown-out SDR tonemapped screenshots caused by ICtCp max
luminance being stored as a static variable.
24.6.20.1
=========
+ Added 2 second timeout to any memory pattern scan to prevent freezing after
patches in some games with excessively large executables.
+ Restore framerate unlock support to Elden Ring 2.2.0.0
24.6.20
=======
+ Disable Elden Ring plug-in in versions of Elden Ring newer than 2.0.1, since
the game no longer uses the original framerate limiting code.
24.6.19.1
=========
+ Truncated iCCP profile from 2195 bytes to 2178 in HDR PNGs generated by SK
24.6.19
=======
+ Correctly handle inverted selection rectangles when snipping screenshots
+ Apply whitebalance fix for SDR tonemapped screenshots
+ Use ICtCp during HDR->SDR screenshot tonemapping
24.6.16
=======
+ Integrated SKIV's HDR->SDR screenshot tonemapping algorithm and apply
it to all HDR content, whether inverse tonemapped using SK or native.
24.6.15.3
=========
+ Switch to WIC's scanline adaptive PNG encoder optimization for better
data compression rates while being completely lossless unlike SK's
previous compression optimization strategy.
24.6.15.2
=========
+ Fixed various cursor management issues when using the new snipping tool.
+ Added gray translucent overlay while snipping mode is active.
24.6.15.1
=========
+ Made screenshot snipping into a dedicated keybind, you must click
to begin the selection after pressing the keybind. The selection
rectangle will only show up when clicked.
24.6.15
=======
+ Added support for snipping clipboard-only screenshots (HDR or SDR) using
the mouse. Press the clipboard-only binding twice to use fullscreen.
24.6.14.3
=========
+ Optimized Perceptual/Color Boost perf. slightly for values > 0% and < 100%
24.6.14.2
=========
+ Fixed unintentional black pixels on some SDR->HDR inverse tonemapped content
caused by Middle-gray Contrast setting being active when it should not be.
24.6.14.1
=========
+ Fixed selecting AVIF screenshot format not turning HDR PNG off
24.6.14
=======
+ Added HDR PNG as a third format option for saving HDR screenshots to disk
+ Added preference to control whether HDR clipboard screenshots contain
actual HDR data (PNG; new default) or an SDR tonemapped copy.
24.6.13.3
=========
+ Added display primaries and whitepoint to mDCv chunk of HDR PNGs
* It was using reference Bt.2020 values because many displays have invalid
information (i.e. they just report Bt.709), but that may lead to
oversaturation in SDR tonemapped images.
24.6.13.2
=========
+ Fixed accidental no tonemapping (linear range scaling) introduced in 4.6.12
when storing tonemapped screenshots in Steam.
24.6.13.1
=========
+ Added cHRM, sBIT, cLLi and mDCv chunks with content and display information
to captured HDR PNGs to assist color managed software with tonemapping.
24.6.13
=======
+ Added PNG HDR screenshot support
* A PNG will be copied to the clipboard every time a screenshot is taken
in HDR games so that you can paste the HDR image directly to Discord.
+ Overbright tonemapping is now disabled when HDR is in passthrough mode
24.6.12
=======
+ Apply separate screenshot tonemaps to native HDR and SK inverse tonemapping.
* The tonemap used for native HDR content is roughly equivalent, but with
correct colors, to gamebar's tonemap... so not particularly good.
+ Add warning if a third-party overlay is detected to be interfering with
window management and preventing keybinds and other input from working.
+ Detect NVIDIA DXGI/Vk interop SwapChains even if the Steam overlay has
hooked D3D11.
24.6.10
=======
+ Revert HDR->SDR screenshot tonemapping
+ Change HDR overbright bit processing from soft clip (overbright was allowed
to influence the input to Perceptual Boost and output was scaled down),
to hard clip (pre-scaled so that output never exceeds tonemap target).
+ Clamp various PQ EOTF encoding functions to [0,oo) since PQ is undefined for
negative values
+ Apply Perceptual Boost in AP0 colorspace and apply clamp (see note about PQ)
24.6.9.1
========
+ Normalize HDR->SDR tonemapped screenshots if peak white was < 1000.0 nits
in order to keep relative luminance range in SDR representation
(i.e. avoid unnecessary dimming).
+ Remove Rec 2020 clamp from various scRGB processing, and replace it with
simpler logic that only strips NaN/Infinity and keeps maximum FP values
lower than 65504.0.
24.6.9
======
+ Fix potential Return to Monkey Island crash when opening SK's control panel
24.6.8
======
+ Improved HDR->SDR screenshot tonemapping
+ Apply overbright processing -after- de-gamma
+ Reduced luminance of HDR overbright bits; prevent values > 1.0 in de-gamma
+ Changed default overbright behavior to luminance clip (preserve chrominance)
24.6.5
======
+ Added LosslessScaling.exe to injection blacklist to prevent mistaking the
Steam version of the software for a game and auto-whitelisting it.
24.6.4.3
========
+ Improved luminance heatmap (exposure) visualization on wide gamut colors
+ Improved NaN/Infinity mitigation performance in FP16 color buffers
24.6.4.2
========
+ Add AllowDxDiagn=false for God of War and God of War Ragnarok
(assuming executable name contains GoW, case-sensitive)
24.6.4.1
========
+ Add Rec 709 clamp before tonemapping SDR screenshots since gamut mapping
is not implemented.
24.6.4
======
+ Fix transposed Rec 709 to Rec 2020 matrix so that standard transfer
characteristics (i.e. Rec 2020 primaries) can be used when converting
scRGB screenshots to HDR10 for AVIF encode
+ Fix rounding problems in AVIF encode
+ Exposed SDR screenshot tonemapping tuning knobs if PBoost3 slider or
Gamut Visualizer disclaimer are right-clicked.
* Lerp scale controls bias towards chroma preservation
(lower = more saturation at the expense of highlight "whiteness").
24.5.30.1
=========
+ Disable game-specific plug-in for Sekiro
+ Add "background render" option for all games configured to use
fake fullscreen by default.
+ Activate game windows when engaging Fake Fullscreen
+ Prevent games like Cyberpunk 2077 from minimizing themselves in an
endless loop at startup.
24.5.30
=======
+ Default Fake Fullscreen mode in NieR: Replicant and NieR: Automata
+ Disable texture caching for non-mipped textures in Kingdom Come...
24.5.29
=======
+ Vectorized NaN / Infinity checks in HDR shaders for better performance
+ Precompute Perceptual Quantization coefficient reciprocals for faster
scRGB <--> HDR10 transformation
24.5.28
=======
+ Perform overbright processing in Rec 2020 and eliminate Rec 709 clamp
on input if luminance scale > 1.0
24.5.27.2
=========
+ Add HDR Overbright Bit Tonemapping back as a per-profile INI setting
24.5.27.1
=========
+ Added support for "Any" Role or Architecture to DLL import INI records
+ If "Role" or "Architecture" are missing from a DLL import, they assume "Any"
+ Removed case sensitivity from DLL import config entries
+ Removed HDR Overbright Bits Tonemapping
24.5.27
=======
+ Added GPU clockrate to HDR Processing time since the time to execute varies
due to power management under low GPU load...
24.5.26.4
=========
+ Added experimental Overbright Bits tonemapping for HDR games that qualify.
>> The feature is always on and has no configuration at the moment.
24.5.26.3
=========
+ Various minor static analysis guided code cleanup
24.5.26.2
=========
+ Added HDR Screenshot Compatibility Mode checkbox to HDR control panel menu
24.5.26.1