Special K v 0.11.0.50 - Improved Fullscreen Flip

BTW, you can already do 120 Hz with a 2080 Ti on these TVs. It requires a DisplayPort 1.4 → HDMI 2.1 adapter, which will run you probably $50-75 (they’re active signal adapters), but once you’ve got that you can do 4K/120/12-bit 4:4:4 HDR for a fraction of the cost of a new GPU.

About the only game I have in my library that can sustain those framerates though is DOOM Eternal, and it’s an RTX 2080 Ti K|NGP|N, so faster than RTX Titan :stuck_out_tongue:

This is why I will be upgrading to an AMD 6900 XT when they go up for sale. That and I am really eager to work with an AMD GPU for the first time in about a decade. I have a lot of code that needs updating for HW info monitoring, etc. on AMD.

1 Like

Hopefully the RDNA(2) instructions and API compatible software won’t be too cumbersome or problematic. Unwinder had a lot to say about support for that compared to NVAPI but he tends to be pretty direct about some of his views and that sort of stuff ha ha.

EDIT: As to the driver and overall situation it’s improved but there are issues still that AMD would want to have resolved though a part at least comes from hardware issues with RDNA(1) though the breaking changes and issues with GCN is a thing too.

At this point, it’s basically user preference. Borderless window mode with flip model can basically achieve the same performance as exclusive fullscreen, with improved frame pacing and whatnot when using an FPS limiter. Beyond that, borderless mode also of course has faster multitasking/Alt+Tab and such.

I never use exclusive fullscreen mode any longer since Special K got the ability to enforce flip model in all DirectX 11 games. It’s only borderless window mode + flip model presentation override through SK for me.

The magic of flip model presentation is that it doesn’t need Nvidia’s glitchy “G-Sync windowed mode” hack to function – it allows VRR to function entirely to 100% when Nvidia’s Control Panel is left on Enable for full screen mode for G-Sync.

Which is also one of the reasons I friggin love flip model presentation. I’ve only had major issues with Nvidia’s “windowed mode” support – with massive performance decreases that required restarts to fix and weird issues with the refresh rate being synced to a background application.

Beyond that, yes, essentially throwing SK at a game and enabling flip model presentation is essentially all that’s needed to get proper VRR in borderless window mode using G-Sync without using Nvidia’s shitty windowed mode hack.

Documents\My Mods\Special K contains global profiles and settings for all Special K versions. There’s really no need, but if you really want to reset the whole installation to a clean install you’d remove all contents of that folder and then download and extract Special K straight to that folder using the above Downloads link on top of this page.

1 Like

Awesome…

I can now re-process the native HDR in 99% of games that have it. The HDR10 and HDR10 Filmic tonemaps convert the game’s 10-bit HDR to 16-bit scRGB and then do post-processing, this could actually serve as the foundation for an HDR version of ReShade in fact. But I don’t have too much interest in that at the moment, so they’d have to approach me.


And with that, I intend never to support HDR10 for actual rendering =P Converting to scRGB and doing processing in the altogether superior colorspace FTW.

2 Likes

Hey, Kal. Thanks for the quick reply. Hope you’re doing well. :slight_smile:

  1. Yeah, you may recall that I did a long write-up on Reddit bemoaning devs who simply don’t read or can’t understand the documentation available for engines and APIs, and still mess up their rendering. I even linked to it on the Steam thread. I guess preferring FSE is just an old habit that needs to die, at this point;

  2. I got my first G-Sync-compatible display when the C9 received the update to support it, so I had a lot of catching up to do, learning all of its quirks. I realize G-Sync for windowed apps is still buggy, and, for that reason, I’ve read that it’s recommended to enable that on a per-game basis, using Nvidia Profile Inspector.

You’re saying that G-Sync should work for windowed apps (borderless windowed or DX12 games, which don’t offer a true FSE mode even when they have that option in their settings) even when it’s only enabled for full screen mode in the Nvidia Control Panel (and leaving both “Application mode” and “Global mode” at their default “Fullscreen only” in NPI)? If so, that’s great news. One less setting to toggle manually with each new game. :stuck_out_tongue:

  1. OLEDs rule. I’ve been using them exclusively since at least 2015. I’m on my third one. :smiley:

I know some users swear by BFI, but I’m really sensitive to the flickering at 60Hz, so, unfortunately, it’s not an option for me. :frowning:

As for the DP 1.4 > HDMI 2.1 adapter, I was really excited for it, until people actually got it in their hands and started writing about its issues. What turned me off the most was the fact that it’s also not compatible with G-Sync. Since I can’t handle the flickering with BFI, G-Sync is the next best thing. Thanks for the recommendation, though.

