#Display Commander - Changelog

1 messages ยท Page 2 of 1

glad lichen
#

can't seem to find any in the archived channel here either

#

at least when searching by the release numbers

tame dock
#

I could regenerate it. Basically, I changed the defautlt fps limiter, the max_queued=3 used to be the default for some time.

#

It offers the best stability.

#

There is on github, I can reenerate past versions.

#

I plan to release versions more often from now on.

#

Now, that bugs have been fixed.

#

max_queued=1, was also used in some verison as default.

glad lichen
#

would you have to do it manually to flag every past version or can it be done in a way where we can browser all past releases? I'm not sure how github handles hosting of so many previously shared files

tame dock
#

I could host version every 25 or 50 for example.

glad lichen
#

for Rebirth for example, I don't think it's due to a recent change since even the version 0.12.148.1 I had saved produces worse pacing than the ones I tried prior to that, and that one doesn't have the menu from this screenshot

#

do you recall which versions only had the pace native frames option without the added ones for reduced latency?

#

one of those released in that timeframe worked best for Rebirth, on my system at least

tame dock
#

It works pre-FG, it was the default for longest time. It paces the rendered frames by the game. It was called "pace native frames".

#

The algorithms, didn't change, I just renamed them.

#

First 5 "fps limiter presets" are pre-fg.

tame dock
#

That's least amount of work.

glad lichen
#

would be great ๐Ÿ™ I'll try the most recent one first with the other settings from the drop-down

tame dock
#

Try, the ones from the list first, the 5 presets.

#

If not, then let me know.

glad lichen
#

yeah you're right, the max queued frames 2 and 3 produce the same or very similar results

#

thanks!

#

at least with FF it results with much better frame pacing when using FG

#

but the game has horrid frame pacing on its own

tame dock
#

@lunar locust and other people reported the same thing.

#

This is the algorithm I designed for DC. I play to develop complete version later. And, maybe write a page describing it / put it int othe library.

tame dock
glad lichen
#

I'll try a few other games for more data but 2 and 3 were the best ones in this case

#

1 was noticeably worse, though it could only be FF

tame dock
#

Yeah, =1 had issues in some games. However, that's the best option when I was testing, giving both best latency and frame stability in many games.

glad lichen
#

on a sidenote, does doom dark ages work with addon reshade now? I wanted to test this now but the game crashes non stop with reshade

tame dock
glad lichen
#

not related to DC, it just can't load reshade on its own

#

hmm does it need any extra steps?

tame dock
tame dock
glad lichen
#

that's how I installed it but I can't get the reshade UI to pop up at all

#

and when reshade is installed as dxgi.dll through the addon, it just crashes, but that makes mores sense

tame dock
#

It still works for me.

glad lichen
#

nah it seems to just be a reshade problem. I see the renodx github entry for it recommends +r_allowBlackListedLayers 1 as a launch command, but that causes a crash too

#

very weird, probably down to the Windows update or the NV driver for some reason

tame dock
#

I didn't have to change anything.

glad lichen
#

I was also using reshade and DC in Diablo 4 and reshade no longer works there either

#

i'll dig some more to see what's up

obsidian flower
#

did read the convo in HDR Installer chat and somebody pointed out the RenoDX UI
i think that is a good way to go and it's basically what we wanted anyway
the top slider could have something like DC Lite/Advanced/Advanced+Monitoring tabs that would reveal more and more info and options depending on what the user needs
the default would be DC Lite so new users that just want to limit FPS do not have to do anything then the other tabs would more features
it fits the separating of what we wanted and it has the plus that people are familiar with RenoDX UI already if they have used it before

obsidian flower
#

maybe something like this could work but i still feel like the 100% width blue dropdown are too bright/distracting
having a line separator between the sections could be better

keen void
#

@tame dock should add 60 and 120 here

#

not many people use half or 1/3 refresh rate as the fps limit target tbh

#

there should be more common values like 60 90 100 120 here

#

and i think Display Settings, Window Control, Resolution Control should be merged

#

NVIDIA Control should have its own seperate sub menu

keen void
#

maybe make the layout look like like this

obsidian flower
#

i think first @tame dock has to decide what will be visible in DC Lite and what what will be moved into the Advanced tabs

#

the problem we are trying to solve it that non technical people get overwhelmed by all the options/menus

iron viper
#

non technicals wont ever launch this anyway don't worry

#

laziness is king with the casuals

obsidian flower
keen void
#

the display settings sub menu

#

ingore others

fleet dock
#

Even technical people get overwhelmed. Reshade as a UI framework is kinda shit

obsidian flower
hollow ice
fleet dock
glad lichen
#

very weird behavior lol. When I hit just "end" for DC to pop up, it comes up minimized, then I can quickly expand it, but it will start slowly shrinking on its own until it's back to just a ribbon menu

#

nvm it finally showed up after a few launches and seems to work now ๐Ÿ™

tame dock
tame dock
keen void
tame dock
#

Instead, disable button in quick draw would serve as this purpose. Chaining limit to 0.

tame dock
keen void
#

probably just remove the no limit button

tame dock
#

Or maybe, make fps limiter slider width end at the same location as other sliders

keen void
#

ah right

#

thats better

#

also inject reflex/pcl stats/safe mode limiter should be in the same row

tame dock
wise grove
#

Ugh, installing Reno just now removed the preceptual shader in FF16 and pressing refresh does not bring it back

tame dock
#

I'll add not to retest this logic.

#

This UI should be redesigned as well.

tame dock
#

@obsidian flower @keen void The UI will need multiple iterations. Thanks, I'll come up with a new design, which should make things cleaner. Then we can iterate from that.

tame dock
tame dock
# flat crater what do u mean exactly?

Imagine, you could just have an UI in addon, one click button, that downloads/configures shaders, and with one click of a button enables Pumbo's AutoHDR for user convinience.

tame dock
flat crater
#

let's get back to that another time, i'm re-working most of my stuff

tame dock
#

Later down the like it could be added to Reshade, if Croside so desires.

flat crater
#

i'd like my AutoHDR code to stay exclusive to my shaders for now.

tame dock
flat crater
#

then you can do whatever you want ๐Ÿ˜„

tame dock
wise grove
flat crater
#

i don't think you need my permission to make a tool that downloads my shaders from my github

#

but you can if you want, either way

#

i'm not sure how useful it is at the end of the day

tame dock
flat crater
#

but i'm not the average reshade/display commander user

#

so dunno

#

to me, it kinda sounds useless

#

but i barely play games

#

and don't love using tools like SK or DC

#

unless there's a big problem with the game that i can't get past in other ways

#

one suggestion i have to avoid bloating the app.

#

if users asks for specific features needed by 1 specific games, sometimes it might be better to say no.

#

IMO

tame dock
flat crater
#

maybe.

#

Luma 2.0 will have a way of adding AutoHDR to all games through an addon.

tame dock
#

This would make Display Commander less bloated with features, and be a proof of concept for that people need.

tame dock
wise grove
#

the colors are the same

#

Great job ๐Ÿ™Œ

#

trying it in FF16 for a little more pop just to see and it's great color

#

Clairty is higher..

#

thisis the first time I've noticed the starfields blink

#

I can see into the shadows more, not sure what that means but it's adding depth to the image somehow..

#

Texures feel more "solid" somehow

ivory pendant
wise grove
#

Ported to what? Thanks

flat crater
# ivory pendant New autohdr shader finally getting ported ๐Ÿ˜ƒ

// AdvancedAutoHDR pass to generate some HDR brightess out of an SDR signal.
// This is hue conserving and only really affects highlights.
// "SDRColor" is meant to be in "SDR range" (linear), as in, a value of 1 matching SDR white (something between 80, 100, 203, 300 nits, or whatever else)
// This function already knows your Luma peak white nits setting, so actually pass in the max value for paper white 80 (e.g. 400-750, beyond that it looks bad)
// https://github.com/Filoppi/PumboAutoHDR
float3 PumboAutoHDR(float3 SDRColor, float MaxPeakWhiteNits, float _PaperWhiteNits, float ShoulderPow = 2.75f, float SaturationExpansionIntensity = 0.2f)
{
#if 0 // This might disproportionally brighten up pure colors
    float SDRRatio = max3(SDRColor);
#elif 1
    float SDRRatio = average(SDRColor);
#else // This nearly ignores blue!
    float SDRRatio = max(GetLuminance(SDRColor), 0.f);
#endif
    // Limit AutoHDR brightness, it won't look good beyond a certain level.
    // The paper white multiplier is applied later so we account for that.
    float AutoHDRMaxWhite = max(MaxPeakWhiteNits / sRGB_WhiteLevelNits, 1.f);

    float AutoHDRExtraRatio = pow(saturate(SDRRatio), ShoulderPow) * (AutoHDRMaxWhite - 1.f);
    float AutoHDRTotalRatio = SDRRatio + AutoHDRExtraRatio;
  float SingleColorScale = safeDivision(AutoHDRTotalRatio, SDRRatio, 1);
  
  // Calculate it again but with "per channel", which would expand gamut (not hue conservative)
  float3 SDRRatio3 = SDRColor;
    float3 AutoHDRExtraRatio3 = pow(saturate(SDRRatio3), ShoulderPow) * (AutoHDRMaxWhite - 1.f);
    float3 AutoHDRTotalRatio3 = SDRRatio3 + AutoHDRExtraRatio3;
  float3 PerChannelColorScale = safeDivision(AutoHDRTotalRatio3, SDRRatio3, 1);

    return SDRColor * lerp(SingleColorScale, PerChannelColorScale, SaturationExpansionIntensity);
}
#

