Releases: SpecialKO/SpecialK
SK_24_5_13
Minor Point Release Adds
- Improved DLSS indicator by @Aemony in #175
- Disable "rumble emulation" on DualSense controllers when there are no emulated left/right motor data in order to maintain compatibility with games that use native haptics.
Full Changelog: SK_24_5_2...SK_24_5_13
SK_24_5_2
NVIDIA Streamline Compatibility
It is no longer necessary to delete sl.interposer.dll for Streamline compatibility
It is possible to use scRGB HDR in DLSS Frame Generation games now
DirectStorage Features
DirectStorage Control Panel section indicates what, if any, features a game actually uses
GPU Decompression can be forced off to improve performance on low-end GPUs or high-end CPUs
Telemetry built-in to DirectStorage (yes, this really is a thing) can be forced off
DLSS Features
DLSS Control Panel section to configure Preset, Resolution Scaling and Sharpening overrides
DLSS Active Resolution, Preset and Frame Generation status added to text OSD
Alternate DLSS versions can be loaded from a shared location without replacing game files
Latency / Framepacing Features
Latency Widget (NVIDIA) overhauled to include GPU/CPU Busy and CPU/GPU-bound indicators
Frametime graph can be configured to measure intervals using Start-of-Frame or End-of-Frame
New "DLSS-G Pacing" limiter mode enables framerate limits in Framegen without adding latency
AutoVRR mode has been enhanced to control NVIDIA Reflex based on user's latency preferences
Latent Sync auto-bias dynamically adjusts latency reduction as much as possible without tearing
Effective VRR Display Refresh Rate added to OSD / Control Panel for NVIDIA users
Resizable BAR configuration added to Display Menu (NIVIDA)
HDR Features
Auto-detect when games switch from SDR to HDR and disable SK's own HDR when applicable
Configurable Content EOTF (i.e. Linear, sRGB, 2.2, 2.4, Custom) for Inverse Tonemapping
HDR10 is now available as an alternative to scRGB for games that glitch in FP16 color
Improved HDR remaster compatibility by offering 16-bpc UNORM as an alternative to FP16 color
DLSS3 Frame Generation can now be used with BOTH, SK's HDR10 and scRGB HDR modes
"Zero-Copy" mode reduces memory bandwidth usage by 1/2 in native DXGI Flip Model games
GPU-side image processing time added to HDR widget to measure GPU overhead
AVIF Screenshot Support and Configurable Encoding Quality for AVIF / JPEG-XR
Advanced ReShade (6.0+) integration allows post-processing before SK does Tonemapping
Improved Perceptual Boost with new Color Intensity setting
Input Features
Add Support for DualSense Edge in some games that only support DualSense
Native support for DualShock 3/4 and DualSense (USB and Bluetooth) controllers
"XInput Mode" enables PlayStation controllers in games that only support Xbox controllers
Configurable Battery Level indicator warns before a PlayStation controller's battery dies
DualSense Edge users can map left/right paddles and function buttons to keyboard
DualShock4 and DualSense (Edge) users can map trackpad click to keyboard
Wireless PlayStation controllers can be turned off by pressing PlayStation + Triangle
Individual gamepad input APIs can be blocked to prevent games from displaying wrong input icons
Blocking keyboard input to games will no longer prevent using ReShade and Steam overlays or Alt+F4
Added Chorded input functionality using PlayStation / Guide Button + Some Other Button
Improved compatibility with Steam Input
OpenGL Features
Automatically upgrade games color buffers to 10-bpc unless they use sRGB gamma
Automatically upgrade games depth/stencil buffers to 24-bit and 8-bit respectively
Eliminated 1 extra framebuffer BltCopy during OpenGL/DXGI interop if HDR is used
OpenGL's Debug Output extension (and necessary debug context) can be turned on in any game
Workaround AMD driver bugs that try to enable AMD's OpenGL/DXGI interop in non-OpenGL games
Display Management Features
Active Refresh Rate Indicator for VRR displays (NVIDIA-only)
"Fake Fullscreen" allows windowed native HDR in games that need Fullscreen Exclusive (NVIDIA-only)
Screensaver is automatically disabled when playing Borderless Fullscreen games using a gamepad
Audio Features
Audio output can be redirected to a different device while games are running
Display devices can pair with audio devices; automatic redirection when games change displays
DualSense Mute button can be used to Mute / Unmute game audio
Plug-In Features
New ReShade 6.0+ AddOn API allows hot-loading ReShade in an already running game using a keybind
When loaded as a Plug-In, ReShade loads Shaders and Textures from a shared location in all games
UI Features
New Notification (Toast) System replaces old Warning / Errors with user-configurable Notifications
ImGui codebase updated after 5 years in order to use ImPlot for some of SK's new advanced graphs
Current frame number added as an optional text OSD stat for video sync and speed run validation
Control Panel can be accessed using the Xbox or PlayStation buttons on gamepads
Steam Features
Implemented Achievement Unlock Icons for Achievement Popups in D3D12 games
"Continue Rendering" now supports background gamepad input in Steam Input games
SteamAPI Integration can be turned off in the Control Panel instead of manual INI edits
Steam Overlay can be disabled using SK's Control Panel, independent from the client's setting
Valve Plug XInput DLL offers a full-kill for all Steam input device manipulation (see GitHub)
Epic Features
Implemented Achievement Popups for Epic Game Store Games
Texture Injection Features
Added Support for D3D11 Typeless Textures (by appending _TYPELESS to the filename)
Removed BC6H (HDR) and BC7 textures from "Generate Mipmaps" because compressing them is VERY slow
Notification counting textures found at startup helps quickly indicate correct texture mod setup
SKIF Features
Profile directory names use SKIF's display name instead of <game.exe> for non-Steam/Epic games
Optional XInput DLL adds native PlayStation support and allows SKIF to power-off idle gamepads
DRM Features (?)
Universal CAPCOM anti-tamper workaround for all CAPCOM games published since 2016
Special K v 23.8.26
23.8.26
- Merge pull request #80 from Aemony/main
- Bypass EAC for Armored Core VI
- Merge pull request #72 from Nustat0/dgvoodoo-d3d12
- Fixed GUI not showing up when bootstrapping dgVoodoo (D3D12)
23.8.22
- Updated HDR Profile 0 to use .96 gamma by default
- Changed HDR Gamut Expansion to use D65 white instead of D60
23.8.21
- Updated HDR Profile 0 for new gamut unclamped HDR processing
This profile targets 534 nits
- Moved the old HDR Profile 0 defaults to Profile 1 (570 nits)
- Disabled Raw Input caching because it breaks keyboard input in some games
23.8.19.1
- Fixed Baldur's Gate 3 game detection only testing the Vulkan executable
- Fixed Baldur's Gate 3 alt-tab flakiness (do not use Multitasking On Top)
23.8.19
- Removed the Energy Efficiency section from the Framerate Limiter / Advanced
control panel, unless the user has an AMD CPU. - Removed the experimental tuning knobs for busy-wait ratio; they are not
needed on AMD CPUs and will be brought back in the future if Intel's
equivalent MWAITX instruction is integrated into SK.
23.8.18.3
- Handle D3D11 implementations where ID3D11Device1::GetImmediateContext1 is
not a vftable alias to ID3D11Device::GetImmediateContext - If a game raises multiple exceptions from the same address more than 3 times,
it will stop being logged unless log level is >= 1. - Removed log spam for shader cache collisions due to games compiling the same
shader on multiple threads unless log level is >= 1.
23.8.18.2
- Decreased color gamut on SK's HDR UI slightly
23.8.18.1
- Assign *pcbSize the same value as GetRawInputData returns to fix Fallout 4
23.8.18
- Optimized Unreal Engine's use of Raw Input (2 calls per-data polled)
- Removed black point compensation from SK's HDR UI since EDID info is wrong
- Increased color gamut on SK's HDR UI
23.8.17.2
- Disable PreventEnumDevices option by default in NieR Replicant
- Destroy framerate limiter and stats when a tracked SwapChain is destroyed
- Shutdown framepacing statistics thread when framerate limiter is destroyed
23.8.17.1
-
Optimized NVIDIA's Vulkan/DXGI interop to use a single ID3D11Device rather
than destroying it and creating a new one every time a window is resized.This is necessary in 32-bit Vulkan games (i.e. DXVK) to prevent running
out of memory during resolution changes.- It also ensures that switching games in Yuzu works without having to
completely restart the emulator when using NVIDIA's interop.
- It also ensures that switching games in Yuzu works without having to
23.8.17
- Implicitly force windowed mode if "Render in Background" is configured, to
prevent Fullscreen Exclusive games from not responding when Alt-Tabbing
back in.
23.8.16.2
- Fixed mouse input not tracking in Yuzu's multi-window mode and in some
Fullscreen Exclusive games
23.8.16.1
- Avoid calling ID3D11DeviceContext::UpdateSubresource (...) twice sometimes
- Forward the return address to SK_D3D11_UpdateSubresource_Impl so that texture
cache invalidation is attributed to the correct DLL in log files
23.8.16
- SK::Diagnostics::CrashHandler::InitSyms (...) no longer implicitly installs
SK's unhandled exception filter if handle_crashes is set to false
23.8.15.3
- Properly handle API name change on AMD Vk interop (D3D12 SwapChain)
23.8.15.2
- Do not cache D3D12 SwapChains when AMD's Vulkan interop is detected
- Change API name to Vulkan instead of D3D12 when using AMD's Vulkan interop
23.8.15.1
- Disable SwapDeviceContextState because it causes the Steam Overlay to crash
23.8.15
- Fixed handling of WM_NCACTIVATE when borderless is enabled causing WatchDogs2
to think its window is always in the background - Added nullptr checks to various ID3D11DeviceContext hooks
- Switched D3D11 stateblock code to use SwapDeviceContextState (...) for
immediate contexts when supported by the driver
23.8.14.3
- Game window is back to being considered active by default, because otherwise
SDL2 thinks no input devices are attached
23.8.14.2
- Game window is initially considered inactive to prevent things like
confining the mouse cursor to the game window from applying at startup
when the game window is not in the foreground - Fixed D3D11 Immediate Device Contexts being wrapped twice in some cases
23.8.14.1
- Always wrap D3D11 Immediate Device Contexts, because NV's DXGI/Vk interop
breaks during window resize if there is no immediate context to flush - Improved thread safety when reporting unexpected COM QueryInterface IIDs
23.8.14
- Moved saturation back to applying after Perceptual Boost to fix hue shift
- Fixed incorrect HDR gamut overshoot visualization due to unnormalized xyY color
23.8.13.3
- Changed Perceptual Boost back to Rec709; accidentally left in 2020 in .2
- Fixed potential crash in PresentMon if presentation stalls long enough and
pLast is nullptr
23.8.13.2
- Added GDeflate support and usage tracking for DirectStorage titles
23.8.13.1
-
Apply saturation and gamma before Perceptual Boost
Default presets have been changed to 100% saturation to compensate for
MASSIVE loss in color gamut
23.8.13
- Tales of Vesperia defaults to D3D11 Deferred Mode for DoF disable to work
23.8.12.3
- Added HDR "Import" button to HDR widget and changed behavior of "Reset"
- Reload Global\hdr.ini whenever "Import" is used to allow manual changes
23.8.12.2
- Fixed various D3D11 render state tracking related features not working in
Tales of Vesperia and Yakuza 0
23.8.12.1
- Minor tweak to implicit window focus on foreground status
- Fixed Perceptual Boost not being enabled by default in HDR Profile 1
23.8.12
- Optimized D3D11 render state tracker code for wrapped/hooked D3D11 device
interfaces.
23.8.11.3
- Optimized D3D11 HDR processing pipeline by eliminating an extra texture copy
when previous frame images are not needed to mitigate NaN (99% of games).
23.8.11.2
- Fix Alt-Tab problem in Baldur's Gate 3 and any other game that ignores
WM_SETFOCUS when alt-tabbing back in.
23.8.11.1
- Optimized HDR shader slightly by skipping NaN / Infinity removal on the input
image, and only performing it before clamping the output to Rec 2020.
23.8.11
-
Added HDR processing time (GPU execution) to HDR widget in D3D11-based modes
-
Added new Profile 1 default values, this profile has less black crush and
improves UI/midtone visibility BUT the value on the luminance slider is
not accurate.If you want to adjust Profile 1, familiarize yourself with using the
tonemap visualization mode (after profiling display).- The luminance slider can't calculate the light output for this profile.
23.8.10.1
- Allow games to use dxdiagn.dll at startup as default policy, the ones that
do (mostly Ubisoft) will take a good minute or two to start because they're
collecting your hardware info using dxdiag EVERY TIME you start the game.
23.8.10
- Fixed potential crashes in newer Unity engine games that use
Buffered Raw Input.
23.8.9.2
- Fixed mouse input not working in control panel when Disabled to Game.
23.8.9.1
- Fixed mouse input not working in control panel in emulators like Yuzu
23.8.9
-
Added keybinding to use the previously gamepad-only "hide all widgets"
- NOTE: This is actually a toggle and hidden widgets will be restored
by pressing the keybind a second time.
- NOTE: This is actually a toggle and hidden widgets will be restored
-
If users has "hide all widgets" (LT+RT while control panel is open)
active and then uses a widget toggle keybind, "hide all widgets" will
now disengage to make things less confusing.
23.8.8
- Perceptual Boost is now performed in LMS color space
- Changed handling of NaN/Infinity in sRGB <--> Linear conversion shader
- Updated HDR screenshot tonemapping code to work with wide gamut colors,
it's not great but at least produces sensible colors now.
23.8.7.4
-
Fixed Middle Gray Slider to work in unclamped color.
Any existing HDR profiles that used a non-zero middle gray value
will need to be re-calibrated.
23.8.7.2
- Cursor auto-hide works when mouse input is set to "Disabled to Game"
- ImGui cursor is removed from screen when other windows have focus
23.8.7.1
- Fixed potential crash in Baldur's Gate 3 due to mouse Raw Input data
- Fixed mouse cursor not centering on control panel when first opening it
- Fixed mouse anti-warp settings related to control panel state applying
even when control panel is not open - Set default preference for anti-warp when windows cursor is visible to off
23.8.7
- Fix potential black screen issues in Yuzu using Vulkan
- Changed HDR Perceptual Boost to run in Rec 2020 colorspace, the final
image should have less aggressive red saturation.
23.8.6.3
-
Improved compatibility with Vulkan/DXGI interop when the Steam overlay
is not disabled (D3D11 texture cache needs to be cleared if enabled)It is still HIGHLY recommended that you disable the Steam overlay when
using Special K in Vk games, because it hooks both Vulkan and D3D11!
23.8.6.2
- Add locks back around shader cache management code to fix God of War
23.8.6.1
- Fixed rare XInput ...
Special K (23.6.2.2)
23.6.2.2
- Add warning message when launching Diablo IV
23.6.2.1
- Prevent Bethesda games from turning off legacy input APIs during
RawInput device registration (fixes Fallout New Vegas issues) - Enable Vulkan Bridge in No Man's Sky by default
23.6.2
- Removed "regular" Font Awesome Icons in favor of solid
- Added a splash of color to the Plug-In file selector dialog
23.6.1
- Eliminate overly aggressive framepacing defaults in NieR: Automata
23.5.31
- Improved automatic detection of WINE to disable low-level Windows-specific
features of SK that have no purpose on other platforms and crash WINE.
23.5.30.2
- Disable hook caching in Yuzu so HDR works in Vulkan
23.5.30.1
- Revert SetForegroundWindow / BringWindowToTop changes from 23.5.28.3
- Updated internal fonts to Font Awesome Free v6.2.1
23.5.30
-
Merge pull request #64 from WallSoGB/SilentCrashHandler
- Silent crash handler + Y-m-d for crash timestamps
-
Fixed hook address caching not respecting Enable{Local|Global}Cache setting
-
Removed Unicode formatting direction characters from locale timestamps
23.5.29.2
- Fixed deadlock in games that raise Thread Name exceptions without a string
- Fixed HDR gamut expansion not applying
23.5.29
-
Fixed incorrect structure size on NV_GPU_DITHER_CONTROL_V1, which was
causing the dithering setting on NVIDIA GPUs to read as "Default".HDR users should test the dithering setting using the HDR widget's
HDR Visualization: "Tonemap Curve and Grayscale".( 10-bit Temporal is ideal for HDR on 12-bpc displays )
-
Increased HDR visualization list size so Grayscale shows without scrolling
23.5.28.3
- Various fixes for games with splash screens that are Win32 dialogs
23.5.28.2
- Steam Overlay's Vulkan layer cannot be disabled -- its D3D11 Overlay will
not cleanup resources correctly on NVIDIA's DXGI Layer and will deadlock.
23.5.28.1
- Replaced AsyncInit workaround with Env. Variables to disable Vk layers
23.5.28
- Improved global injection compatibility with Yuzu
- Disabled AsyncInit for games using Vulkan Bridge to ensure that third-party
layer disablement code works as intended
23.5.27.3
- Automatically disable OBS's Vulkan layer if SK's Vulkan Bridge is active
- Automatically disable Steam's Vulkan layer if SK's Vulkan Bridge is active
- Automatically disable RTSS's Vulkan layer if SK's Vulkan Bridge is active
23.5.27.2
- Add 5 frame delay before centering mouse cursor over exit confirmation
- Add error when launching Yuzu without SK's injection service running
23.5.27
- Auto-close Audio Session Selector pop-up if there are no sessions
- Increased the minimum size of the Audio Session Selector pop-up in
the Volume Management section of the control panel for low-res users
23.5.26.1
- Add support for ++ and -- to floating-point cvars
23.5.26
- Add "Num Plus" (for Numberpad +) as a possible keybinding
- All D3D9 games running in DXVK will be forced into windowed mode
- FFXIV is forced into windowed mode by default
23.5.24
- NOP all calls to ChangeDisplaySettings{Ex}(A|W) when forcing windowed mode
23.5.19
- Add check for PresentMon user permissions before attempting to enable
23.5.18
- For NVIDIA GPU users, if DXVK (D3D9) is detected, a prompt to enable native
Vulkan support will be presented when first launching a game.
23.5.17.6
- Fixed potential deadlock in Yuzu at start during Streamline Interposer check
23.5.17.5
-[ Vulkan no longer sucks on Windows! ]-
VulkanBridge grants high-performance Borderless Window mode (w/ G-SYNC),
HDR, Latent Sync, Multiplane Overlays, etc. to NVIDIA GPU owners.
(*) All of those features are normally D3D exclusive.
(NVIDIA Driver Version 526.98+ Required)
- Enabled VulkanBridge by default in cemu and RPCS3
23.5.17.4
- Enable VulkanBridge by default in Ryujinx and Yuzu
- RunDLL_NvAPI_SetDWORD will create new NV driver profiles if necessary
- Workaround SteamAPI crash if DLL is too old to implement ISteamScreenshots
- Renamed EnableRTXRemix setting to EnableVulkanBridge
-------------- ------------------ - Eliminate an unnecessary extra game restart when first enabling RTX Remix
- Fixed parsing executable names with spaces in RunDLL_NvAPI_SetDWORD
23.5.17
-
Added INI option to enable DXVK + DXGI Layered Present (RTX Remix)
[NVIDIA.API]
EnableRTXRemix :: 0=Disable, 1=Enable, -1=Don't Care- The game will restart itself to apply these changes.
-
Added RunDLL_NvAPI_SetDWORD to apply NVIDIA Profile Settings:
Example: (Setup RTX Remix for Dragon's Dogma (ddda.exe))
rundll32 SpecialK64.dll,RunDLL_NvAPI_SetDWORD 0x20324987 0x80001 ddda.exe {Setting} {Value} {EXE}
NOTE: Some settings (i.e. the one above) require Admin privileges to set.
23.5.16.3
- Prevent NV's Vulkan/DXGI Layered SwapChain from loading Ansel
- Disable HDR widget if 10-bpc SDR is active
- Promote NV's Vulkan/DXGI Layered SwapChain to 10-bpc in SDR
- Disabled assertion if game window changes, unless log level >= 1
23.5.16
- Fixed NV Vulkan/DXGI SwapChain cleanup that could cause games to freeze
- Renamed "Maximum Frame Interval" to "Minimum Refresh" in Reflex widget
23.5.13.1
- Add extra Wallpaper Engine executables to blacklist
- Disable OpenGL Scissor Test during glBlitFramebuffer for OpenGL-IK
23.5.8
-
Changed the "Prevent Always-On-Top" option to check the state once per-frame
and remove a game window's Always-On-Top state if needed.(The old behavior only did this following window (de)activation).
Special K (23.5.7)
23.5.7
-
Merge pull request #63 from Aemony/D3D9-IK
- Restores Windows 7 compatibility (just don't ask for support)
-
Merge pull request #59 from SpecialKO/Aemony-patch-1
- Added build.bat to automate build process further
-
Merge pull request #34 from Trass3r/D3D9-IK
- Add Continuous Integration
23.5.6.3
- Disable SK's internal debugger in Honkai: Star Rail to workaround anti-cheat
- Added compat hacks to non-Steam version of Path of Exile as well
- Export/Reset Profiles in HDR widget also store their INI values as
described in 23.5.6
23.5.6
- Changed HDR widget to store profiled display data using monitor GUID instead
of the full GDI device path (since parts of it are not invariant).
-
New INI Key Name: GSMC0A0.{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}
-
Old INI Key Name:
DISPLAY#GSMC0A0#5&2dafe0a1&5&UID45314#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}Old Global\hdr.ini files will have invalid entries; consider deleting.
@ Re-run "Profile Display Capabilities" after deleting...
23.5.5
- Only display Effective Power Mode in control panel if game is foreground
- Clicking the Aspect Ratio Stretch background will activate the game window
- Prevent Aspect Ratio Stretch background window from becoming foreground
23.5.4.2
- Do not attempt to register for Effective Power Mode change notifications
on WINE, since it will just crash the game and complain about a stub.
23.5.4.1
-
Added Effective Power Mode to SK's Control Panel.
If it does not say Game Mode (while the game is in the foreground),
then check the Windows Game Bar with the game is running...- Ensure the Game Bar has 'Remember this is a Game' checked.
23.5.4
- Fixed aspect ratio stretch background window stealing focus from the game
window when Aspect Ratio Stretch is enabled.
23.5.3
-
Remove leading and trailing spaces from config profile directory names if
the Steam manifest uses them in the game name...(i.e. " Dead Space" and "Star Wars: Jedi Fallen Order™ ")
23.5.2
- RunDLL_DisableGFEForSKIF also disables VRR for SKIF
23.5.1.1
- Added [Scheduler.Boost] DenyForeignChange option to prevent Game Mode from
lowering process priority when certain combinations of scheduler boost
are active.
23.5.1
-
Disable GeForce Experience Overlay for SKIF the first time SK is injected
Game has to be run as Admin for this to happen automatically
-
To do manually (from an Admin command prompt):
rundll32 SpecialK64.dll,RunDLL_DisableGFEForSKIF
-
23.4.30.4
- Disable warning about "Continue Rendering" if a game tries to engage
Fullscreen Exclusive and SK is overriding it to Borderless Fullscreen. - Blacklisted processes no longer signal SKIF's OnExit event when exiting
- Added EASteamProxy.exe to internal injection blacklist
- Added Link2EA.exe to internal injection blacklist (EA, stop dammit!)
- Added dsx.exe to internal injection blacklist
23.4.29
- Added internal list of executables that acquire multiple references
to SK's DLL during injection shutdown.
23.4.28
- Added check if Microsoft's GLOn12 layer is active before using OpenGL-IK
23.4.27
- Added SteamAPI workaround for CRAPCOM anti-piracy shenanigans in
Megaman Battle Network Legacy Collection (no more dimming screen).
23.4.26
-
Added button to HDR menu to disable a game's native HDR
Intended for games that force HDR on; requires game restart.
-
Removed streaming_client.exe (Steam streaming) from internal blacklist.
Using SK for streamed games requires placing SpecialK.dxgi in the
same directory as streaming_client.exe.
23.4.25
- Renamed HDR Presets 2 and 3 to scRGB Native and HDR10 Native
Use these for HDR native games; ignore luminance slider
- Disabled color saturation and gamma control in HDR10 mode
23.4.24
- Added horizontal tear bars to Latent Sync for Steam Deck's derpy display
- Raised SDR->HDR gamma for profile 0 to 0.933 (from 0.925)
- Added peak luminance estimate when using profile 0's Perceptual Boost
- Lowered the slider range for Perceptual Boost to ~285 - 2000 nits
23.4.23
- Renamed HDR Peak White Luminance slider when Perceptual Boost is enabled
- Tweaked default HDR profile 0 to target 575 nits w/ PB
23.4.14
- Fixed achievement unlock ratios for games with > 50 achievements
23.4.12
-
Fixed incorrect CPU load % on Windows 11 as a result of invalid
idle time accumulation in SystemProcessorPerformanceInformation -
Amended 'Disable Transparency' changes so that HDR display profiling
is not broken by 10k nits transparency blending
23.4.11.1
- Improved HDR near-black and out-of-gamut color processing
23.4.11
- Added current values (top-left) to GPU monitoring widget graphs
- Removed Windows.UI.dll from auto-exclusion during global injection
23.4.10.2
- Fixed SwapChain settings in Control Panel not UI-scaling correctly
- Added tip on configuring the OSD's Startup Banner, to the banner...
23.4.10.1
- Fixed potential creation of 'Profiles' directory at the root of disks
- Merged fix for 'Disable Transparency' option in UI settings
- Merged fix for building with newer Visual Studio toolchains
23.4.10
-
Merge pull request #58 from Nustat0/D3D9-IK
- Fix dgVoodoo plugin detection for local ddraw/d3d8
-
Merge pull request #52 from cathyjf/fix-get-file-size-for-symlinks
- Fix SK_File_GetSize for symlinks
-
Added Plug-In file selector to the Control Panel's Plug-Ins section
-
Added Multiplane Overlay plane count to Display menu.
-
Automatically disable Window Proc hooks and SteamAPI integration in CRAPCOM
games to avoid angering their abhorrent DLC anti-piracy -
Fixed missing PresentMon info in windowed mode D3D9 (NOT D3D9Ex) games
-
Fixed MGS V compatability when it requests non-0 DXGI SwapChain buffers
-
"Continue Rendering" Window Management mode is disabled automatically if a
DXGI-based (D3D10/11/12) game attempts to use Fullscreen Exclusive -
Changed message on DPI Scaling AppCompat Fix when games cannot be restarted
automatically:"A one-time game restart is required to fix DPI Scaling issues in this game"
-
Added "Aspect Ratio Stretch" mode to the Display menu in SK's Control Panel.
- Run (borderless windowed) games at custom aspect ratios properly centered
with letter/pillar-boxing without changing display modes.
- Run (borderless windowed) games at custom aspect ratios properly centered
-
Improved HDR -> SDR screenshot tonemapping in D3D11 and D3D12 games
-
Added NVIDIA Streamline workarounds, including an optional replacement
Interposer DLL compatible with Global Injection and HDR.(see: Wiki Compatibility; note some new DLSS features may not work.)
-
Added HDR gamut expansion feature to increase saturation on HDR highlights
-
Renamed "DWM Tearing" to simply "Tearing" in SwapChain settings, since it
has nothing to do with the DWM and requires Flip Model bypass the DWM. -
Updated Chrono Cross and Hatsune Miku Project Diva plug-ins for new patches.
-
Implemented achievement popup location setting and removed animated option.
-
Made ieframe.dll pinned (not unloadable) to workaround Steam crash.
-
Exempt explicitly whitelisted games from internal libcef.dll blacklist
-
No longer return processes that are not running in SKX_GetInjectedPIDs (...)
22.9.26
- Fixed PresentMon performance in Windows 11 22H2 without disabling it
- Replaced 'Low-Latency' checkbox with 'Mode' option in control panel's
'Framerate Limiter | Advanced' section
22.9.25 (HOTFIX)
-
Added option to disable PresentMon to address Windows 11 22H2 performance
[Render.FrameRate]
EnableETWTracing=false -
Fixed HUDless screenshots if D3D11 state tracking is disabled
22.9.19
- Re-enabled friend achievement unlock statistic fetch by default
- Fixed achievement unlock-triggered screenshots snapping twice
- Disabled screenshot sound for achievement unlocks
The Steam overlay may still play a sound
22.9.18
- Stabalized NV hardware stats (load %, temp., clocks) that are not sampled
every polling interval
22.9.17
- Disabled ImGui assertions if log level < 1 to avoid achievement popup issues
while SK's control panel is visible
Special K (22.9.16)
22.9.16
- Merge pull request #24 from Aemony/D3D9-IK
- Added separation between swapchain mgnt sections
- Added Soul Hackers 2 HUD vertex shaders to built-in HUD database
22.9.15
- Added MyDockFinder to injection blacklist to keep SK's OSD out of the Windows shell
- Added option to disable Steam Input
22.9.8-D3D9-IK
- Added error if Global Injection is attempted in software using NVIDIA Streamline
- Silenced API call tracing for NtSetTimerResolution (...) when log level < 1
22.9.6-D3D9-IK
- Fixed Reflex latency statistics in D3D12
Special K (22.8.18)
22.8.18-D3D9-IK
- Fixed memory leak in achievement icon loader
- Added Global / Friend unlock % to achievement popups
- Centered description and established consistent aspect ratio for achievements
22.8.17.2-D3D9-IK
-
Partial re-implementation of achievement unlock popups
Duration is the only setting currently implemented, and achievement icons
are only loaded in D3D9/D3D11/GL at the moment. -
Optimized D3D11 texture cache for games with many small textures
22.8.17.1-D3D9-IK
- Switched debug symbol loader back to deferred to speed up init
- Empty crash/steam/debug out/eos logs are deleted at exit
- steam_api.log is renamed platform.log in non-Steam games
- Added extra checks to avoid loading SteamAPI DLL in non-Steam games
22.8.17-D3D9-IK
- Changed SK's Plug-In based SteamAPI DLLs to use steam_api_sk{64}.dll instead
of the traditional steam_api{64}.dll to avoid collisions with software that
loads SteamAPI DLLs using incomplete paths. - Fixed API auto-detect prioritization issues introduced in 22.8.7
22.8.16.4-D3D9-IK
- Fixed various issues with local installs of ReShade
- Clear DXGI/D3D11 hook cache when installing plug-ins from control panel
- Disabled crash sound when games crash -after- SK's DLL has cleanly unloaded
22.8.16.3-D3D9-IK
-
Improved ReShade Plug-In support, Unreal and most other engines work reliably
w/ Lazy load order when using Global Injection.Unity almost never works loading ReShade this way... big surprise.
-
Clicking "Disable All But the Active API" in Compatibility | Render Backends
will no longer disable OpenGL when a game is using OpenGL-IK (D3D11). -
Blacklisted CrashReportClient.exe so SK will no longer render an overlay on
top of fancy Unreal Engine crash dialogs :)
22.8.16.2-D3D9-IK
- Cleaned up Input Management control panel section
- Fixed incorrect gamma on SDR thumbnails and HDR->SDR tonemapped screenshots
22.8.16.1-D3D9-IK
- Fixed SDR screenshot (lossy / Steam Import) brightness in D3D11/D3D12
- Large Address Aware patch only applies once now and then turns itself off
22.8.16-D3D9-IK
- Fixed potential deadlocks during debug symbol load
- Fixed incorrect texture cache eviction rules for uncompressed textures (Unity fix)
- Added support for SPECIALK_PATH environment variable to define the install path
(i.e. profile directories) for Global InjectionTakes precedent over the registry key (HKCU\Software\Kaldaien\SpecialK\Path).
22.8.15.3-D3D9-IK
- Added checks to make sure (D3D11) resource views are created using the same device
as their resource. - Eliminated mipmap-related assertion failure when starting Genshin Impact
22.8.15.2-D3D9-IK
-
Added conditional device input blocking:
( Enabled / Disabled (Always) / Disabled (in Background) )
Keyboard input defaults to Disabled (in Background) for new INI files generated;
for existing INI files, preference will be assigned Enabled or Disabled (Always). -
Added mipmap support to SK_D3D11_BltCopySurface (format conversion (HDR<-->SDR))
- This properly fixes character portraits in Pillars of Eternity 2
22.8.15.1-D3D9-IK
- Fixed rare crash in ImGui when opening control panel at the same time as game
polls cursor position - Improved handling of cursor clipping and window activation when game window is
in the background - Removed texture caching auto-disable in Unity engine games
22.8.15-D3D9-IK
- Worked-around bug in Martha is Dead that causes crashing at startup
- Re-enabled texture injection in games using D3D11 UpdateSubresource (...)
(i.e. NieR: Replicant)
22.8.14-D3D9-IK
- Added configurable debug layer settings (i.e. mute/break-on error) for D3D11 games
- Fixed compatibility with Spider-Man Remastered when Special K HDR is enabled
22.8.13.2-D3D9-IK
- Fixed D3D9 window hooks not being installed correctly
22.8.13.1-D3D9-IK
- Fixed potential deadlock in Unity engine games when window focus changes
22.8.13-D3D9-IK
- Fixed mouse input not being blocked when render in background is enabled
- Fixed character portraits not displaying in Pillars of Eternity 2
22.8.11-D3D9-IK
- HDR toggle in OpenGL is real-time now in all games and does not require Alt+Enter
- Additional mouse input tweaks for emulators to prevent cursor auto-hide when cursor
is not even in the game window.
22.8.10.2-D3D9-IK
- Alt menus no longer blocked while SK's control panel is open
- No longer display Alt+F4 confirmation dialog in SK's control panel when closing
child dialog boxes in emulators :) - Improved support for switching between detached and single-window mode in Yuzu
- Removed assertion message when an application's root window changes
22.8.10.1-D3D9-IK
- Added luminance tilemap output from adaptive tonemapper to HDR widget
- Fixed shadowmap issues in certain games introduced in 22.8.9.1
- Fixed shader profiler timer query reference leak in D3D11 render mod tools
22.8.10-D3D9-IK
-
Added new initialization option for Global Injection to hook D3D synchronously,
this allows Global Injection to work ~the same as Local in some games that
otherwise wouldn't be compatible with ReShade and SK simultaneously.[Compatibility.General]
AsyncInit=false
This also affects D3D9, and may allow D3D9Ex + FlipEx in some games using Global.
- More ReShade compatibility work; early load-order should no longer crash
- Fixed HDR in Crash Bandicoot so that it does not require 8-bit remastering
22.8.9.1-D3D9-IK
-
Merge pull request #21 from Braasileiro/megamixplus-1.02,
- Updated framerate unlock and Windows version check bypass for Project Diva 1.02
-
Improved compatibility with recent ReShade releases
-
Added logging/fix if games try to create typeless Shader Resource Views for
Depth/Stencil surfaces that Special K is not managing -
Fixed black screens and missing visual effects in Final Fantasy XIV and YS IX
22.8.8-D3D9-IK
- Fixed MSAA while HDR remastering is enabled in many Unity engine games
- Fixed resolution mismatches in Disgaea 5 leading to black screens at startup
22.8.7-D3D9-IK
-
sRGB Passthrough (for SDR users) is automated now, Passthrough/Strip is the correct
setting in 99.9% of cases. The warning has been removed and the option is pending
removal.For HDR, this cannot be automated and the sRGB Bypass option in the calibration
widget will remain, even after SDR Passthrough/Strip/Apply options are removed. -
Added experimental D3D11 Debug Layer integration in the D3D11 | Advanced (Debug) tab
- Unreal Engine games are not compatible with this, and you must force the layer on
using dxcpl if you want to use it in SK.
@ This is a developer-centric feature, if you don't know what the Debug Layer is,
then turning it on is probably going to utterly destroy performance for you :) - Unreal Engine games are not compatible with this, and you must force the layer on
22.8.6-D3D9-IK
- Still more sRGB and MSAA optimization for D3D11 games :)
sRGB Passthrough / Strip / Apply work as designed and usually apply immediately
- Fixed gamma regression in SDR mode in The Witness
22.8.5.2-D3D9-IK
- Fixed issue in EOS integration w/ repeating screenshots triggered when callbacks
for achievements that are already unlocked are sent by Epic - Improved sRGB compatibility in Flip Model, removed some forms of MSAA support
- Removed assertion when games try to set HDR metadata in windowed mode and are not
natively DXGI Flip Model.
22.8.5-D3D9-IK
-
Added option to disable DxDiagn.dll from loading into games.
$ DxDiag probes all available versions of DirectX and leads to problems
(especially in 32-bit software) -
Added option to disable Large Address Aware auto-patching on affected 32-bit games
[Compatibility.General]
AllowDxDiagn=false
AutoLargeAddressPatch=true -
Corrected 'SoundFile' option in Global\platform.ini and local INI files not loading
because it was blank and the INI parser was accidentally set to remove blank keys
22.8.4.3-D3D9-IK
- Added support for mouse cursor auto-hide when using 'Block Mouse Input to Game'
- Fixed incorrect mouse activation behavior when background render is enabled and
the game window is activated by clicking on SK's UI - Remove spurious calls to glClampColor (...) to clamp vertex/fragment colors,
that feature is deprecated in GL3 core profiles
22.8.4.2-D3D9-IK
-
Cleaned up D3D11 texture mod UI slightly and include additional sources
(i.e. SRV + Resource) for deducing texture and RenderTarget debug names -
Fixed potential crash dumping D3D11 textures w/ engine-assigned debug names
-
Optimized MSAA and copies between surfaces with incompatible direct copy
formats (e.g. for HDR MSAA Resolve from FP16 to R8G8B8A8).VRAM usage may increase slightly, but framerate increases significantly :)
*) This only affects HDR users, and only D3D11 performance
(and primarily games with MSAA support).
22.8.4.1-D3D9-IK
- HDR can now be turned on/off without restarting D3D11 games()!
(): ...usually - Added 'Lazy' load order as an option to Plug-Ins in the control panel, this is
not a new feature but the config UI has never shown it...
Special K (22.6.22)
22.6.22
- Added new tooltips to the HDR Widget and Display Profiler to explain calibration
- Fixed incorrect number of 32-bit values in D3D12 Root Signature for HDR processing
- Re-implemented HDR color saturation slider in ACEScg colorspace
- Fixed D3D11 render state leaks (depth buffer / tessellation) in HDR image processing
22.6.20
-
Added "Export" button to the HDR widget to export the currently selected preset for
use in other games.Load exported presets using the "Reset" button.
-
Added HDR peak white clipping configuration for displays that do not have valid EDID
See the "Profile Display Capabilities" button in the HDR widget for more info,
the goal is to find the smallest value that turns the test patterns pure whiteOnce saved, the new maximum luminance will be used for HDR range visualizations
(i.e. HDR vs. Max Local Luminance) to indicate when an image is too bright. -
Fixed Windows Version check in Project Diva's first patch
-
Fixed >60 FPS mod for Project Diva
Special K (22.6.18)
22.6.18-NOCEGUI
- Fixed black-point compensation causing HDR full white to clip in HGIG
- Fixed Steam Overlay HDR luminance control if D3D11 State Tracking is disabled
22.6.17.1-NOCEGUI
-
Hid the HDR Perceptual Boost sliders in an "Experimental" tab
-
Added Tonemap Curve / Grayscale Visualization mode to HDR widget
The goal when tuning things using this new visualization is to
get the end-point as near as possible to the top-right.( SK comes pre-tuned (preset 0) for LG OLEDS - 800 nits (HGIG) clipping )
- LG OLEDs do not have valid EDID values for max/avg. luminance, so
it is not possible to correctly tune the tonemap curve yet.
A tool to find your display's -actual- HDR clipping points will be
added in a later build; this is more for TVs than monitors. - LG OLEDs do not have valid EDID values for max/avg. luminance, so
22.6.17-NOCEGUI
- Merge pull request #8 from WallSoGB:
"R and B color switch fix for D3D9 ImGUI when alpha is disabled" - Improved WinRing0 Driver Management
22.6.16-NOCEGUI
- "Reset" now resets the active preset's perceptual parameters
- Perceptual Boost HDR mode is on by default for HDR preset #0
- Perceptual Boost parameters are now stored per-preset
- Fixed a problem with Yakuza engine games destroying DXGI adapters
SK is holding references to so the busted engine will not crash
22.6.15.3-NOCEGUI
- Standard logging is now silent when loaded via SKIF or RunDLL32, to prevent deadlock
22.6.15.2-NOCEGUI
Special K (22.6.15)
22.6.15.1-NOCEGUI
- Fallback to Documents\My Mods\SpecialK if path is unreadable or
if it cannot be created. - Special K now uses "HKCU\Software\Kaldaien\Special K\Path" to find
the shared centralized directory for profiles, plug-ins, etc.
22.6.14.4-NOCEGUI
- Perceptual Boost HDR mode now works in D3D12 titles
- Added HUD shader definitions for The Quarry for HUDless screenshots
- Fixed audio stutter in The Quarry due to wrong thread priorities
- Fixed multiple calls issued per-
ID3D11DeviceContext::UpdateSubresource (...)
when hooked and wrapped - Added protection for games that change thread priority while an SK thread priority override is active
- Merge pull request #6 from WallSoGB [ Corrected Intel CPU power and clock readings ]