Oh, and you’re right that most games can’t sustain those framerates even with beastly GPUs. I’ve got the Aorus Xtreme Waterforce 2080 Ti - the second best Turing AIB card, behind only your K|NGP|N. Gotta love those 240mm rads. :wink:

  1. Awesome! What about old independent installs, from the links you used to provide in the Steam thread? I still have a “SpecialK” folder under My Documents > My Mods. Should I just delete those folders entirely?

In reality, what’s buggy is Nvidia’s DWM hack that they call “G-Sync windowed”.

Proper G-Sync windowed – that being borderless games using flip model presentation that covers the whole monitor – have always worked fully without relying on Nvidia’s DWM hack option.

Edit: I forgot to mention, but basically Nvidia’s DWM hack is typically used (and required) to enable G-Sync for windowed applications using legacy presentation mode so the BitBlt presentation mode.

That’s why flip model presentation override in SK is so important – it forces those games using that presentation mode in window modes (basically the vast majority of games) to use flip model presentation instead, which supports G-Sync/VRR out of the box without Nvidia’s DWM hack.

1 Like

On a similar rant, developers’ continued use of BitBlt presentation mode in window modes is what in parts fuels my ongoing dislike for games with anti-cheat protection that can’t be (easily) disabled in what is mostly single-player titles.

The latest Far Cry title was one of those, and recently Genshin Impact have that sort of anti-cheat protection as well.

Typically speaking modern DRM solutions (so not anti-cheat protections) don’t have an issue with Special K, and so SK can be easily throw on games and flip model forced to get that optimal windowed G-Sync experience.

But anti-cheat protections? Nooooooo, they !“#%” hate Special K and it is often cumbersome to properly disable or work around the protection to be able to enable what is essentially a performance optimization – and it often carries inherent risks of account bans or whatnot.

I really don’t like devs that force the use of anti-cheat protections in singleplayer titles because of that :frowning:

1 Like

That’s because that driver feature has existed for a fundamentally different reason :slight_smile:

It was created so that when you have multiple windowed applications on screen and one of them is using a D3D graphics API for rendering, the one rendering in the foreground can change the DWM’s composition queue. In other words, it can break all other windows so that it can draw at any rate that it wants.

That was never a feature that Microsoft supported until the Tearing Flag was introduced to DXGI in Win10. It’s still not a very useful feature, but I’m sure somebody wants a DWM that can be broken depending on which window is in the foreground. I just am not among those people.

1 Like

Aemony! Good to see you. :slight_smile:

I was replying to Kal’s post and didn’t see that you’d also replied, sorry!

I never use exclusive fullscreen mode any longer since Special K got the ability to enforce flip model in all DirectX 11 games. It’s only borderless window mode + flip model presentation override through SK for me.

What about older games that don’t offer a boderless windowed mode, but just regular windowed? Is Windowed Borderless Gaming still a valid tool to make them borderless?

Also, is SK compatible with earlier versions of DX (10, 9), or just 11? Last I checked, it wasn’t really compatible (or needed) with DX12 and Vulkan, but can we still use its framerate limiter for titles that run using those APIs, at least?

Beyond that, yes, essentially throwing SK at a game and enabling flip model presentation is essentially all that’s needed to get proper VRR in borderless window mode using G-Sync without using Nvidia’s shitty windowed mode hack.

Good to know, thanks for the extra info! Glad to hear I won’t have to mess with that setting or even use NPI anymore.

Documents\My Mods\Special K contains global profiles and settings for all Special K versions. There’s really no need, but if you really want to reset the whole installation to a clean install you’d remove all contents of that folder and then download and extract Special K straight to that folder using the above Downloads link on top of this page.

Gotcha, thanks once again!

If it is a DirectX 11 game then SK should be able to turn them into a borderless mode quite easily.

The only difference between the two modes is that borderless hides the window borders of the window — otherwise they’re functionally the same.

No support for DX10.

DirectX 9 is supported but flip model (called DirectX 9Ex) might not be something that can be forced for many of those titles.

dgVoodoo 2 can be used to convert DX9 to DX11 which might also be used in conjunction with SK (with varied success depending on game).

DX12 and Vulkan is supported so far as being able to limit the FPS, I think, but SK can otherwise not draw anything in those APIs so you’re limited to other OSDs to monitor SK’s impact, as well as have to edit the config file outside of the game manually.

1 Like

