D3D12 Missing Features

With the latest dx12 builds (12.30 and 1.12) I’m expiriensing a significant fps loss in dx11 games. Tested in Hitman 2, GTA 5, ETS 2, got around 40fps in places, where I get 60+ with the version from the top of the site. Lowered every setting in ETS2, and still got low fps.

I’m not surprised :frowning: A lot of extra checks had to go in to prevent the D3D11On12 overlays from destroying games.

Can you try the same games with texture caching disabled and with the “StateTrack Only When Tools are Open” box checked and the render mod toolkit closed? I expect one of those things is creating the extra overhead.

Also, the Visual Studio profiler crashes whenever I try to do any serious performance analysis :frowning: I have to spend the weekend re-installing stuff it seems. Normally I’d have a pretty good idea how all these changes affect performance, but I’ve just been guessing for the past month.

“StateTrack Only When Tools are Open” did brings back a few fps, but not all of them, sadly.

I also have massive fps drops in games.
Had to go back to the older versions of SK.

Don’t hate on my Unity game! :frowning:

SK11

SK20

I need to check this out myself later… I’ve been playing a few D3D11 titles recently where I occasionally drop below the capped 60 that I’m targeting, and the version of SK might be causing it?
:thinking:

Could be!
This new version of SK also seems to not mess with my rumble anymore and it works in games again, shame for the drops for now.

Could be Unity’s use of debug names in retail builds of games. I have and pretty regularly test that game for its HDR stuff, I’ll run it through a profiler and take some performance measurements when I get the Visual Studio profiler to stop crashing :slight_smile:


Ugh, WTF? I just had a 5 minute load screen in that game because it was waiting for Steam, but forgot to actually initialize SteamAPI. That can’t be good for performance either.

That seems exceptionally lengthy!
I’ve always had it load pretty breezy and I’ve relaunched it hundreds of times by now, pretty sure about that.
Oh I was gonna ask - do you have SK UI Rumble on the ALT + F4 prompt? I just had a controller get stuck in rumble after pressing “Yes”. Maybe you can block it for that window if it’s on?

It does toggle the UI navigation mode on, which in theory would cause pressing a button to rumble on the gamepad, but doing that would simultaneously exit and that should stop the rumble motors if the software managing your gamepad is behaving correctly. Maybe Steam’s to blame?


For those mentioning degraded D3D11 performance, does this improve the situation any?

SpecialK64.7z (7.7 MB)

Better. The same spot, i was getting 40 before.

Screenshots

https://steamuserimages-a.akamaihd.net/ugc/1765941657169943197/B977B0370510AC8AAB659A1DE9A49EEB0EDEE01C/
https://steamuserimages-a.akamaihd.net/ugc/1765941657169943045/798D4F69F9BB12D9C6DCDA4D6882EC5881FA8907/

Funny, how it’s exactly 30 fps difference.

how to hide specialk top screen info at game launch ?

Within the Special K control panel there’s a “show banner on launch” duration or something like that, which defaults to like 5 seconds or 20 seconds. Setting that slider to 0 seconds hides the banner entirely.

21.01.28

I am fairly confident these builds will fix the D3D11 perf. issues:

   SpecialK64.7z (7.7 MB)
   SpecialK32.7z (6.5 MB)

Just a heads up, I am switching version numbering to YYYY.MM.DD, and using Discord to distribute test releases. It is a little bit more organized and does not have the same file size restrictions as the forums do.

I need to fix some HDR issues that crept in while Cyberpunk 2077 was getting everyone’s attention, and then I think 21.02.xx will become the official release.


21.01.28
========
 + Fixed D3D11 performance issues caused by 20.12.29's D3D11On12 safeguards
 + Added ability to customize HUD toggle keybind (refer to Global/osd.ini)
 + No longer display latency stats for non-Fullscreen / Flip Model SwapChains

21.01.27
========
 + Correctly handle D3D11 texture mods that change format: BC3 -> BC7
 + Improve support for D3D11 texture mods for textures with partial mipchains

21.01.11
========
 + Added Option to Clamp Negative Texture LOD Bias to 0 in D3D9

20.12.30
========
 + Added option to disable screenshot sound
 + Added disk free space check to screenshot capture
 + Added option to copy screenshots to clipboard
 + Reduced volume of screenshot sound
 + Added outlines to SK's UI elements

20.12.29
========
 + Added support for switching between D3D11/D3D12 on-the-fly in Serious Sam 4

  >> Should assist with D3D11On12 and Ansel compatibility in normal games that
       don't support this bizarre render API hotswap feature

 + Fixed framerate uncap in NieR: Automata

20.12.28
========
 + Disabled auto-update checks on all game-specific plug-ins built-in to SK

20.12.27
========
 + Fixed uPlay Overlay Support in D3D12
 + Fixed UE3 infinitely shrinking windows when removing borders
 + Disabled Haptic Feedback unless using Gamepad Input in the control panel
 + Alt+F4 Capture only provides a confirmation dialog if the game would
     otherwise block Alt+F4 functionality, or SK's control panel is open.
 + Fixed Mouse Input Capture in Dying Light
 + Added Screenshot Sound
 + Added HDR Screenshot support to D3D12