somebody just do it already

#

make a PR

#

i can't bother

ivory pendant
#

Once I actually get home

#

Do you want me to send it to you for you to push to your GitHub? So it auto updates for everyone

ivory pendant
#

Oh pull request

#

I read that as public release for some reason lmao

#

Will do

wise grove
tame dock
#

I included Swapchain HDR upgrade inside DC, AutoHDR shader, but I think this is too cumbersome to use.
Perhaps, it would be better to just add download function, and configure options.

tame dock
#

Display Commander - FPS Limiter + Gamer's toolbox

#

Display Commander - FPS Limiter

quaint hull
#

cant wait for test this autohdr

ivory pendant
tame dock
#

I'll rename the "Pace real framew Low Latency max_queue=1) algorithm to be FGPaceLock(q=1)/FGPaceLock(q=2)/FGPaceLock(q=3)

#

And I'll make FGPaceLock(q=2) the default preset for FG, while FGPaceLock(q=1) is recommended, but may not work in same games.

#

@lunar locust

lunar locust
#

sure i guess

tame dock
#

This should make conversations easier.

#

FG modes:

  • FGPaceLock(q=1/2/3)
  • Low latency mode (reuses reflex sleep hook)
  • Stability mode - paces rendered frames at latency penaulty.
tame dock
#

I'm planning to add more settings to DCPaceLock, to test out different configurations.

tame dock
#

v0.13.9 (2026-03-25)

  • [ui] [settings] DC's own fps limiter has been renamed to DCPaceLock - The three presets that use Reflex latency markers with different parameters are now labeled DCPaceLock (q=1), (q=2), and (q=3) in the FPS limiter preset combo. DCPaceLock is Display Commanderโ€™s frame-pacing approach aimed at smoother pacing with frame generation while keeping latency lower than naive pacing-only setups.
lunar locust
#

this is just renaming right, no changes to the actual limiter atm right

tame dock
lunar locust
#

im not sure if q2 and 3 actually have like better pacing than q1 or not

#

i couldnt really deduct that in my own testing

tame dock
tame dock
#

ideally, this would be automatic.

lunar locust
#

yeah maybe would rewrite that tooltip then

#

because someone could be thinking oh ok should just use q3

#

but that would result in perhaps too much latency

tame dock
lunar locust
#

for 3 id put higher latency than q2

tame dock
#
       {"Low latency mode - pace game simulation thread only (bad frame pacing)",
                                "DCPaceLock(q=1) (recommended, low latency, good frame pacing)",
                                "DCPaceLock(q=2) (default, higher latency than q=1, use if q=1 is not good enough)",
                                "DCPaceLock(q=3) (higher latency than q=2, use if q=2 is not good enough)",
                                "Pace native rendered frames only (pre-FG, stable at latency penalty)",
                                "Pace generated Frames",
                                "Custom (configure manually)"},```
lunar locust
#

cause if both are just called higher latency

#

uninformed user could think q2 and 3 are same

tame dock
#

Like this?

#

or mid latency, high latency?

lunar locust
#

yeah id say thats good

lunar locust
tame dock
#

Or this?

lunar locust
#

yeah that would work

tame dock
#

That can be adjusted later, we will see.

lunar locust
#

yeah true

echo pivot
#

Seems odd to me for "recommended" and "default" to be different settings. Why not default to the recommended setting?

wise grove
tame dock
wise grove
tame dock
#

There was an issue in Doom: The Dark Ages. I fixed the issues, but I don't want to put unstable feature as the default yet.
I plan to make it default in the feature.

tame dock
tame dock
placid topaz
wise grove
#

I heard everyone uses these for smoothness

#

Youโ€™re just warning about latency I got it

#

As in we might still use it for smoothness

#

Roger ๐Ÿ™Œ

placid topaz
#

No, SK doesn't pace the generated frames because that makes games completely unresponsive at 2x FG, and it gets worse the more frames you generate.

wise grove
#

So you shouldnโ€™t use a Pacer with FG

tame dock
#

I may end up just showing the first 4 settings.

wise grove
#

Wait so we can pace the pre-generated frames

#

And will still increase smoothness?

#

Thanks for your explanations youโ€™re putting in the app

#

Please tell us what to do whenever possible lol

#

Helps with the number of options

tame dock
wise grove
tame dock
# wise grove Awesome thank you!

pacing pre-fg frames adds some latency, due to the game is designed. In this case you rely on nvidia drivers to pace show the post-fg frames.

wise grove
placid topaz
#

There's no point in pacing the generated frames, until you first disable flip metering, for what it's worth.
Their pacing is unrelated to when they appear on screen in modern NVIDIA drivers w/ flip metering enabled.

wise grove
#

Thanks, this is awesome

tame dock
#

But yeah, flip metering probably isn't useful if you do that.

placid topaz
#

You really don't though.
Streamline's native SwapChain doesn't block the game from rendering its real frames (the ones you see for Present calls on the proxy SwapChain and Reflex markers / sleep calls).

placid topaz
#

There could be benefit to pacing those frames if you turned flip metering off.
But otherwise it's largely wasting CPU cycles.

tame dock
#

I was talking about the fact that frames don't get queued infinately by the game, so there is some machansms in the games to prevent that.

tame dock
placid topaz
#

It's been default policy in SK since it was introduced.
It was not working well when it was first added to NV drivers, and disabling it also has the added benefit of making third-party tools that have frametime graphs from looking totally bizarre.

I've decided to keep it off by default, but recently made the setting visible to users in SK's control panel.
If all factors align properly, then enabling it would be beneficial. It would reduce VRR flicker and other things, but I still don't trust it and it has weird interactions with overlays.

#

It's almost essential with multi-frame generation though.

tame dock
tame dock
keen void
tame dock
tame dock
tame dock
opaque knoll
#

Let people decide, so the blame doesn't fall on you.

tame dock
opaque knoll
#

If it's for the variants, the q's, then 1 makes most sense, I guess.

#

Unstable behaviour if some random person installs DC, tries it, then says some random colourful things and never tries it again.

#

As you see some people do with SK.

tame dock
#

Yeah, but q1 did have issues in the past, like drop to 10fps, until I made a fix.

opaque knoll
#

rip

tame dock
#

This can be detected, and auto reverted to q2.

tame dock
#

I didn't write the detector yet. Yeah, I'll switch to q1 once I add fail safe.

opaque knoll
#

UI becomes a bitch when you try to add too many features, cause now at one point, you're trying to give a good 'solution' to end user, but then it can also clutter the fuck up.

tame dock
opaque knoll
#

Then add features that are 'stable' OOTB. But tbh, these addons are always iterative.

flat crater
#

code shape is different

opaque knoll
#

Like Kal said the other day, it's software. It's inherently going to stay broken.

#

But I'd reduce features if it meant a more stable OOTB experience, or rather, disable features altogether OOTB.

#

Throw those risky ones under 'Experimental' section or some shit.

tame dock
#

Yeah, basic tab should have OOTB features.

#

I should mark them by adding [experimetal], so user knows it may not work.

lunar locust
opaque knoll
lunar locust
#

so its own limiter mode then

#

that also works

tame dock
#

I'm improving the UI. Other less used sections can be enabled if needed.

opaque knoll
#

See this line? Put one like this that's a seperator line, put it in red or w/e.

Call it Experimental, put a hint icon or something explaining that section. And put all the new/risky/iterative features down there.

#

Only move them out of there after weeks or more worth of testing and confirmation from multiple parties.

#

Ideally, hide all that experimental features with a dropdown button. Keep the OOTB experience simple for new users. You don't want to confuse them with 23904980234 options.

opaque knoll
tame dock
opaque knoll
#

Well, more than that.

#

If you can change it, every dropdown feature inside experimental area can receive a diff colour from blue one.

tame dock
#

Yeah

#

I need to figure out the colors to use.

opaque knoll
#

Super light red colour for experiemntal features, a lil brighter red as a separator. Everything above that keep it neutral, light blue or light green or whatever you want.

#

Be consistent with colours, so at a glance, it's easy to tell which area is safe, which is risky.

#

Don't use too many colours.

#

And don't use same shade of colour for opposing indications.

Like if green is used for letting know the status is okay, don't use that for something else, etc.

tame dock
#

I'll define colors, for header/subheader/experimental_header/experimetan_subheader

opaque knoll
#

Yeap

#

Reduce as much as you can, and then stick with that.

#

Don't be iterative with colours, so don't introduce new colours at a whim rn. Take your time, do a few mockups, see which you like, and then just lock that in.

#

Nothing more annoying than updating something and everything changing every update.

tame dock
#

Special-K has follow those design principles.

#

Compatibility is red

opaque knoll
#

Yeah, SK has a lot of features so SKCP can get confusing. But the colours are consistent nonetheless.

tame dock
# opaque knoll Yeap

I could expose color scheme into the config, so it can be adjusted, defaults changed, etc.

keen void
#

q=1 doesnt work well in some games

tame dock
ivory pendant
tame dock
tame dock
#

I'm curious if your AI slop is better than mine.

ivory pendant
tame dock
#

Yeah, it's probably safe to push as PR, it can be changed later.

keen void
#

maybe on a 4090 it doesnt perform well

tame dock
tame dock
flat crater
tame dock
keen void
tame dock
keen void
#

Ya was

ivory pendant
keen void
#

Flip metering was causing issue for everyone

#

but i think it has been improved

#

people with 5090s keep it on with sk

red carbon
#

Never been an issue on or off for my 5070 system.

keen void
#

(people i know)

tame dock
red carbon
#

Alrighty?

keen void
#

Kal doesnt have a 50 series gpu

red carbon
#

I read that.

#

Unsure the constant Discord obsession of thinking people can't read.

tame dock
keen void
#

probably its actually always on on a 5090

tame dock
#

Sorry, I meant to put the question with the the same message as the link.

keen void
#

and it helps with frame pacing (which is what its supposed to do)

red carbon
#

Not mad at you, just constant in these servers lately of treating people as if they're, stupid.

tame dock
red carbon
#

Agreed.

#

I WILL say in most modern titles I run x2 FG, so like Polly said, I may not be seeing said issue also.

tame dock
#

Nvidia probably didn't bother implementing that features for 4000 series.

keen void
#

thats what flip metering was designed for in fact

#

improving the frame pacing

red carbon
#

FG x2 is surprisingly crisp now a days, but pushing beyond 3 is hard.

keen void
tame dock
keen void
#

it is on according to the frame time graph but as kal said its probably not working correctly

red carbon
#

FG time graphs and working. ๐Ÿคญ

tame dock
keen void
#

Ya

flat crater
#

dude

#

you just deleted the whole code, including features

#

stop for a second and think pls ๐Ÿ™‚

#

sry...

#

it's really a 5m thing if you read the code

tame dock
flat crater
#

use AI to enhance

#

not to replace

tame dock
flat crater
#

that's the matching point between the reshade shader

#

and the simplied func i gave u

#

u just need to add the saturation expansion below

ivory pendant
ivory pendant
flat crater
#

and port the new per channel expansion to it

#

no need to change anything else.

#

instructions are above.

placid topaz
tame dock
placid topaz
#

Yeah, so, in otherwords... not useful ๐Ÿ™‚
You need to not be bottlenecked by your display's refresh rate for mfg to make sense.

tame dock
#

I'm waiting for a good one to be released.

#

I've been waiting a few years, so any time now.๐Ÿ™

tame dock
tame dock
toxic blaze
#

i want to confirm - low latency mode - pace game simulation thread is flip metering on? i have 5090 and wanna try with it on

wise grove
wise grove
tame dock
#

1400 max nits (or at least 600 nits sustained), 250hz+, 32 inch, properly working gsync. dp 2.1

toxic blaze
#

thats going to take awhile for OLED.

#

its too bad there isnt much research for miniLEDs anymore

#

everythings OLED

wise grove
#

@tame dock why is he saying to use MFG if your display refresh rae is the issue, when do you think MFG makes sense? Thank you

tame dock
toxic blaze
#

got it.

tame dock
#

However, I don't expect frame pacing to be perfect in that case, knowing how things work. so DCFrameLock, may be better, needs to be tested.

tame dock
wise grove
tame dock
#

Hence, I'm waiting for new display, before I consider 5090.

wise grove
#

Ok, i understand now,

#

does nayone know a good reason to use MFG vs Dynamic resolution scaling

#

like when to use which one

tame dock
wise grove
#

stupid question: why do i care if frames are wasted

tame dock
#

Or, when you go into a scene, with healy gpu load, GPU can now change FG mode.

wise grove
#

GPU can now change FG mode? thanks

tame dock
wise grove
wise grove
#

dynamic version?

tame dock
wise grove
#

yes

#

got it

#

ok

#

we don't have it yet understood

tame dock
toxic blaze
tame dock
wise grove
#

@tame dock why is there a second framerate limiter now for FG don't we gotta turn off flip metering somehow first?

tame dock
#

I'll be using it for some time with different presents, to see if it improves things or not. If it doesn't I'll remove it. I probably should have added it to [experimental] section.

#

Point taken.

tame dock
#

And, ideally later p=auto based on statistical analysis.

toxic blaze
#

i tested p1, 2, and 3 and they all had stutter when entering and leaving the inventory screen. low latency mode works fine. other games like RE9 no problem

tame dock
toxic blaze
#

i see.

tame dock
#

I'll have to add detection when FG turns off itself.

toxic blaze
#

while playing its fine.

tame dock
#

Technically, FG is still enabled, but game isn't use it. So it's a different api.

#

I have an idea which one it is, it's probably the callback from NVAPI I need to override.

placid topaz
toxic blaze
#

i cant imagine the work to write these kind of software. so many different games doing different shit lol

tame dock
placid topaz
#

It's two things. EnableInterp and OFA

tame dock
#

Well, I don't query "DLSSG.EnableInterp", every frame, so maybe it changes.

placid topaz
#

lastFrameGen->Parameters->Get ("Enable.OFA", &uiEnableOFA);
lastFrameGen->Parameters->Get ("DLSSG.EnableInterp", &uiEnableDLSSGInterp);

#

If both of those things are set, and the DLSSG feature has run within the past 8 frames, SK considers frame gen active.

#

By run, I mean "EvaluateFeature" was called.

tame dock
placid topaz
#

This will also tell you info about MFG.
DLSSG.MultiFrameCount

Ignore DLSSG.NumFrames, dunno what that is, it's a misleading thing that has nothing to do with MFG ๐Ÿ™‚

tame dock
#

The checks I do, work when game turns on/off FG through settings.

#

It's just the menu that doesn't work, because I didn't hook slEvaluateFeature.

placid topaz
#

Errr... I don't have a hook on that either.
That's just kind of a higher level wrapper over NGX_EvaluateFeature

#

NVSDK_NGX_D3D12_EvaluateFeature

#

Better to use NGX, I think. Because Streamline isn't the only possible implementation of this stuff.

wise grove
#

Should triple buffering be on in game when using DC / Framerate limiter

tame dock
#

v0.13.10 (2026-03-25)

  • [bugfix] [hooks] Fixed FPS getting halved with Frame Generation in The Witcher 3 - Display Commander now updates DLSS-G interpolation state on all NGX Evaluate paths, preventing the FG status mismatch that could cause half-FPS behavior in The Witcher 3.
    Details: hooks/nvidia/ngx_hooks.cpp.
tame dock
#

@placid topaz I'll later have to figure out what to do about reflex, when "Low latency + boost" is turned on, the fps drops. Whenever I should remove boost option, add warning, or a fix for that.

#

@lunar locust You may also want to try the fix for FG's fps getting halfed in menus.

keen void
#

boost almost always causes issues for me

#

its not a dc issue

tame dock
keen void
#

yes

#

reflex + boost can cause issues

tame dock
#

A lot of people have been asking about boost dropping fps. (I should at least add warning)

keen void
#

its a reflex issue imo

tame dock
#

This also is a bad UX. As, people don't know that's supposed to not work.

keen void
#

thats why i always use reflex just set to on

#

plus boost doesnt provide real benefits

#

like 2ms lower latency?

#

its 0 to my eyes

tame dock
#

It's basically persuing latency metric for no benefit to the player.

#

"low latency + boost", is it better to say "often doesn't work" or "game/driver dependent" or " limited support"?

#

or maybe (requires game's support)

#

or (not recommended)

keen void
#

maybe just "can cause issues"

#

i didnt use fg very often when i was using my old 4090

#

On my 5090 though i think even with the regular reflex cap

#

Its smooth enough

#

no vr flicker or whatever

#

maybe flip metering does work as intended

tame dock
#

v0.13.11 (2026-03-25)

  • [ui] [settings] Clearer warning for Low Latency + Boost mode - Updated the Reflex mode label text to explicitly warn that Low Latency + Boost can cause issues, helping users choose safer defaults when a game behaves poorly with boost enabled.
    Details: settings/main_tab_settings.cpp.
lunar locust
tame dock
#

Death Stranding 2 is still broken.

placid topaz
tame dock
tame dock
wise grove
#

My dudes, Special K Perceptual HDR is so bright it feels like it's defeating my ABL lol

#

is it doing something crazy? It's so bright i have to look away some times

#

like it's fun i'm not complaining just curious

#

is that even possible?

tame dock
wise grove
#

does that mean paper white or peak?

tame dock
tame dock
wise grove
#

it's like stunning brightness

#

like that i hadn't seen out of my TV

#

if i want to impress someone i will use this

#

then turn it off b/c i don't want to age the panel! lol

tame dock
#

I'm using mini-led display, so that's not an issue for me.

tame dock
#

It's meant to games, that even with RenoDX, aren't bright enough.

tame dock
#

v0.13.12 (2026-03-26)

  • [bugfix] [hooks] [compatibility] Fixed FPS drop in UI in Death Stranding 2 - Improved NGX/DLSS-G parameter handling so UI-triggered frame pacing drops are avoided, fixing FPS degradation seen in Death Stranding 2.
    Details: hooks/nvidia/ngx_hooks.cpp.
tame dock
#

Display Commander - Changelog

#

I renamed this topic, to have the changelog, plus versions. This will make it easier to get past version, and see the changes, as they won't be mixed with chat.

tame dock
#

Display Commander - Advanced FPS Limiter

#

Display Commander - Changelog

placid topaz
wise grove
#

What's the difference in the two profiles? Thanks

placid topaz
#

Paper white? No.
Peak white.

#

The 2nd profile in SK has higher black level, for those who aren't into crushing all black detail out of existence.

tame dock
#

v0.13.13 (2026-03-26)

  • [bugfix] [settings] Turned off HDR10 / scRGB color fix by default - Disabled the default per-game AutoColorspace override so SDR titles aren't forced into HDR/scRGB color space, reducing washed-out/incorrect SDR colors.
    Details: src/addons/display_commander/res/game_default_overrides.toml.
wise grove
wise grove
placid topaz
#

If you applied it to HDR, it would multiply the peak brightness by ~6.75x

#

Very much unusable.

tame dock
#

Other profiles profiles are other algorithms I experimented with.

#

Perhaphs, I should have created my own repo for Auto-HDR shaders or Special-K Perceptual Boost. And, if Kailden doesn't mind, make it into it's own reshade effect exactly as it is.

wise grove
tame dock
#

@wise grove I plan to put it into it's own repo. Then people can compare it to other AutoHDR solutions, give feedback.

wise grove
#

That's great!

tame dock
tame dock
quaint hull
#

i was using srgb instead when something was looking crush heihachiPlasma

tame dock
# quaint hull didnt know that

Later, I can try putting Special-K algorithms as they are, if @placid topaz doesn't mind into a separate shader. This would allow people to explore / improve formulas a bit more.

quaint hull
#

no i dont think its needed tbh, why would we use sk hdr as a shader hug

tame dock
#

Also, it would allow to do comparisons between RenoDX/Pumbo AutoHDR/SpecialK's Perceptual Boost.

#

Anyway, it's just an idea.

wise grove
#

@tame dock So something I'm having is that if I click Display Resolution in DC it has begun causing a cdrash so I can't access them,

#

How do I delete my DC settings so I can restart with defaults?

#

I changed something in there I would like to change back but i can't access it please thank you

tame dock
trim flame
#

Stronge glad to see DC back in action. hmmNice

normal fable
# tame dock It doesn't, possibly native frame pacing works fine only on 5000 series.

if someone could give me some concrete instructions re what to test and what to look for - ideally something i can record/log and not just rely on my eyes for, id be happy to test the impact of flip metering (running a 5090). tbh so far my single biggest experience re flip metering has been that it made hella positive difference re FG frame pacing in AC Shadows, but as @placid topaz likes to remind @opaque knoll and me that game was fucked half ways to Sunday at launch (like... having FG with no working reflex markers lmao) so might not be the best representation of "standard" or expected behaviour

normal fable
normal fable
# tame dock A lot of people have been asking about boost dropping fps. (I should at least ad...

afaik boost (theoretically) provides a benefit - youre trading lower FPS for less latency in CPU bound scenarios. kind of a multifaceted issue bc i think a lot of peeps chuck it on without understanding that you will get less FPS by design in some scenarios, which is a comms/understanding issue. but Polly pointed out the other issue which is that at least in my experience (1) the latency benefit it provides in edge cases tends to be so minimal that it does not outweigh the downside of (2) it being so poorly implemented in many games that it seems to cause not, slightly lower FPS for slightly better latency, but massive FPS issues even in non-CPU-bound scenarious. TLDR it just doesnt seem to work very well, or isnt implemented well by devs or nvidia, even in its vanilla state

tame dock
tame dock
tame dock
#

Likely, game is not doing something required for boost. I'll add to the todo list to check it out.

placid topaz
#

Almost nobody reads those though, even fewer now that Streamline exists ๐Ÿ˜›

#

Most games only have Reflex at all because Streamline implements it, and so devs know next to nothing about how it works. They just have an on switch.

tame dock
tame dock
#

v0.13.14 (unreleased, needs testing)

  • [bugfix] [hooks] [ui] Hotfix for incomplete FG detection from v0.13.12 - Corrected the Frame Generation (FG) detection logic so Display Commander more reliably identifies when FG is actually enabled, fixing cases where 0.13.12 did not report FG state properly.
    Details: updated DLSS-G / FG detection logic used by runtime status reporting.
wise grove
#

Hey there, Display Commander doesn't seem to work for me for Jedi Fallen Order, game fails to boot, any ideas

wise grove
#

Awesome!

tame dock
wise grove
wise grove
tame dock
# wise grove

Thanks. The issue I was investigating locally was unrelated, just bad renodx mod.

wise grove
tame dock
wise grove
#

appears wiped when i uninstalled game

#

re-downloading it now

tame dock
#

It looks like for som reason device was initialize and then destryoted, I wonder what's that about.

#

Actually, this may help.


02:48:39:869 [25692] | INFO  | last Windows message processed: never
02:48:39:869 [25692] | INFO  | Continuous monitoring last looped: 29.00 s ago
02:48:39:869 [25692] | INFO  | Continuous monitoring current section: running_games_cache_1s (stuck here if not sleeping)
tame dock
#

v0.13.15 (2026-03-27)

  • [bugfix] Removed deadlock in running-games refresh path - Fixed a freeze/hang issue caused by RefreshRunningGamesCache, so game list refresh no longer deadlocks and the addon remains responsive.
    Details: synchronized refresh flow to avoid lock-order contention during running-games cache updates.
tame dock
#

v0.13.16

  • [removal] [ui] Removed running-games process controls from Games tab - Simplified the Games tab by removing the session process list/actions (focus/minimize/restart/stop/kill), keeping Steam launch management only.
    Details: removed process_window_enumerator.* and deleted related UI/actions from ui/new_ui/games_tab.cpp; also removed remaining debug/init references in advanced_tab.cpp and main_entry.cpp.
tame dock
#

v0.13.17 (2026-03-27)

  • [cleanup] [compatibility] Build system and includes - Addon sources no longer assume the whole display_commander folder is on the compiler include path: headers use explicit relative paths. CMake lists repo include/ and third-party deps separately so MSVC does not get a fake -Iโ€ฆ/SYSTEM path. Config files that use toml++ in โ€œno exceptionsโ€ mode are handled correctly (parse_result / parse_error::description()).
    Details: src/addons/display_commander/CMakeLists.txt; #include updates across config/, display/, hooks/, ui/, etc. Optional Release IPO/LTO can be enabled at configure time to shrink the DLL later (see CMake DISPLAY_COMMANDER_ENABLE_IPO).
tame dock
#

v0.13.18 (2026-03-27)

  • [removal] [ui] Standalone / independent UI removed - Temporatiliy removed Stanalone / Indepedent UI in attempt to fix the build scripts.
#

v0.13.19 (2026-03-27)

  • [hooks] [settings] DbgHelp hooks off by default - Display Commander no longer installs MinHook detours on the processโ€™s dbghelp.dll unless you turn that option back on in hook suppression. That avoids interfering with games and tools that rely on DbgHelp for stacks or symbols.
    Details: default DbghelpHooks suppression is now enabled in settings/hook_suppression_settings.cpp; internal stack traces still use the private dbghelp loader.
#

v0.13.20 (2026-03-27)

  • [ui] [settings] Higher FPS limit slider maximum - The Main tab FPS limit sliders can now be set up to twice the previous maximum (still derived from monitor refresh data), so you can choose higher caps when needed.
    Details: UpdateFpsLimitMaximums() in settings/main_tab_settings.cpp.
tame dock
#

v0.13.21 (2026-03-27)

  • [cleanup] Incremental builds - Removed CMake BUILD_DATE / BUILD_TIME compile definitions so ordinary builds do not recompile every source file after each configure. Version display still shows the full version string (including git commit count).
    Details: CMakeLists.txt, version.hpp, Main tab version line.
#

v0.13.22 (2026-03-27)

  • [cleanup] Smaller Release addon DLL - Release builds of the addon are much smaller on disk (about 9 MiB down to about 3.5 MiB in typical setups), which speeds copying and loads a bit lighter. Debug information for Release is no longer forced into the link step the same way as before.
    Details: src/addons/display_commander/CMakeLists.txt โ€” removed MSVC /Zi and /DEBUG for Release from shared display_commander_common_options (Debug / RelWithDebInfo behavior unchanged for targets that still request PDBs where applicable).
tame dock
#

v0.13.22 (2026-03-27)

  • [cleanup] CI uses MinSizeRel - GitHub Actions build and nightly workflows configure and build the addon with CMAKE_BUILD_TYPE=MinSizeRel (MSVC /O1 defaults) so published artifacts are smaller than a typical Release build.
    Details: .github/workflows/build.yml, .github/workflows/nightly.yml (the separate build-debug job remains Debug).
  • [cleanup] Smaller Release addon DLL - Release builds of the addon are much smaller on disk (about 9 MiB down to about 3.5 MiB in typical setups), which speeds copying and loads a bit lighter.
    Details: src/addons/display_commander/CMakeLists.txt โ€” removed MSVC /Zi and /DEBUG from shared display_commander_common_options (they applied to all configs via that interface), reducing embedded debug overhead in the shipped DLL.
  • [cleanup] CMake: addon build simplified - Display Commander addon CMake now uses one module target (no object/interface indirection), a single MSVC block for compile and runtime/PDB, MinHook links only hde32 or hde64 for the current arch, and embedded shader RCDATA is generated from res/shader_effect.rc.in instead of huge inline strings and a helper write_shader_rc.cmake script.
wise grove
#

Other question: if I use VRR, why does my framerate sometimes display as higher than my panel refresh in games? Like my refresh is 120, i have VRR set in DC, and my frame rate is 125

tame dock
#

v0.13.23 (2026-03-27)

  • [bugfix] [ui] Display Commander overlay opens with hotkey - Opening the Display Commander panel with its hotkey (default: End) no longer produces a tiny window or a failed build: the overlay gets a stable minimum height, a maximum height of at least 1000 pixels (or your display height if larger), and sizing uses ImGui::GetIO().DisplaySize so it works with ReShadeโ€™s ImGui exports (calling GetMainViewport from the addon was not linked).
    Details: OnPerformanceOverlay_DisplayCommanderWindow in main_entry.cpp (SetNextWindowSizeConstraints, (std::max)(โ€ฆ) for MSVC min/max macros).
tame dock
#

v0.13.24 (2026-03-27)

  • [bugfix] [hooks] [compatibility] FPS limiter / FG detection in Wuthering Waves (postโ€“v0.13.12) - Frame generation was treated as off due to changes in v0.13.12.
tame dock
#

v0.13.25 (2026-03-27)

  • [removal] [bugfix] [compatibility] Removed Steam-related code - Removed anymore steam achivements/steam launcher code. Potencial fix for steam not detecting the game running.
tame dock
tame dock
#

v0.13.27 (2026-03-27)

  • [hooks] [compatibility] Call of Duty: Black Ops III - boiii.exe compatibility fix - Disable ChangeDisplaySettings.
tame dock
#

v0.13.28 (2026-03-27)

  • [cleanup] Faster log disk writes - Buffered DisplayCommander.log output with flush on shutdown/explicit flush instead of every line, reducing disk I/O during normal logging.
tame dock
tame dock
#

v0.13.30 (2026-03-28)

  • [ui] More quick FPS limit buttons - Increase number of available fps limiter options shows all above 40hz.
tame dock
#

v0.13.31 (2026-03-28)

  • [ui] [hooks] DXGI flip: need two back buffers - Added a warning if user tries to set backbuffers to 1, and flip swapchain is used in dxgi.
tame dock
#

v0.13.34 (2026-03-28)

  • [cleanup] Cap vectored crash reports to prevent infinite logs - The vectored exception handler now prints full crash reports for at most 25 distinct exception addresses per process. Further unique addresses are skipped (with a throttled log) so log spam and repeated heavy stack traces cannot grow without bound when a game throws many different faults.
    Details: process_exit_hooks.cpp (VectoredExceptionHandler).
#

v0.13.33 (2026-03-28)

  • [bugfix] [critical] Sleep timer crash - Fixed a crash that could occur when the FPS limiter / wait_until_ns path used a single shared waitable timer from more than one thread. The timer handle is now per-thread (thread_local inside wait_until_qpc); callers use utils::wait_until_ns(target_ns) with no shared handle. Global timer variables were removed from swapchain, NVAPI delay, autoclick, and latent sync code.
    Details: utils/timing.cpp, utils/timing.hpp.

v0.13.32 (2026-03-28)

  • [ui] Display Settings: Misc for rarely used VSync/tearing options - On the Main tab, under VSync & Tearing (ReShade), max frame latency and backbuffer count (with live current count and flip-model hint) now live in a collapsible Misc section so everyday controls stay on one compact row.
    Details: DrawDisplaySettings_VSyncAndTearing_Checkboxes_Reshade in main_new_tab.cpp.
  • [ui] CollapsingHeader styling - Misc uses the warning-style header (dark yellow bar, near-white title text). Reusable PushHeaderColors / PushWarningHeader1Colors / PopCollapsingHeaderColors helpers and row colors live in res/ui_colors.hpp.
tame dock
#

v0.13.36 (2026-03-28)

  • [ui] Terminology - Renamed the term "Back Buffer" to "Buffer" to avoid confusing terminology.

v0.13.35 (2026-03-28)

  • [bugfix] [hooks] Flip-chain upgrade: two back buffers, not three - When enabling the experimental flip swap chain, the addon now raises the back buffer count only to 2 (the minimum flip model needs) instead of 3, reducing extra VRAM and matching the usual DXGI flip requirement.
    Details: OnCreateSwapchainCapture2 flip upgrade path in swapchain_events.cpp (log message aligned with the count).
tame dock
#

v0.13.37 (2026-03-28)

  • [experimental] [ui] Removed Vulkan (Experimental) tab - Tab is no longer needed.
iron viper
#

why can i post here ๐Ÿ‘€

lunar locust
#

cause why not

tame dock
#

v0.13.38 (2026-03-29)

  • [ui] [settings] UI optimizations
tame dock
keen void
#

looks a bit awkward

#

should make them line up

iron viper
#

I concur

#

Or just make it all wider given text is being cut off already

normal fable
# tame dock

am i blind or is there no GPU load % option for the overlay? that would be great

tame dock
#

I plan to turn off lots of hooks later, that are no longer needed. I wonder which ones people suppress.

placid topaz
# tame dock UI Optimizations 2

(2) is good, (3) kind of going the wrong direction.

Was better before, when you were starting to categorize information the user doesn't need to see when configuring the framerate limiter.
Half the stuff below the slider doesn't really need to be shown to the user unless they request advanced settings.
Otherwise this all is very unfriendly and unapproachable to new users, and mildly irritating for experienced users who just want to set a slider and be done with things ๐Ÿ™‚

#

If you free up enough space by hiding the advanced stuff, you could fit an actual frame pacing graph there without it taking away valuable screen real-estate.

tame dock
#

v0.13.39 (2026-03-29)

  • [ui] VSync & Tearing header - The VSync & Tearing collapsible header is shown again on the Main tab (same pattern as other sections), so you can fold that block instead of it always staying expanded.
    Details: DrawDisplaySettings_VSyncAndTearing in main_new_tab.cpp.
  • [settings] Auto-hide Discord Overlay default off - Auto-hide Discord Overlay (Advanced tab) defaults to off, so Display Commander does not hide Discordโ€™s overlay unless you enable it. The setting is stored as AutoHideDiscordOverlay_default_off (previously AutoHideDiscordOverlay, which defaulted to on).
    Details: auto_hide_discord_overlay in advanced_tab_settings.cpp.
  • [ui] Advanced Settings โ†’ Features - On the Main tab, the collapsible section previously titled Advanced Settings is now Features (behavior unchanged).
tame dock
#

v0.13.40 (2026-03-29)

  • [ui] [hooks] Reflex UI and NVAPI hooks on 32-bit D3D11/D3D12 - Added support for reflex injection in 32-bit games.
tame dock
#

v0.13.41 (2026-03-29)

  • [new feature] [ui] [settings] NVIDIA GPU utilization in performance overlay - Optional GPU util under Performance Overlay
#

v0.13.43 (2026-03-29)

  • [bugfix] NVAPI refresh rate monitor - Fixed refresh rate graph.
ivory pendant
# flat crater

looking at this again. I see where AutoHDRMaxWhite, AutoHDRExtraRatio, etc match up. That part im not getting is that maxpeakwhitenits isnt defined without copying all of that new logic, but that introduces a lot of other issues

#

could you help me understand? lol

ivory pendant
#

what does that mean?

flat crater
#

Luma: float AutoHDRMaxWhite = max(MaxPeakWhiteNits / sRGB_WhiteLevelNits, 1.f);
ReShade: float AutoHDRMaxWhite = max(HDR_SOURCE_PEAK_WHITE / sRGB_max_nits, 1.f);

ivory pendant
flat crater
#

to do the same AutoHDR formula, but per channel

#

instead of rgb luminance/average

#

and then blend to that by ~20% (default)

#

that's it.

#

so what u should do is add a new slider

#

called per channel expansion or something

#

default it to 20%

#

and add these 3 lines after the current autohdr code that is already there.

#

(and optionally skip that code when autoHDR was already running per channel, because there was that mode in the list already)

tame dock
flat crater
# flat crater ```c++ // AdvancedAutoHDR pass to generate some HDR brightess out of an SDR sig...

new:

  // Calculate it again but with "per channel", which would expand gamut (not hue conservative)
  float3 SDRRatio3 = SDRColor;
    float3 AutoHDRExtraRatio3 = pow(saturate(SDRRatio3), ShoulderPow) * (AutoHDRMaxWhite - 1.f);
    float3 AutoHDRTotalRatio3 = SDRRatio3 + AutoHDRExtraRatio3;
  float3 PerChannelColorScale = safeDivision(AutoHDRTotalRatio3, SDRRatio3, 1);

    return SDRColor * lerp(SingleColorScale, PerChannelColorScale, SaturationExpansionIntensity);

before:

    return SDRColor * SingleColorScale;
#

and that's what the reshade was too

#

though it has more branches

#

cuz it could already do per luminance

#

or by average

#

or by channel etc.

tame dock
#

@flat crater Is my PR correctly done?

flat crater
ivory pendant
tame dock
#

v0.13.44 (2026-03-29)

  • [removal] [experimental] [settings] [ui] [hooks] Removed unused code.
tame dock
#

v0.13.45 (2026-03-29)

  • [removal] [hooks] Remove reframework specific code -- it's no longer needed.
tame dock
#

v0.13.46 (2026-03-29)

  • [removal] [experimental] [settings] [ui] [hooks] Removed unused code.
  • [removal] Removed boiii.exe mod specific code -- It's no longer needed.

v0.13.45 (2026-03-29)

  • [removal] [hooks] Remove reframework specific code -- it's no longer needed.
tame dock
tame dock
#

v0.13.56 (2026-03-29)

  • [ui] Shaders paths UI - Added a new UI control in the Addons tab for shaders/textures paths, making it easier to enable or disable global shader path usage from the interface.
  • [cleanup] Dropped dead code - Removed a large amount of unused/dead code paths to simplify maintenance and reduce project complexity.
tame dock
#

v0.13.57 (2026-03-29)

  • [new feature] [ui] [settings] Addon URL download list in ReShade tab - You can now keep a list of addon URLs, add/remove rows with +/-, and click Download next to each URL to fetch addons directly into Display Commanderโ€™s global ReShade Addons folder.
    Details: implemented URL list persistence (ADDONS.AddonDownloadUrls) and per-row download/install flow in src/addons/display_commander/ui/new_ui/addons_tab.cpp; successful downloads are auto-enabled in ADDONS.EnabledAddons.
  • [ui] [settings] ETag update checks for addon URLs - The URL downloader now remembers server ETags after download and can check if newer files are available using Check per URL and Check All URLs from the same toolbar row.
    Details: added persisted ETag map storage (ADDONS.AddonDownloadEtags) and WinHTTP HEAD-based comparison in src/addons/display_commander/ui/new_ui/addons_tab.cpp.
  • [cleanup] Shared UTF/string helpers moved to utils - UTF-8/Wide conversion and ASCII trim helpers used by addon URL downloads are now centralized in a reusable utility module to avoid UI-local duplication.
    Details: added src/addons/display_commander/utils/string_utils.hpp and src/addons/display_commander/utils/string_utils.cpp; src/addons/display_commander/ui/new_ui/addons_tab.cpp now uses display_commander::utils helpers.
tame dock
#

v0.13.58 (2026-03-29)

  • [settings] [ui] [compatibility] ReShade screenshots/shader-path toggles are now local and instant - The Addons tab checkboxes for ./Screenshots and global shader/texture search paths now use local Display Commander config keys instead of marker files, and apply to ReShade immediately when clicked.
tame dock
tame dock
#

v0.13.59 (2026-03-29)

  • [hooks] [ui] Flip Metering detection indicator in DXGI Control - Display Commander now shows a simple Flip Metering: ON/OFF status in Main tab DXGI Control, so you can immediately see if that path was queried in the current session.
#

v0.13.60 (2026-03-29)

  • [cleanup] Version bumps now rebuild less code
tame dock
#

v0.13.63 (2026-03-31)

  • NVAPI Reflex latency stats in overlay - Added an optional NVAPI-backed PC latency and GPU frame time line to the performance overlay, powered by NvAPI_D3D_GetLatency and Reflex markers.
    Details: Enabled via the Main tab โ†’ Test Overlay โ†’ NVAPI stats subsection; values are smoothed over the NVAPI frame report window and only queried when the checkbox is on (to avoid extra driver calls when unused)
tame dock
#

v0.13.64 (2026-03-31)

  • [cleanup] [hooks] FPS limiter changes reverted - Recent FPS limiterโ€“related NVAPI and Vulkan low-latency hook work has been rolled back for now so behavior matches the prior release line while that approach is revisited.
    Details: nvapi_hooks.cpp and nvlowlatencyvk_hooks.cpp no longer carry the experimental FPS limiter path from the last few patches.
tame dock
tame dock
#

v0.13.66 (2026-03-31)

  • [bugfix] [settings] FPS limit load vs slider max - If your saved FPS Limit or Background FPS Limit is higher than the current slider maximum (from monitor refresh), it is no longer reset to the default on load; the saved value is kept. Sliders still cap edits to the current max.
    Details: FloatSetting::preserve_over_max_on_load in settings_wrapper.*; enabled for fps_limit and fps_limit_background in main_tab_settings.cpp.
tame dock
#

v0.13.69 (2026-04-01)

  • [bugfix] [settings] [ui] Fixed DLSS quality preset override with Frame Generation - Fixed a case where changing DLSS quality preset in-game could fail when Frame Generation was active, so preset changes now apply correctly during gameplay.
tame dock
#

v0.13.70 (2026-04-01)

  • Move Audio Control to a separate module, not running by default anymore.
keen void
tame dock
#

There is nothing preventing it to be in window control section though. If that's a good idea.

#

I can draw "Audio control" within "Window Control".

keen void
keen void
tame dock
keen void
#

im fine with both though

tame dock
keen void
tame dock
#

I use hotkeys to quickly mute the game or unmute it.

#

I may remove VU bards from overlay for audio.

keen void
tame dock
#

I'll add it to the todo list.

#

This needs some refactoring, to make sure hotkeys code doesn't run by default at all.

keen void
#

well i think you should fix reflex injection first

#

its better to fix bugs first

#

then improve stuff

tame dock
#

Definately, though I had to finish the audio first, since the change was in the middle.

tame dock
#

v0.13.71 (2026-04-01)

  • [new feature] [ui] [settings] [hooks] Unclip Cursor - You can turn on Unclip Cursor in Main tab Input Control so the game cannot lock the mouse to its window (every ClipCursor from the game is turned into a full release). It is mutually exclusive with Clip Cursor; if both were saved in config, Unclip is turned off on load.
    Details: unclip_cursor_enabled in main_tab_settings.*; ClipCursor_Detour forces nullptr to the original API; continuous_monitoring avoids RestoreClipCursor while unclip is on.
tame dock
#

v0.13.72 (2026-04-01)

  • [cleanup] GitHub Actions submodule checkout - Fixed build on github.
  • [ui] Main tab Input Control layout - Clip Cursor and Unclip Cursor are shown on one row so Input Control stays more compact.
    Details: SameLine() between the two checkboxes in DrawMainTabOptionalPanelInputControl in main_new_tab.cpp.
  • [ui] Add fakefull screen option - Ranamed "Continue Rendering in background" to "Continue Rendering in background (Fake Fullscreen)"
tame dock
#

v0.13.84 (2026-04-01)

  • [cleanup] Moved Controller/xinput to it's own module. All contoller related code can be disabled completely.
tame dock
#

v0.13.86 (2026-04-01)

  • File size reduction for DC Lite build to 1.34mb from 9mb previously.
  • [cleanup] [settings] DC_NO_MODULES linker exports - When DC_NO_MODULES is on, the addon links proxy_dll/exports_addon_only.def ( AddonInit + GetDisplayCommanderState only) instead of the full API-proxy exports.def, reducing DLL size. ReShade addon string exports remain via __declspec(dllexport) in addon.cpp. Full proxy rename (d3d11/dxgi/โ€ฆ) still requires the default build without DC_NO_MODULES.
tame dock
#

v0.13.100 (2026-04-01)

  • [bugfix] [ui] Fixed FG rate display for 5x/6x Frame Generation modes - The performance overlay now shows the correct FG multiplier for 5x and 6x instead of incorrectly dropping to OFF.
tame dock
#

v0.13.101 (2026-04-01)

  • [bugfix] [ui] Restored "Inject Reflex" checkbox - The Inject Reflex option is visible again.
tame dock
#

v0.13.102 (2026-04-01)

  • [bugfix] PCLStats not working in injected reflex - Fixed sending PCLStats while using injected reflex.
  • [clenanup] [ui] Cleaned up UI elements from advanved tab - Removed unneeded debug information from advanced tab.
  • [new feature] [ui] Debug Reflex / PCLStats tab (build-gated) - Added a Debug Reflex / PCLStats tab when building with bd.ps1 -DebugTabs (DEBUG_TABS / DISPLAY_COMMANDER_DEBUG_TABS)
tame dock
#

v0.13.103 (2026-04-01)

  • [new feature] [build] Display Commander Lite on GitHub - There is now an optional Lite download on GitHub if you do not need in-game audio or controller features. It works the same way as the normal addon (including using it as a renamed game DLL if you already do that). Pick 64-bit or 32-bit to match your game: zzz_display_commander_lite.addon64 or zzz_display_commander_lite.addon32 on Latest Build or Nightly. The main README also has download links.
GitHub

Latest Build (bleeding edge)
Bleeding-edge build from the main branch. Updated on every successful push to main.
Version in binaries: 0.13.102.3236
Commit: 9784f21
Files (full โ€” audio/controller mo...

tame dock
#

v0.13.104 (2026-04-01)

  • [cleanup] [settings] Performance overlay setting name - The main-tab toggle is stored as show_performance_overlay instead of show_test_overlay. If the new key is missing, the old key is still read once when settings load so existing configs keep the same on/off state.
  • [ui] don't show performance overlay for first 100 frames - For compatibility reasons.
#

v0.13.104 (2026-04-01)

  • [cleanup] [settings] Performance overlay setting name - The main-tab toggle is stored as show_performance_overlay instead of show_test_overlay. If the new key is missing, the old key is still read once when settings load so existing configs keep the same on/off state.
  • [ui] Performance overlay delayed after first present - The in-game performance overlay stays off until 2 seconds of monotonic time (get_now_ns) after the first g_global_frame_id increment on the present path, instead of the first 100 frames. Display Commander overlay window when the UI is open is unchanged.
tame dock
#

v0.13.105 (2026-04-02)

  • [crashfix] Fix crash while showing fg status in OSD - Fix crashes caused when adding support for 5+x FG mode.
  • [cleanup] [compatibility] DLSS-G FG multiplier as integer - DLSSGSummaryLite::fg_mode is an int: 0 = off, -1 = FG on without NGX MultiFrameCount, โ‰ฅ2 = N for Nx (FPS limiter and Reflex present-delay divide by N). Any valid MultiFrameCount maps to multi_frame_count + 1 when โ‰ฅ2 (2x through 7x+). The old DLSSGFgMode enum is removed; overlay FG line uses GetDLSSGSummaryLite() so it stays in sync.
tame dock
#

v0.13.111 (2026-04-03)

  • [settings] Make config entries sorted - Saving DisplayCommander.ini writes sections and keys in sorted order for easier diffs and editing.
tame dock
#

v0.13.112 (2026-04-03)

  • [cleanup] [ui] [settings] ReShade tab as internal module - Moved Reshae tab, as it's own module, separate from the rest of the code, not preset in DC Lite.
#

v0.13.113 (2026-04-03)

  • [cleanup] [settings] [compatibility] ReShade ini overrides removed from DC Lite
tame dock
#

v0.13.114 (2026-04-03)

  • [bugfix] [hooks] NVIDIA overlay latency - Fixed the NVIDIA overlay not showing correct Reflex latency. Prevent intiializing PCL_STATS for games using native reflex.
#

v0.13.115 (2026-04-03)

  • [bugfix] [hooks] PCLStats ETW hooks restored - Added safety guards, to prevent injected reflex interfearing from native reflex.
tame dock
#

v0.13.120 (2026-04-03)

  • [bugfix] [hooks] Native Reflex + FPS cap no longer stuck at half rate - Fixed issue causing game to run at half fps, when using native reflex in Default mode / pace native frames.
#

v0.13.117 (2026-04-03)

  • [new feature] [ui] [hooks] Change FG rate on the fly - Only in debug build, testers needed.
tame dock
#

v0.13.126 (2026-04-03)

  • [ui] [osd] Show latency in OSD shows data from NVAPI if available by default - Simplified UI with DC lite in mind.
  • [ui] [osd] Updated latency estimate for PCL (AV) latency to be more accurate
#

v0.13.127 (2026-04-03)

  • [ui] [osd] Improved latency formula to more closely match PCL(AV) from nvidia overlay
tame dock
#

v0.13.129 (2026-04-03)

  • [ui] [osd] Fix crash in Forza Horizon 5
tame dock
#

v0.13.130 (2026-04-03)

  • [ui] [settings] Performance overlay: separate RAM and VRAM - Part of Overlay Rework.
tame dock
#

v0.13.131 (2026-04-04)

  • [cleanup] Log privacy: Windows profile name redacted - Log file lines no longer include your user folder name.
tame dock
tame dock
#

v0.13.133 (2026-04-05)

  • [bugfix] [critical] Crash fix: NGX parameter map - SRWLOCK around UnifiedParameterMap so UI reads and hook writes no longer race; get_all() uses a snapshot. Details: globals.hpp.
#

v0.13.134 (2026-04-05)

  • [ui] [settings] Hotkeys tab visible by default - New installs and configs without show_hotkeys_tab now show the Hotkeys tab without turning on Show All Tabs or Show Hotkeys Tab. Existing saved false stays hidden. Details: main_tab_settings.cpp.
tame dock
#

v0.13.135 (2026-04-05)

  • [new feature] [ui] NVIDIA driver DLSS render presets (DC Full only) - Added showing NPI overrides.
tame dock
#

v0.13.137 (2026-04-05)

  • [removal] [ui] [settings] Performance overlay: DLSS Render Preset show now SR/RR presets including driver overrides (DC full only) -

v0.13.136 (2026-04-05)

  • [ui] [settings] DLSS SR/RR: one line for driver + Display Commander - OSD improvements
tame dock
tame dock
#

v0.13.146 (2026-04-05)

  • [bugfix] [ui] Driver DLSS preset (DRS) cache no longer expires on a timer - The NVIDIA driver profile read used for SR preset (DRS+DC) / RR preset (DRS+DC) in the overlay and DLSS UI was refreshed about every three seconds, which could cause brief stutter.
tame dock
#

v0.13.147 (2026-04-06)

  • [bugfix] [ui] Frame Generation (DLSS-G) detection: fewer false positives - Fixed logic for detecing whenever Frame Generation is on.
tame dock
#

v0.13.148 (2026-04-06)

  • [ui] SR/RR preset overlay: show version used based on data stored - Older versions that need to be updated have (UPDATEME).
tame dock
#

v0.13.149 (2026-04-06)

  • [hooks] Vulkan support - improved Vulkan support for DLSS/Frame generation features.
tame dock
#

v0.13.150 (2026-04-05)

  • [ui] [settings] Animation error on main Performance Overlay -Added showing animation error, next to latency error on performance overlay.
  • [ui] [features] Enabled showing latency stats on 32-bit as well
tame dock
#

v0.13.151 (2026-04-05)

  • [ui] Performance overlay: add show Resolution - Removed "show DLSS Resolution" in favor of "Show Resolution".
tame dock
#

v0.13.153 (2026-04-06)

  • [ui] Performance overlay DLSS status - DLSS Status line now shows only On or Off (no RR / DLSS-G suffix; use FG Mode, DLSS Quality, or driver preset lines for detail).
tame dock
#

v0.13.155 (2026-04-07)

  • [new feature] [ui] Fix getting information about DLSS preset overrides
tame dock
#

v0.13.156 (2026-04-07)

  • [ui] [settings] Shaders tab: all-games toggle for global config marker - Added a new checkbox in the Shaders section to enable or disable the all-games config mode directly from that tab, so users do not have to switch sections to manage it.
tame dock
#

v0.13.157 (2026-04-07)

  • [new feature] [settings] Global shaders marker .DC_GLOBAL_SHADERS - Added marker-based global enable for ReShade shader/texture search path injection, so users can turn it on for all games without relying on per-game config checkboxes.
tame dock
#

v0.13.159 (2026-04-07)

  • [bugfix] [settings] Resident Evil 2 (re2.exe) and ReShade input blocking - Default overrides no longer turn on Continue rendering in background for re2.exe, so the game does not keep receiving input when ReShade would block it (overlay / click-through behavior matches expectations).
tame dock
#

v0.13.163 (2026-04-07)

  • [bugfix] [ui] Native FPS now works even when FPS Counter is off - You can enable Native FPS independently, so the native Reflex-based FPS line still appears even if the regular FPS Counter line is disabled.
tame dock
tame dock
#

v0.13.164 (2026-04-07)

  • [ui] Added experimental fps limiter -- Added "low latency mode - experimental", seems to work well in Death Stranding 2, Wuthering Waves, Crimson Desert
tame dock
#

v0.13.165 (2026-04-09)

  • [ui] [hooks] [compatibility] Vulkan init timing warning in DLSS Control - The Vulkan DLSS Control section now warns when vulkan-1.dll was not present during DLL_PROCESS_ATTACH init but appears by the first UI draw, helping to explain that Display Commander is misconfigured.
tame dock
#

v0.13.166 (2026-04-09)

  • [ui] [settings] In Vsync & Tearing show presentation model - Bring back showing presentation model in VSync & Tearing section.
tame dock
#

v0.13.167

  • [new feature] [ui] [experimental] PresentMon ETW/flip state in VSync & Tearing - Added back showing flip state.
tame dock
tame dock
#

v0.13.167 (2026-04-10)

  • [feature] [ui] Controller remapping now includes navigation/system keys - Added missing keyboard targets to the remapping picker so you can map controller buttons to Print Screen, Scroll Lock, Pause, Insert, Home, Page Up, Delete, End, and Page Down.
tame dock
#

v0.13.169 (2026-04-10)

  • [bugfix] [ui] Smoother Audio control and VU overlay - Device info, level meters, and per-channel volume readouts are updated on a background thread instead of hammering Windows audio APIs every overlay frame, which reduces stutter when the Audio section or VU bars are open.
tame dock
#

v0.13.170 (2026-04-10)

  • [ui] Update Audio Control UI - fixed various UI issues.
tame dock
#

v0.13.173 (2026-04-10)

  • [bugfix] [settings] Auto Windows HDR setting key - Rewrote the implementation to work properly.
#

v0.13.171 (2026-04-10)

  • [bugfix] [ui] Main tab Audio Control respects Show Audio Control - With Show Audio Control off, the Audio Control block no longer appears under Features (Module Features) or duplicated at the bottom of the Main tab. When on, a single Audio Control section appears in the optional panels area only.
tame dock
#

v0.13.174 (2026-04-10)

  • [settings] Auto Enable Windows HDR earlier - DC now turns on the during DLL load, fixing issue in Death Stranding 2.
tame dock
#

v0.13.175 (2026-04-12)

  • [cleanup] Auto Windows HDR lifecycle - Fixed Windows HDR not turning off on app exit.
tame dock
#

v0.13.177 (2026-04-12)

  • [bugfix] [hooks] Fixed fps limit in Borderlands 4 in menus while using FG
tame dock
#

v0.13.178 (2026-04-12)

  • [ui] Performance overlay labels - Renamed overlay background and frame chart sliders from โ€œTransparencyโ€ to โ€œOpacityโ€ so the label matches the value (higher = more opaque).
tame dock
#

v0.13.179 (2026-04-12)

  • [hooks] DLSS .bin identification - Fixed detecting DLSS version to avoid when using DLSS override.
tame dock
#

v0.13.180 (2026-04-12)

  • [bugfix] Auto Enable Windows HDR in Red Dead Redemption 2 - Fixed code that prevented RDR2 from starting when this feature is enabled (no HDR revert on swapchain/device destroy; exit still reverts).
#

v0.13.181 (2026-04-12)

  • [bugfix] [ui] Performance overlay corner offset - Margin is not aligned with top left without marging at 0px.
tame dock
#

v0.13.183

  • [new feature] [ui] [experimental] PresentMon ETW/flip state in VSync & Tearing - Added back showing flip state.
tame dock
#

v0.13.183

  • [new feature] [ui] PresentMon flip in performance overlay - Added showing flip state in to the Performance Overlay.
tame dock
#

v0.13.184

  • [bugfix] [ui] Fixed crash in DC's UI - Draw Display Settings
tame dock
#

v0.13.185

  • [bugfix] [hooks] DLSS .bin tracking keeps newest loaded model - When multiple NGX .bin modules map to the same DLSS kind, tracking now prefers the highest NVIDIA Deep Learn version (numeric dotted compare, e.g. 2.3.4.0 < 310.1.0.0), with versions/<N> path fallback when version metadata is unavailable.
tame dock
#
  • [ui] Cleanup DLSS control UI
#

v0.13.186

  • [settings] [compatibility] ReShade overlay clock - Display Commander does not change OVERLAY.ShowClock reshade setting anymore by default.
tame dock
#

v0.13.187

  • [bugfix] [ui] Display Commander not opening with hotkey - Fixed bug when it was impossible to open Display Commander's UI through hotkey if the window was minimized by clicking on the header.
tame dock
tame dock
#

Display Commander v0.13.189 (stable summary)

  • Reduced size from 9mb to 1.6mb - Code cleanup
  • Modular design - Audio / Controller / Reshade add-ons tabs are omitted in Lite version. New features can be added as plug and play.
  • Crash fixes - Various rash fixed
  • Windows Enable Auto HDR - rewritten feature to enable WIndows HDR on game start / turn off on game exit
  • ** Performance overlay & main UI ** - Reworked UI
  • ** DLSS / NGX ** - Various compatibility fixes for detection of DLSS.
  • ** Feature cleanup ** - Removed experimental code / debug features from main stream build to increase compatibility
  • ** FPS Limiter ** - various fps limiter improvements
  • ** OSD ** - Added latency stat (based on nvidia PCL (AV) / Simulation Error - and various other improvmeents
  • Lots of other improvements.
#

v0.14.1

  • [cleanup] [settings] [compatibility] Cleanup - removed .display_commander_installer_marker.json, which is no longer needed.
tame dock
tame dock
#

v0.14.2

  • [bugfix] [settings] [compatibility] Symlink-safe log startup reset - When DisplayCommander.log is a symlink, startup now clears the linked file in place instead of renaming to .old, so external log-link setups keep working.
  • [bugfix] [settings] [compatibility] Symlink-safe INI saves - Saving DisplayCommander.ini now writes directly with truncation when the destination is a symlink, preserving the link path instead of replacing it via temp-file rename.
tame dock
#

v0.14.5

  • [settings] [compatibility] Swapchain creation delay (INI) - Optional swapchain_creation_delay under [CompatibilityFixes] in DisplayCommander.ini (milliseconds, default 0) sleeps the render thread before ReShade create-swapchain processing; use for games that need a pause during swapchain setup. Not exposed in the UI.
  • [compatibility] Local addon DLL scan: addon + game folder - Pre- and post-ReShade companion DLLs (.dc64/.dc/.asi and .dc64r/.dcr, etc.) are discovered in the Display Commander addon directory and in the main executableโ€™s directory (GetModuleFileNameW(nullptr)), with duplicate folders skipped so the same path is not scanned twice.
tame dock
#

v0.14.6

** [cleanup] Remove usage and creation of display_commander_installer_marker.json

v0.14.7

** [crashfix] Fix crash when smoothmotion is enabled

tame dock
#

v0.14.8

  • [new feature] [ui] GPU temperature in OSD - Added new entry.
tame dock
#

v0.14.9

  • [new feature] [ui] CPU process/system load in OSD - Added optional CPU process and CPU system overlay metrics.
tame dock
#

v0.14.11

  • [ui] [hooks] Main tab NGX late-load warning - Add a warning when DC is loaded too late, and DLSS stats aren't available.
tame dock
#

v0.14.12

  • [hooks] Potencial workarounnd for DC being loaded late - Added workaround which should solve issues related to not detecting DLSS-FG when dc is loaded as .addon64.
tame dock
#

v0.14.13

  • [removal] [build] Display Commander Lite (DC_LITE) removed - One addon binary again; the old Lite vs full split is replaced by modules, which are turned off by default.
tame dock
tame dock
#

v0.14.15

  • [bugfix] [ui] [experimental] FPS limiter "low latency mode - experimental" โ€” This option is not working; treat it as broken until a follow-up fix.
tame dock
tame dock
#

v0.14.16

  • [ui] Add safety checks to ensure window size is at least 900x600 on start