Is there a way to make DX12 games run in "true" fullscreen mode?

Everything about latency. Tips, testing methods, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
slaver01
Posts: 89
Joined: 21 Sep 2020, 01:48

Re: Is there a way to make DX12 games run in "true" fullscreen mode?

Post by slaver01 » 04 Jun 2021, 05:20

RealNC wrote:
04 Jun 2021, 05:07
slaver01 wrote:
04 Jun 2021, 03:33
doesn't work. adjusting sound using media keys on keyboard, i see pop out menu, FSO is on.
Win 10 20h2 - nvidia driver 461.92
What's the issue you're having, exactly? The new fullscreen mode is just as fast as the legacy one.
Now they have the same input lag between Fullscreen Exclusive DX11 VS Fullscreen Exclusive DX12?

User avatar
RealNC
Site Admin
Posts: 3756
Joined: 24 Dec 2013, 18:32
Contact:

Re: Is there a way to make DX12 games run in "true" fullscreen mode?

Post by RealNC » 04 Jun 2021, 05:48

slaver01 wrote:
04 Jun 2021, 05:20
Now they have the same input lag between Fullscreen Exclusive DX11 VS Fullscreen Exclusive DX12?
Didn't they always?
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

slaver01
Posts: 89
Joined: 21 Sep 2020, 01:48

Re: Is there a way to make DX12 games run in "true" fullscreen mode?

Post by slaver01 » 04 Jun 2021, 06:59

RealNC wrote:
04 Jun 2021, 05:48
slaver01 wrote:
04 Jun 2021, 05:20
Now they have the same input lag between Fullscreen Exclusive DX11 VS Fullscreen Exclusive DX12?
Didn't they always?
No, because the fullscreen exclusive DX12 is a fake. It is similer to borderless windows which has higher input lag.

MT_
Posts: 113
Joined: 17 Jan 2017, 15:39

Re: Is there a way to make DX12 games run in "true" fullscreen mode?

Post by MT_ » 04 Jun 2021, 07:15

To be fair, Non-exclusive full screen can be pretty good, the real problem is that Windows is allowed to overlay crap over the screen (i.e Volume OSD, how is it even possible that this shitty overlay cannot be disabled? Its literally blocking where I want to click If i listen to music and change the volume).

Other intrusions are also happening, although 'focus assist' should detect these and i.e. block notifications.
LTSC 21H2 Post-install Script
https://github.com/Marctraider/LiveScript-LTSC-21H2

System: MSI Z390 MEG Ace - 2080 Super (300W mod) - 9900K 5GHz Fixed Core (De-lid) - 32GB DDR3-3733-CL18 - Xonar Essence STX II

User avatar
RealNC
Site Admin
Posts: 3756
Joined: 24 Dec 2013, 18:32
Contact:

Re: Is there a way to make DX12 games run in "true" fullscreen mode?

Post by RealNC » 04 Jun 2021, 07:17

slaver01 wrote:
04 Jun 2021, 06:59
No, because the fullscreen exclusive DX12 is a fake. It is similer to borderless windows which has higher input lag.
Borderless windowed mode has higher input latency because of DWM composition. This is not the case with this new fullscreen mode. DWM in Windows 10 does not do composition in this mode, unless an overlay needs to be displayed. So you get "true" fullscreen when nothing is displayed on the screen other than the game. When something like the sound volume bar pops up, it switches composition on so the bar can be displayed, and switches it off again after the bar disappears.

So basically, the new fullscreen mode only becomes borderless fullscreen for the duration of an overlay ("popup"). The input lag penalty disappears when the overlay goes away.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

slaver01
Posts: 89
Joined: 21 Sep 2020, 01:48

Re: Is there a way to make DX12 games run in "true" fullscreen mode?

Post by slaver01 » 04 Jun 2021, 07:24

RealNC wrote:
04 Jun 2021, 07:17
slaver01 wrote:
04 Jun 2021, 06:59
No, because the fullscreen exclusive DX12 is a fake. It is similer to borderless windows which has higher input lag.
Borderless windowed mode has higher input latency because of DWM composition. This is not the case with this new fullscreen mode. DWM in Windows 10 does not do composition in this mode, unless an overlay needs to be displayed. So you get "true" fullscreen when nothing is displayed on the screen other than the game. When something like the sound volume bar pops up, it switches composition on so the bar can be displayed, and switches it off again after the bar disappears.

So basically, the new fullscreen mode only becomes borderless fullscreen for the duration of an overlay ("popup"). The input lag penalty disappears when the overlay goes away.
So in dx12 the behavior is similar to "borderless windowed" but with input lag same to fullscreen exclusive dx11?

User avatar
RealNC
Site Admin
Posts: 3756
Joined: 24 Dec 2013, 18:32
Contact:

Re: Is there a way to make DX12 games run in "true" fullscreen mode?

Post by RealNC » 04 Jun 2021, 07:31