0.12.0:
-------

 + Added preliminary D3D12 Support

  >> Has compatibility issues with some non-native D3D12 overlays
       (i.e. RTSS and Steam), but works correctly with native D3D12
         overlays (i.e. Discord)

 + Temporarily disabled Tobii Eye Tracking features (and its Widget)
 + Disabled D3D Shader Compiler Hooks (e.g. nop D3DStripShader)
    >> Tends to break D3D12 engines that use persistent shader caches

0.11.0.52:

 + Added HDR minimum luminance (black level) to tonemap for scRGB
 + Added workaround for Ogre games that load CEGUI before Special K does
 + Fixed Racing Wheel Input not responding when SK hooks DirectInput 8
 + Added sRGB Bypass Mode for SDR games that need sRGB removed for Flip Model

  >> Games that used to be too dark can now use Flip Model

 + Changed HDR Display Name Query to use NvAPI on compatible systems to
     correctly map DXGI Display Handles to EDID Display Names
 + Added HDR Widget option to control "Implicit sRGB" gamma processing,
     this is needed for many Unity engine games that would otherwise be
       too dark to do any kind of processing on.

 + Fixed Mute in Background Mode when combined with "Continue Rendering."
 + Fixed Background Rendering Mode in many games
 + Added VRAM Usage to HDR Remastering Checkbox Tooltips
 + Added the same Yakuza reference counting fixes needed to keep 0, Kiwami 1 and
     Kiwami 2 from crashing to Like a Dragon -- somebody fix the damn engine (!!)

 + Added button to Reset HDR Presets to HDR widget

  >> Later versions will add buttons to import and export presets from previously
       configured games

 + Fixed widget slider / dropdown behavior so that it blocks mouse input to game
 + Added DXGIGetDebugInterface1 (...) to SpecialK{64|32}.dll for games that need it

 + Corrected near-black noise when processing sRGB LDR images for HDR tonemapping
  --------------------
  * Care must be taken when using sRGB gamma if the input image may have negative
      color values, because sRGB gamma's x*x*x property preserves negative values.
  --------------------
 + Added support for HDR10 image processing so that SK's HDR widget can control
     games with official HDR support now (usually does a better job :P)

   >> When running a game with official HDR support, most are HDR10 and you
        will need to run SK's HDR widget in HDR10 Passthrough or Filmic mode,

        Expect to target ~10,000 nits because games that use HDR10 don't
          actually bother to encode luminance levels into the signal.

 + Boosted black level when using ACEScg tonemap mode for more shadow detail

 + Fixed issues preventing Ys8 from starting (again...)
 + Fixed a bunch of anti-debug problems in various Ubisoft games

 + Added more details to latency monitoring in framepacing widget

 + Framerate Limiter now defaults to Screen Refresh if no limit is set,
     for the framepacing widget's scale

 + Added Gamut Overshoot Visualization
 + Added HDR Overbright Bit Visualization

 + Added support for loading 'default_{SpecialK|<api_name>}.ini' from
     Documents\My Mods\SpecialK\Profiles\<game_name> and
     Documents\My Mods\SpecialK\Global\

    >> These will be loaded the first time you launch a game, or after
         resetting the game's config. Global is loaded first, then profile.

 + Fixed uninitialized D3D11 State Block pointer in Thread Local Storage
 + Fixed D3D11 RenderTargetView HDR Format override for 2D Array Textures
 + Fixed GetProcAddress (...) caching that causes input-related issues in
     games that use the wrong XInput DLL for the system they are running


0.11.0.51:

 + Fixed Tales of Vesperia Bug Regression in 0.11.0.48+
 + Removed DXVK compat. hacks for DXGI SwapChain overrides

  >> The only known remaining oddity when you combine SK w/ DXVK is that SK's
       framerate limiter must be configured with busy-wait behavior
         ('Timing Accuracy' Slider: 100% CPU) or it cannot throttle Vk acquire.

 + Help menu no longer links to Steam; it now points to discourse.differentk.fyi
 + Removed accidental inclusion of dgVoodoo2 in SpecialK.7z; if you want/need it,
     consult Google ('shitgoogle' or whatever Dege is referring to it as now, lol)
2 Likes

Perhaps that build could be on the Discord channel too unifying it a bit with the latest overall WIP version. :slight_smile:

Unless I’m just not seeing it it’s the January 27th build(s) and the slightly newer Ryza 2 fix and a bunch of builds in the support channel and the two newest here from the 28th.

EDIT: Although I suppose the way to the Discord channel is also through these forums usually so it could still work.

But emulators are using Vulkan! RPCS3, CEMU, Yuzu, Ryujinx! It would be an amazing dream to play PS3, WiiU, and Switch games in HDR!

For those and Nvidia owners, Windows 11 and Auto-HDR exists.

Auto HDR doesn’t work with Vulkan.

Answered in the more appropriate topic: