Topic-Free Mega Thread - v 1.11.2020

It’s part of the generic glossary frame rate page linked from all articles:

https://www.pcgamingwiki.com/wiki/Glossary:Frame_rate_(FPS)#Frame_rate_capping

I think a dedicated YouTube channel would help as well if there isn’t one.

Oh no.

I was planning to help Unwinder make RTSS HDR compatible (for its luminance / color saturation), but as it turns out … RTSS breaks Xbox Game Bar’s ability to take tonemapped screenshots in HDR. I think the best thing to do is have anyone who uses HDR just disable RTSS.

SK could take a correct screenshot in this case, except there’s something screwed up with C# versions of SteamAPI in Special K at the moment :-\

Yes, I heard back from DF.

My reason for contacting them was HDR though. There will be some content on Special K and HDR in general in the coming months, they’re working on updating their video production workflow as well as tools for analyzing HDR content from consoles. So this kind of works out nicely.

I’ve been working my butt off trying to improve compatibility w/ HDR in anticipation :slight_smile:

I really think that SK’s framerate limiter is something that should just be given away to all other developers of similar tools for integration (and if it cannot be easily integrated into other projects, then my design and/or technical guidelines for proper implementation sux0rs and needs work) :stuck_out_tongue:

Meanwhile my HDR work is the one contribution to PC gaming that’s uniquely me and probably could not actually be gifted to other projects without months of training developers. Kind of a shame, I’d love it if I had someone to assist with stuff like HDR visualization shaders and more advanced level curves.

3 Likes

Don’t forget the reload injected textures option, that has proven really useful for me.

Also, aren’t you responsible for more individual game fixes than any other single person? :thinking:

1 Like

Unfortunately, I probably am… those only gave me the foresight to realize that wasn’t particularly productive :stuck_out_tongue:

On one or two occasions I actually got through to the developer whose game I debugged and lead to the creation of an official fix, in most cases I just have a bazillion standalone versions of Special K floating around that will haunt me for years to come as those games remain broken and people expect me to remember things about the patch I created.

I still find myself doing that for new game releases despite promising myself I am going to stop :slight_smile: Someone needs to smack some sense into me, and point me back to non-game-specific stuff I could be doing instead.

By The Way, is there anyone here who fancies themselves a web developer?

This whole HDR screenshot thing is going nowhere fast, and I’m thinking something like ImageMagick on a web backend might be able to take our HDR .jxr screenshots and create SDR thumbnails (.png, no .jpg for the love of all that’s holy) for general consumption + a link to download the source HDR image.

I cannot code my way out of a paper bag using web-centric programming languages, or even Python, but I know this should be a fairly manageable thing for anyone who knows script-f00.

Oh, wow!

Nice to see someone put some equations to paper for implementing debug views. There’s some definite room for improvement here.


No clue why everyone fixates on 4,000 nits as this magic number with some kind of special significance though. scRGB and HDR10 are both defined all the way to 10,000 nits and neither 4,000 nits nor 10,000 nits is particularly relevant in consumer applications.

SMACK

BAD Kaldaien!

No more game fixes until you have DX12 gui working!

Pfft, framerate limiting’s more important :slight_smile: That works in D3D12 even though you can’t see anything.

To that end, I think I found a bug in either DXGI or NVIDIA’s driver that causes excessive latency on swapchains after alt-tabbing unless you turn VSYNC off and back on.

The only way I’m going to be able to debug that and develop an automated workaround is if I basically take the same data that CapFrameX collects (DXGI Presentation Statistics) and build a little latency graph directly into Special K.

And wouldn’t you know it, that’s what I’m going to do :stuck_out_tongue: I’ll tack this thing onto the Framerate Limiter Debug view in the Framepacing widget for now, eventually SK won’t even need CapFrameX anymore because it’ll analyze the same data for swapchain defects (e.g. the presentation interval going haywire after alt-tab).


I’m not sure how that all turns into fancy graphs just yet, but it’s the same data PresentMon collects. It’s a hell of a lot easier to get at from within the game that’s actually rendering, so no real downside to monitoring that data constantly the way SK does DXGI memory budgets.

Good timing too, I just got a response from NVIDIA :wink:

I’ll be able to validate the results of not only PresentMon/CapFrameX but whatever reporting capabilities I build directly into Special K. This is an interesting turn of events, only 2 months ago I didn’t give 2 @#$%s about latency, lol. Now there will be some really neat tools inside of SK to measure it.

2 Likes

Can I get some help validating that 0.11.0.49 actually works before I push for a release?

SpecialK64.7z (7.6 MB) SpecialK32.7z (6.3 MB) SKIF.7z (385.1 KB)

There are a lot of D3D11 / DXGI / HDR changes since the buggy version of 0.11.0.48 new users are currently linked to @ the top of the site. I gotta get that version replaced, but there have been so many changes in 0.11.0.49, it’s possibly every bit as buggy as .48 was :stuck_out_tongue:

@Aemony, this version of SKIF has a clickable “Config Root” text entry that’ll take you to the directory. It feels really clunky, I’m holding out for a better solution (e.g. context menu with sub-menus for stuff like logs, texture mods, etc.) before considering it properly solved.


I really miss the beta branches and stuff on Steam, it’s so easy to keep regular users on a stable old release while regularly delivering test updates to people who opt-in to a branch on Steam. Creating branches takes like 2 seconds, it was the coolest thing about Steam.


The biggest change that needs testing:

     D3D11 SwapChain Latency, it is on a mission to kill your FPS :stuck_out_tongue:

  • When you change SwapChain settings, the framerate limiter immediately re-initializes itself now. This means that certain settings that kind of never did anything before suddenly do things that could really screw with your performance.

    • I have been allowing users to select SwapChain Backbuffers-1 and lower for device latency for years, but that’s not technically valid. If your maximum latency gets set that low the swapchain stops queueing frames and basically turns into Godzilla Ultra Low Latency mode (half framerate rendering if lucky !!).

Please let me know if you encounter any games where the swapchain got configured this way by you in the past and now your game runs at @#$% FPS, I don’t know how big a problem this is going to be.

1 Like

The latest insider update for Windows 10 (KB4577063) 19041/19042 .541 updated a bunch of D3D stuff unlike most other updates recently, seems the ISO with build 19042.508 is also the new release candidate for 20H2 of Windows 10 so a full launch is pretty close.

Though these can be for any number of things, Windows 10 Store app also updated with a more major version jump and now has a option linked to the XBox App which I believe is slowly coming out of it’s beta phase.

Nice to see 0.11.0.49 close to release too.

Hmm but doesn’t SKIM have branches like that too, stable/experimental sorta?
(It’s not quite Steam I suppose and how that worked.)

Can’t do much with HDR here though, technically carries the signal but it’s there because it is which is sorta weird but it’s not something that should be enabled on this display.

It’s really good for it’s price range but some neat features are found on higher tier pricing models and eventually stuff like HDR600 or possibly some mid spec HDR800 before HDR1000+ will be more affordable with good quality hardware too.
(It’s kinda varied at the moment unsurprisingly, panel details and tech can be a pain to track down.)

EDIT: Well I suppose HDR400 - HDR600’s more of the mid tier but from what I gathered it looks like the specs are kinda loose and undefined until HDR1000 where you need to have this or that to meet the criteria for getting that cert.

Anything from panel bits to the back lit tech.
AMD tried something similar with FreeSync and NVIDIA with G-Sync with the later additions of Ultra (NVIDIA) and Premium Pro (AMD) but I don’t know exactly what these entail and FreeSync2 is still kinda varied from one display to another.
(G-Sync and their scalar hardware has a cost premium but does standardize a few things too.)

Seems LG had some problems with firmware for Ampere speaking of that but they’re getting new ones ready to fix these issues, heh I’m still not fully used to firmware display updates ha ha.
(The one for this model only updated something for the scalar though best as I can tell with no actual info, think bios changelogs are vague well at least they get release notes with them.)

EDIT: Hah.
("May cause compat. issues with ... nearly all 3rd-party software");

https://gitlab.special-k.info/Kaldaien/SpecialK/-/commit/75cdd0da9e8859529c73f50056768b89301a1fde

Should read up on what’s changed in this “litte” update come to think of it.

EDIT: That’s the latency option and a quote for the tooltip I think, not the software itself…just to clarify. ~

Should test the latency option too really but probably once the GPU’s been upgraded.
5700XT’s doing it’s thing incredibly well but it’s still a mid-range card though AMD resolved…a lot. :smiley:

Vega when it could scale was a incredible GPU.
It never really happened in gaming though.

It could still be fast as could the Radeon VII especially with it’s additional tweaks but it never got fully utilized and it excelled mostly with compute work as it was sorta also intended for even if it could do gaming reasonable well even with these limitations.

Sapphire and AMD partner and yeah it reads like a advert but it does have some good info plus the earlier parts on the first and second generation of GCN and up to before Vega and the start of Radeon DNA here.

Gonna take it for a spin now before I start work in an hour.

On a minor note, SKIF needs hover effect on the Config Root and Service Stopped/Running options so it’s clear to the user that those are clickable :smiley:

I have a bunch of additional code that will be checked-in tomorrow, actually. That commit was mostly just tooltips and an update to the shader I use to draw ImGui in HDR games (including the ones that SK is turning into HDR).

The other big change here is that Special K now applies its framerate limiter per-swapchain. I know of only 1 or 2 games that use multiple swapchains, but considering I made a big point about explaining to Unwinder why RTSS’s framerate counting is problematic in SKIF… I needed to go and change my framerate statistics and limiter to work the way I was describing :slight_smile:

1 Like

Hmm… the FPS limiter tanks my performance in Watch Dogs 2 now… I use 5 backbuffers and 6 maximum device latency?

Uncapped:

Capped:

Edit: Simply enabling the FPS limiter caps it to below 50 FPS regardless of settings I use. Even if I have it set to 90 FPS limit (more than the game can run at), it results in sub-50 where I otherwise got 70 FPS when the limiter is disabled.

Gonna try restarting the game.

Probably because VSYNC is turned off.

Set the Presentation Interval to 1 so that I can drop frames when you enable a latency waitable swapchain.

There are related settings in the Framerate Limiter > Advanced section that apply when you have a a latency waitable swapchain as you do here.

No dice, sadly… Can’t tell what’s going on – the FPS limiter seems to work fine in menus of the game, but as soon as I’m in the game world it drops from 60 to ~47ish FPS if the limiter is enabled.

I can see the limiter re-engage the settings or whatever as I play around with the various toggles, but so far I haven’t been able to get it to cap properly at 60 FPS regardless of what settings I change.

I’ll take a look at it. For some reason I thought that game was like 100 GiB. It’s tiny and shouldn’t take more than a minute to install :slight_smile:

It seems that its related to the waitable swapchain. Disabling that, and restarting the game seems to have fixed it. I also changed presentInterval back to -1 but it seems that I have enabled V-Sync in the game’s own settings since it’s still enabled (not that it matters much).