slaver01 wrote:
04 Jun 2021, 07:24
So in dx12 the behavior is similar to "borderless windowed" but with input lag same to fullscreen exclusive dx11?
Yes. And also in DX11 and DX9 with fullscreen optimizations enabled.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

Kaldaien
Posts: 21
Joined: 22 Jan 2020, 21:27

Re: Is there a way to make DX12 games run in "true" fullscreen mode?

Post by Kaldaien » 15 Aug 2021, 14:38

RealNC wrote:
04 Jun 2021, 07:17
So basically, the new fullscreen mode only becomes borderless fullscreen for the duration of an overlay ("popup"). The input lag penalty disappears when the overlay goes away.
This is slightly complicated by Multiplane Overlays. If you've got HW and a driver that can use them, you have up to 4 hardware planes where windows can be composed in hardware rather than using the DWM. In the best-case, this allows up to 4 different applications to simultaneously flip buffers to the screen at asynchronous rates.

Good luck figuring out whether you've actually got MPOs active though :P They're very temperamental.

Eonds
Posts: 262
Joined: 29 Oct 2020, 10:34

Re: Is there a way to make DX12 games run in "true" fullscreen mode?

Post by Eonds » 18 Aug 2021, 00:24

slaver01 wrote:
18 Feb 2021, 08:16
Microsoft defaults all games installed on Windows 10 run in fake-fullscreen borderless window mode. You can still make them run in fullscreen exclusive by disabling "Full Screen Optimization" on each process. However, this only works in non-DX12 games.

I've tested DX12 mode in Metro Exodus, Remedy's Control, Gears of War 5 and Warhammer 2 Total War. Disabling FSO does not work as they still run in fake borderless window fullscreen mode. I can tell because the "Activate Windows" watermark will be displayed on the bottom right of my screen. But with DX11 mode + FSO disabled, the watermark will be completely overlapped by the game and thus not showing.

Running in DX12 borderless mode also create some other issues such as input delay, stuttering and Freesync not working in those games I've tested despite having overall framerate improvement. Is there a way to force DX12 into fullscreen exclusive?
Kill windows explorer via task manager when u boot the game up and then when u need to use it again, open task manager, and create new task explorer.exe

Bluranghi
Posts: 6
Joined: 06 Sep 2021, 14:11

Re: Is there a way to make DX12 games run in "true" fullscreen mode?

Post by Bluranghi » 07 Oct 2021, 16:16

Sorry if this is too old a thread to bump but I'm having this issue in Kena: Bridge of Spirits just now and wondered if there was a way to make the input lag the same as DX11... or maybe it already should be and I'm doing something wrong.

I set the game to exclusive fullscreen and disabled FSO on the exe, in DX11 this results in true exclusive fullscreen but in DX12 I can never get that working, its always this new fangled Windows interfering fullscreen afaik (its a borderless window is what I know).

The game already has quite a bit of general lag on movements and attacks, that + playing at 30hz means that the extra lag from DX12 pushes it over the edge of what is tolerable and makes aiming the bow feel really bad. I'm playing on controller but I can double check by moving the mouse and seeing there is a noticable increase in lag there too.

Play in DX11 would be the best thing to do ofc but the thing is that DX11 constantly has not-small stutters (which show as large frametime spikes on the RTSS overlay, sometimes 80ms) as I pan the camera and move through the world. DX12 fixes a lot of that and frametimes are much smoother overall but now I have the added lag. Both things are distracting as heck but for different reasons, even though input lag is generally lower in DX11 I still get lag on my inputs from the stutters so theres that too.

I tried the registry fix in this thread but no change there, DX12 mode is still not true exclusive fullscreen. You can't stop the DX11 stutters by lowering resolution even all the way down to 1080p (I'm at 2160p).

Am I out of luck here and just have to pick my poison? Thanks for reading and taking the time to reply in advance to whoever does.

(massive) N.B. I have to say I'm pretty puzzled by the amount of PC games being released with stuttering the last year or so, its been really bad, different reasons for the stuttering as well but main reasons seem to be shader compilation issues (Unreal Engine), whatever the hell Unity Engine does and giving no option for exclusive fullscreen. Some 2021 examples being: Deaths Door, Psychonauts 2, The Ascent, Sable and now Kena.

Also, and this is probably more a specific Ubisoft engine thing I'm sure but I was also trying Far Cry 5 on PC for the first time recently (Played on PS4 Pro in 2018 with no issues like this, but its 30hz there so maybe was just covering it up) and its atrocious in terms of framepacing and general stuttering. The framerate is solid and GPU usage isn't near max (70% on average) but I had to use RTSS to cap the fps to stop the frametimes being absolutely all over the place, it was like a thick fuzzy line on the graph it was so bad!

Even after that though setting v-sync to 60hz has random and constant frametime spikes every few seconds and massive constant spikes when I look at a dense geometry or large collections of NPCs (even though GPU usage remains under 80%) unless I cap to 30hz, where all these problems are gone.

Is that CPU related? Its not maxed on CPU1 or anything, but its a good old 3770K which I know is quite old now.

Post Reply