D3D12 Missing Features

I have finally implemented basic support for D3D12 in SK’s UI, and now I expect a lot of unintentionally missing things :slight_smile:

I am creating a Wiki of known things that need to be implemented, and would like users to add anything that seems to be missing.


  1. HDR Luminance Control
    1.1 Finished for SK’s UI (11/22/20)
    1.2 Incomplete for uPlay / Steam / Discord
  2. Text OSD / Command Console
  3. Steam Achievement Popups (no ETA)
  4. HDR Screenshots
  5. G-Sync Status [ Impossible, due to incomplete driver API ]

HDR Retrofit Support:      -Finished-      (11/26/20)


64-bit D3D12 Compatible Test Builds:

-0.11.1.1 (12/19/20)-    SpecialK64.7z (7.6 MB)

Fixes HDR screenshots; generally more compatible with Steam Overlay, but RTSS is hit or miss.

-0.11.1.0 (12/14/20)-    SpecialK64.7z (7.6 MB)

Older test release; use only if new version behaves weird.

16 Likes

Hi, first time user here, i am glad to see the UI for dx12 apps being developed, also tested it and works on hzd, my only request is
Texture injection tools that the dx11 version of special-k had as more and more games are switching to dx12, texture injection is getting impossible and lack of mod tools don’t help either.

Again, Thank you.

Yeah… D3D12 texture modification is going to be rough. It’s very complicated just uploading textures in the first place, but then I’d be expected to do it with the same sort of performance as in D3D11. It’s a huge challenge – I may be able to pull it off, but it’s among the more impractical features I think :-\

I’ll probably explore HUD shader mods first and get a feel for that, see what kind of performance overhead render state tracking in D3D12 has and how difficult it will be to make this all work in heavily multi-threaded D3D12 engines.

2 Likes

Hi, got MHW dx12 working. Enabling Flip Discard is another thing, always dxgi.dll error. By the looks of it the game uses “Sequential (Flip)”

Yep, they did the bare minimum required for D3D12. You can override it to Flip Discard if you want :slight_smile:

HDR support for SK’s UI is complete for D3D12.

Next I will port HDR screenshot and HDR retrofit support.

6 Likes

I don’t think NvAPI supports G-Sync status in D3D12 :-\

I forgot just how blurry G-Sync is, lol. I’d rather have 50 FPS Black Frame Insertion and actually be able to see details on objects in motion than use G-Sync to try and hit 100ish FPS. Back off G-Sync goes :stuck_out_tongue:

Hmm thought it would be in the documentation but that just states D3D9 to D3D11
https://docs.nvidia.com/gameworks/content/gameworkslibrary/coresdk/nvapi/group__dx.html#ga9066280b51437fcd4d791782fc3afdd5

The thing is … i want, but always dxgi.dll error :frowning:

Using the current version posted here and global injection.

get crash.log (5.0 KB) SpecialK.ini (4.5 KB)

How do you have BFI set up on LG OLED? And why 50 fps specifically?

I’ve never tried the BFI due to the input lag added.

Another thing I can’t figure out is how to get the low latency Instant Game Response to toggle without enabling G-Sync.

Has Low latency Instant Game response ever worked for PC?

Uh… BFI doesn’t add any input latency.

50 FPS because my GPU/CPU combo doesn’t like any of the AAA Ubisoft games :slight_smile: That’s the best I can do at 4K Ultra settings. Solid 50 FPS, so rather than going for an unstable but higher framerate using G-Sync and getting a blurry image, 50 Hz BFI is perfectly fine. In fact, it flickers the most of all the available refresh rates, so it’s quite clear. G-Sync on the other hand, is like a bunch of still images smeared across the screen at the framerates those games sustain and it’s supposed to resemble motion, reminds me of stop-motion animation :slight_smile:

Just turn off G-Sync in the NVCPL, lol. As soon as you do that, Black Frame Insertion becomes an option.

Blur Busters seem to have pretty good coverage for BFI.
https://forums.blurbusters.com/viewtopic.php?t=6310

Which I don’t know much of anything about but what little I can pick up it sounds quite useful. :slight_smile:

EDIT: And if I get it right it might be even more useful in the future so instead of 60/120 you’d be capable of 120 Hz BFI at 240 Hz but those displays are kinda really new so probably something for late 2020 to early 2021 and then going by current issues hopefully whenever the firmware stabilizes but that will also hopefully improve with future hardware. :slight_smile:

EDIT: Also sounds like future hardware will do wonders on motion blur and such but it’s going to be a while before that’s in the consumer segment.

Well Blur Busters has pretty good coverage for a wide range of display topics and tech, sounds promising even if some of it’s a ways off from general availability and affordable pricing after that.

EDIT: I am curious too but entirely out of it in terms of tech know-how if a future G-Sync scalar module with support for these newer advancements since the second version could potentially bring support for a combined functionality and you effectively get the best of both features and more though at what would be a price premium.

The first scalar module for NVIDIA G-Sync I think was a 200$ device and the second one at 500$ though it had a fair bit of hardware on it from memory but it’s also a bit old now unless there’s a newer revision I am unaware of.

The more people talk about G-Sync being blurry, the more I suspect that many here do not understand what VRR is or how it works.

Once again, BFI complements G-Sync, and does not replace it.

Does modern displays allow both BFI and G-Sync to be enabled at the same time without resorting to the hacks that were necessary just a few years ago?

wow tried local injection in AC valhalla and it froze up my whole system had to do a hard reset lol

No, it emphatically does not.

G-Sync requires full persistence. The image is held at constant brightness until a new one is scanned-out.

Consider for a second why G-Sync and Black Frame Insertion are impossible to combine. If the time at which the signal begins scanning a new frame is unknown, there is no way to determine how long the blanking between frames is supposed to be. Similarly, you cannot implement a rolling-scan if half-way through your roll a new image arrives.

Nothing about displaying a stationary image for a very long (100% refresh interval in the case of G-Sync) time produces blur free motion.

Where do i put this file ?

I’m a bit sad you don’t care about it that much anymore but oh well!
At least it runs out of the box without much headaches on DX12.