Tags give the ability to mark specific points in history as being important
+ Added Percentile Analysis to Framepacing Graph + Fixed issues with Unity games not correctly exiting due to the CSteamworks SteamAPI nonsense.
+ Fixed shell32.dll hook issue in Steam client that prevented games from restarting
+ Ansel is automatically disabled in games that are whitelisted (many of them should not be). Although I cannot reproduce any compatibility issues whatsoever with Ansel, this was the most economical approach to solving rampant reports of Ansel crashing games. -- If, like me, Ansel doesn't cause any compatibility problems on your system, you may re-enable it from the Help menu. + Memory performance data acquisition no longer uses WMI + Added a Compact Working Set button to the thread widget, to reduce memory overhead; >> The ideal use-case would be prior to switching applications to Chrome or other memory intensive applications. > I may add an option to automatically do this on alt-tab in future versions + Added in-game link to PCGamingWiki for any Steam game (see Help menu) + Added resolution scaling preferences in terms of screen % to custom ReShade + Added an optional background framerate limit that applies when running in the background + Changed name of [SK] Primary Render Thread to [GAME] ... to clear up misconceptions that it is a thread created, owned or managed by Special K. + Fixed incorrect HDR detection in some Unreal Engine 4 games + Fixed buffer overrun when fetching > 384 friend achievements + Fixed mouse cursor auto-hide feature not actually auto-hiding in most games + Fixed achievements not unlocking in A Plague Tale: Innocence and possibly other games + Fixed issue preventing EULA from showing on screen if an assertion popup was triggered first + Fixed unresponsive text input in Special K's console when (to-game) input blocking is enabled + Fixed incorrect API auto-detect in many games if run for the first time with no config file in v 0.10.1 + Fixed some games treating disabled keyboard input as though buttons were being held down constantly >> This problem only affects whether a game draws KB&M or Gamepad icons, actual gameplay is unaffected. > For future developer reference, if a game calls GetKeyState (...) and you wish to block it, the proper way to do this is to cast KF_UP to SHORT and then return it. + Refactored a ton of code to modern C++17, from what had been mostly C++ Duct Tape compliant code. >> This is an ongoing process, but the codebase needs all the new language features that I have been neglecting or it is going to collapse under its own unmanageable weight at some point.
TempCapcomFix Test Release for Monster Hunter: WorldRelease TempCapcomFix
For best results, get the game to boot w/ Flip Model Presentation (Borderless Fullscreen)
- Presentation Interval: 1
- Backbuffers: 3
- Maximum Device Latency: 4
Mouse and keyboard frame time variance should improve.
( D3D11 ReShade and various mod features for D3D11 games may not work correctly starting with 0.9.23, I will work to get that resolved as quickly as I can ) + Added CPU clock rate to CPU performance widget; will add core parking and thermal throttling details in a future release for Windows 10 users. + Improved recursive file search (SteamAPI DLL location) performance + If SpecialK32.pdb or SpecialK64.pdb are not present in a local install, SK will attempt to load these form Documents\My Mods\SpecialK\... + Sped up Special K boot procedure pretty singificantly + Tweaked inefficient Texture Residency driver queries + Fixed situations where SK would fetch vertsion info from GitHUb multiple times + Fixed sRGB -> RGBA buffer override for Unity games to use flip model + Fixed various inconsistent ANSI / Unicode text issues in Unity (debug log) + Added CPU core spoofing to the framerate limiter for broken Unity games + Added HDR luminance control to Special K's OSD so you can see it in an HDR game :P
+ Added render-ahead option to framerate limiter to tradeoff latency vs. rate accuracy + Fixed achievement popup showing up twice in Smart Capture mode + Various D3D11 Deferred Context optimizations + Added button to rebalance thread -> CPU assignment to the Threads widget + Added data options to the GPU widget's config menu + Added Fan RPM to GPU widget + Config files only write to disk if they are changed now
+ New "Smart Capture" Mode for Steam Screenshots ================================================ + High-performance screenshot capture code that does not cause games to hitch *) Compress lossless .PNG screenshots with or without Special K's OSD >> Steam cannot store .PNG screenshots, so any lossless screenshots are stored separately and you can manage these files using SK's control panel. *) Set the default Steam screenshot behavior to show/hide SK's OSD *) Take HUDless screenshots in D3D11 games (not finished) *) Compresses the JPG image imported to Steam using a slightly more advanced compressor for better image quality. ** All of these features are orders of magnitude faster than the Steam overlay's built-in screenshot code is! Use them all and still get better performance :P --------------- @ Current support is limited to D3D11 with no on-screen MSAA, sRGB or HDR framebuffers ---------------
0.9.20: (.2): Fixed WMI Memory Perfmon not using the correct PID (.2): Added experimental SteamAPI callback thread-sync avoidance for AC:Origins (.2): Fixed SteamController issues in Nioh (.1): Added proper (keyboard layout-aware) tooltips for prev/next texture list in D3D11 render mod toolkit. + Added D3D11 Constant Buffer injection for Vertex/Pixel/Geometry/Hull/Domain shaders >> Allows the manipulation of a game's material system in real-time in the mod tools @ Compute Shader injection is disabled in this release for stability, it will be enabled in a future release. + Fixed Geometry Shader state leak in D3D11 UI render code for certain games + Bundled a new build of custom ReShade with improved support for games that render into different format / resolution rendertargets than they use for their swapcahain + Improved support for D3D11 texture resampling (mipmap generation, on-the-fly compression) incuding HyperThreading optimization. + Altered ImGui vertex processing code to align dynamic memory allocation to a 16-byte boundary for improved performance in games that use heavy CPU-side transform. ------------------------- D3D11 Constant Buffer injection is still experimental and will improve over time, it is almost identical in function to the D3D9 feature but D3D11 has significantly more complicated memory management requirements that make optimization harder. Altering vertex shader material state is not recommended due to the number of draw calls made and vertex instancing, focus most experimentation on pixel shaders
0.9.19: (.1): Fixed hook address cache invalidation if Windows updates a system DLL + Replaced SteamAPI battery monitoring with actual Win32 API code, and now indicate when a laptop battery is charging or discharging and how much runtime is left in the framepacing widget. + Fixed various issues with SpecialK.DENY files and local / global injection co-existence (Ctrl + Shift compat. menu works much better). + Improved support for BC7 texture dumping and injection + Added mipmap generation for Ys VIII + Added shadowmap resolution boost for Ys VIII + Fixed Ni no Kuni 2 memory patterns for anti-stutter mod + Added x64 DebugRegister listing to crash handler + Added bypass for broken Win32MiniDumpInit in Steam's latest DRM wrapper; ( affects 32-bit games only. ) + Added preliminary Ansel overlay activation detection / prevention 0.9.18: + More work on MinHook stability / performance -- planning a few pull requests! ---------------------------------------------------------------------------- + Fixed D3D11 texture cache (missing descriptors) in Elex when trees become unbalanced; fullscreen mode transition in this and other games is safer now. + Fixed Steam achievement server->client callbacks in Star Ocean 4 and The Witcher 3 + Turned D3D11 deferred isolation off by default since most games do not need it + Added real-time stack traces for all running threads to the thread debugger + Rewrote debug symbol loading code for better multi-threaded performance + Changed Thread-Local Storage to Fiber-Local Storage for UWP compliance + Added validation of NtLdr DLL paths >> Detects AppCompat shims that makes games behave unpredictably + Fixed NvAPI issues in some third-party (vidcap) software that could break hardware monitoring (fan RPM in particular). ===== *** Fixed CBT Hook Teardown Broadcast -- it was not running in the 64-bit builds and caused many WER faults when upgrading Special K. *** =====
+ Finished re-writing MinHook's injection core to use MUCH more efficient thread suspend / resume. >> Boot up in some applications is 2-3x faster now and that is 2-3x less time for third-party injection to poke its nose where it does not belong while Special K is rewriting application code :) + Fixed various CBT hook issues in global injection; for users who frequently start/stop (why?) injection, things should behave better. + Added Exceptions Raised counter to the Thread Monitor widget; debug feature. >> Any exception counted here is the "continuable" sort; they generally pose no threat to software stability but high exception counts usually indicate a software defect.
(.1): Switched to D3DCompiler_47.dll (built-in) (.1): Eliminated unnecessary lock contention during texture uploads (.1): Fixed Alt+F4 menu in games that mixup Virtual Key Codes with Character Codes + Added workaround for systems that do not dispatch user32.dll system calls through win32u.dll + Added D3D11 Texture Cache residency management, to reduce cache pressure on textures that the driver isn't storing in VRAM. + Added D3D11 Deferred Context Isolation checkbox to D3D11 settings + Added SteamAPI callback count to thread monitoring info
+ Added D3DCompiler_43.dll, D3DX11_43.dll and D3DX9_43.dll as compressed .7z archives that will be unpacked to a game's directory if a user does not have the June 2010 DirectX Redistributables installed. >> In theory I could now start using D3DCompiler_47.dll, but I'll stick with _43 until I need the more advanced features for D3D11 shader modding.
(.3): Added disk read/write info to thread tooltip (.2): Added memory info to thread tooltip (.1): Assigned names to unnamed threads using debug symbols + Added a new Threads widget, that lists performance per-thread (kernel/user) and can even allow you to suspend individual threads. >> Suspending threads is dangerous, I expect this feature will be used for mod developers only. There is a high likelihood that you will have to restart a game to recover after using that. + Moved SteamAPI support DLLs to PlugIns\ThirdParty\Steamworks\... + Added proper Unicode filesystem path translation to SKIM64 for Steam manifests
+ Updated build of SKIM64 allows installation of standalone Ni No Stutter mod - Ni No Stutter is built-in to this release of the global injector + Reduced memory consumption for D3D11 shader state tracking + No longer write ReservePercent to ini files, it is being phased out + Remove Merge-Only Cache Policy from D3D11 Texture Cache
(.1): Fix D3D11 Shader Mod Commands (i.e. D3D11.ShaderMods.ToggleConfig ...) + Fixed injection-blacklisted games failing to start while global injection is active + Fixed DLL init. issues with Far Cry 5 (_after_ Easy Anti-Cheat is worked around) + Improved support for shader state tracking in multi-threaded D3D11 engines + Added audio gain control (+dB) to volume management for hardware that supports it
0.9.10: + Dynamically adjust NvAPI monitoring thread priority to prevent rare hitching when the render thread's priority is != NORMAL + Added various options to make Ni No Kuni 2 less annoying; refer to control panel + Rolled up all of the changes from the standalone FFXV version (0.9.9) 0.9.9: (.15): Add logging of unexpected ref. counts on texture data to locate FFXV leaks (.14): TargetFPS applied at startup again (.13): Add merge mode to texture cache -- only prevents duplicate resources (.12): Sleep(0) on render thread -> SwitchToThread(); useful for i5 users (.11): Workaround for threads that try to skip attach notifications and corrupt TLS (.10): Alternate compiler options for better support with Ansel -- again (.8): Add persistent storage of settings introduced in .6, and explain them [They are actually applied when the engine starts said thread now] (.6): Add options for thread scheduling; can lower render and VSYNC threads to help people with fewer CPU cores in FFXV (.5): Anti-Debug Workaround for FFXV (.3): Correctly packed 64-bit version of CEGUI into 64-bit builds :P (.2): Fixed floating ImGui widgets not saving position in osd.ini (.1): Fix issue preventing Special K from identifying and assigning its own threads their initial priority (all were running NORMAL but most are designed to run at lower priority). + Disabled compiler options known to cause problems with Ansel; forced to replace them with options known to cause issues with MSI Nahimic. + Prevent FFXV from running SteamAPI with TIME_CRITICAL scheduling and starving more important threads that actually use the CPU productively
0.9.9: (.3): Correctly packed 64-bit version of CEGUI into 64-bit builds :P (.2): Fixed floating ImGui widgets not saving position in osd.ini (.1): Fix issue preventing Special K from identifying and assigning its own threads their initial priority (all were running NORMAL but most are designed to run at lower priority). + Performance may improve for some users + Disabled compiler options known to cause problems with Ansel; forced to replace them with options known to cause issues with MSI Nahimic. + Prevent FFXV from running SteamAPI with TIME_CRITICAL scheduling and starving more important threads that actually use the CPU productively
(.3): Added error message on systems missing June 2010 DirectX Runtimes (.1): Disable a user's ability to perform software updates using the in-game config menu on installs done without SKIM. (.1): Add option to disable DXGI_PRESENT_TEST swapchain present for FFXV + Added SteamAPI rate throttling to fix resource load hitches in FFXV >> Right-click the SteamAPI Frame counter in the control panel to access: -1 = Unlimited (will hitch) 0 = Disabled (no idea what will happen, but probably not good) *8 = (Suggested max. for FFXV) + DLL static initialization cleanup (most global scope data is now scoped) (Dramatic global injection performance speedup)
+ Added DirectXTex DLL Exports: * SK_DXTex_GetMetadataFromDDSFile * SK_DXTex_LoadFromDDSFile * SK_DXTex_CreateTexture ( Plug-in Authors: Use these instead of D3DX11; refer to updated UnX plug-in for example code ) -- + Fixed ReShade shim loader (126.96.36.199) not correctly invoking LoadLibraryW + Reduced volume of crash sound and added a MessageBox if sound is muted + Added version info to the kernel DLL unload trace log + Added render API and crash info to global DLL's shared data segment
=========================================================================== IMPORTANT NOTES REGARDING Final Fantasy XV: ------------------------------------------- If you opt to use texture caching, set the limit to your entire VRAM capacity, otherwise it will fight with the game's internal cache and cause stuttering. I cannot fix this in time for the game's launch and have disabled texture caching by default for this game as an interim solution. *** Texture modding in D3D11 requires caching to be enabled, so if you see no textures in the mod tools, it's probably because caching is OFF. =========================================================================== + Re-enabled IsDebuggerAttached (...) spoofing to allow FFXV to be run through a normal debugger (i.e. not Cheat Engine) without bailing out + Optimized D3D11 shader cache for games that create the same shader concurrently across multiple threads