Is there a generic set of parameters that I can add to the INIs of DX12 and Vulkan games just for limiting their FPS? I’ve tried copying settings from another title (Horizon), but that didn’t work. Oh, and if I were to create empty files in their folders, based on the API of those games, what should I name them, in order to make SK work?

Also, I did some testing with Jedi Fallen Order, and noticed a considerable loss of performance when going with SK + borderless, instead of my usual FSE setup. “Waitable swapchain”, in particular, caused some major frame drops.

The low latency setting located within the frame rate limiter tab caused more unstable frame times, as advertised, and wait for VBlank also severely impacted performance. There was no difference between enabling VSync in-game or in SK.

G-Sync was enabled, and I capped the frame rate at 63 in SK (my panel’s resolution and refresh rate are 3840x2160 and 66Hz, respectively). Changing the backbuffer and max device latency didn’t make any difference. Am I doing something wrong?

Finally, I already had Reshade installed and configured for that game, but can’t seem to enable any filters when using SK. Is there something more to that? I tried enabling the Reshade plugin in the GUI, but the first option didn’t “stick”, only the second one.

No idea, sadly, as I don’t really mess with DX12 games myself yet. Even in Horizon I eventually just threw RTSS at it since it had an actual overlay I could see its impact through.

  • As far as I can tell though the DLL filename needs to be DXGI.dll since it allows SK to hook D3D12 through the shared DXGI interface that both it and D3D11 makes use of.

Vulkan is even less uncertain – I don’t even think Special K technically have the DLL API name enabled for it yet. Based on the source code it doesn’t seem as if it’s enabled. Based on other sections of code it used to be vulkan-1.dll but I imagine it technically does not work at all nowadays.

1 Like

Yeah it’s supposed to be a extension or layer probably means global injection only once supported though wiring up the layer via Reg Edit like with ReShade could work.
(Vulkan-1.dll I think should only really be the loader / runtime and the Windows system folder stuff this uses alongside the driver Vulkan code part of the full support here for this API.)

Rivatuner and I’d imagine other extensions have a thing though where everything would go into Vulkan once that’s set up which might not be optimal though SKIF and enabling and disabling adding/removing this layer would resolve that as required. :slight_smile:

For D3D12 I use DXGI.dll for SpecialK and D3D12.dll for ReShade when going through Horizon Zero Dawn had to go with the log files and setting some of the more noticeable configuration changes to see if SpecialK applied I’d imagine macro binding the framerate limit figure would also work well for that purpose. :slight_smile:

EDIT: Wonder if a toggle between various values works, press F2 or whatever multiple times to go between 10, 30, 60, 120 FPS and 0/unlimited but it might be a bit cumbersome if you set up too many though it avoids using a lot of other keys or combination keys instead.
(10 being what I used to confirm yeah the FPS limiter works. :smiley: )

EDIT: Guessing for as long as you can’t easily play capture the swap-chain with these API’s support is less of a priority as some fun overrides and functionality rely on replacing or hooking certain bits of the D3D / graphics API code and functionality though but other stuff do work.

Vulkan would probably need new functionality entirely though if DXGI’s less of a thing here.
D3D10 as a existing API but Kaldaien has said it’s not getting supported so there’s a few games stuck on this API that won’t work too well.

D3D9 supported up to certain things or wrapping it and older through DXVK or dgVoodoo2 into D3D11 perhaps potentially Vulkan but then you’d not be able to utilize SpecialK and dgVoodoo2 to D3D12 would also miss certain functionality.

A few newer games still use D3D9 for some reason or another, D3D10 I think was some few newer titles after Oceanhorn which I previously thought was the last game to utilize this API.

Performance degrades for me in Far Cry 4 and most noticeable in Postal 4 when using specialk. I lose around 20fps on average. Any ideas what could cause thise?

XInput probably, it kills performance in all Ubisoft games.

But that should happen without SpecialK too and SpecialK has that mask or what it was for XInput devices which I think should mitigate the problem so maybe that could help?

Earlier D3D11 game lots of NVAPI stuff maybe try without flip model and such overrides if enabled and see what works I can’t think of anything particular otherwise.
(The whole Hairworks thing, lots of shader effects and what not and how else NVAPI’s utilized plus a revamped Dunia engine since Far Cry 3)

EDIT: Not sure if there was much in the ways of engine problems or such, hairworks can cause some memory leakage and crashing occasionally but that’s not SpecialK related then there’s the UPlay overlay and how that might behave but it’s the later titles that start utilizing LED’s or head tracking extensions so nothing with external libraries or other software hooks here otherwise.

but my performance is fine without specialk though?

See if disabling SK’s use of XInput helps:

Sadly not. Still losing fps