Stuttering on high end hardware - Vulkan + Windows 11
Moderator: GZDoom Developers
-
- Posts: 2
- Joined: Sat Dec 09, 2023 12:17 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): Windows 11
- Graphics Processor: nVidia with Vulkan support
Stuttering on high end hardware - Vulkan + Windows 11
Hi all,
I wonder if someone could shed some light on this? I've been getting stuttering issues when using the vulkan api on my system (specs at the bottom). I'm using the latest dev build of GZDOOM.
Essentially, the issue manifests as micro stutters and inconsistent frame times (fps seems to bounce around + or - 5 fps no matter what fps cap I use). I currently use v-sync and g-sync with a 140 fps cap (144hz monitor). I see similar behaviour, however, even if I turn off v-sync and g-sync; removing the fps cap sends my FPS sky high and I get screen tearing. I have tested this with numerous wads, but also in regular old DOOM II. I'm not using any gameplay mods.
I also see the occasional stutter when using openGL too, although it is not as bad - I get one tiny frame time spike every once in a while.
I am currently on Nvidia driver 537.58 (released in October this year) because I get massive performance issues on all current drivers (the 54xx.xx branch) - the latest drivers have some serious issues that are being investigated by Nvidia. As an aside, I've been sending them GPU traces and if you check Reddit or the Nvidia forums you will see a lot of people also complaining about similar issues.
Questions:
1) is anyone else experiencing this?
2) is there anything I can try to fix the issue?
3) is this more likely to be an Nvidia / Microsoft issue?
Specs:
RTX 4090
i7 14700KF
32GB DDR5 RAM
MSI MAG Tomahawk Z790 wi-fi MB
G27Q 1440p, 144hz monitor
Windows 11 23h2
I wonder if someone could shed some light on this? I've been getting stuttering issues when using the vulkan api on my system (specs at the bottom). I'm using the latest dev build of GZDOOM.
Essentially, the issue manifests as micro stutters and inconsistent frame times (fps seems to bounce around + or - 5 fps no matter what fps cap I use). I currently use v-sync and g-sync with a 140 fps cap (144hz monitor). I see similar behaviour, however, even if I turn off v-sync and g-sync; removing the fps cap sends my FPS sky high and I get screen tearing. I have tested this with numerous wads, but also in regular old DOOM II. I'm not using any gameplay mods.
I also see the occasional stutter when using openGL too, although it is not as bad - I get one tiny frame time spike every once in a while.
I am currently on Nvidia driver 537.58 (released in October this year) because I get massive performance issues on all current drivers (the 54xx.xx branch) - the latest drivers have some serious issues that are being investigated by Nvidia. As an aside, I've been sending them GPU traces and if you check Reddit or the Nvidia forums you will see a lot of people also complaining about similar issues.
Questions:
1) is anyone else experiencing this?
2) is there anything I can try to fix the issue?
3) is this more likely to be an Nvidia / Microsoft issue?
Specs:
RTX 4090
i7 14700KF
32GB DDR5 RAM
MSI MAG Tomahawk Z790 wi-fi MB
G27Q 1440p, 144hz monitor
Windows 11 23h2
-
- Posts: 2
- Joined: Sat Dec 09, 2023 12:17 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): Windows 11
- Graphics Processor: nVidia with Vulkan support
Re: Stuttering on high end hardware - Vulkan + Windows 11
Guest wrote:
> what mods are you loading?
Custom wads like Sunlust.
Other than that, just standard DOOM II iwad - I still experience the stutter even on vanilla DOOM II with vulkan.
> what mods are you loading?
Custom wads like Sunlust.
Other than that, just standard DOOM II iwad - I still experience the stutter even on vanilla DOOM II with vulkan.
-
-
- Posts: 3145
- Joined: Sat May 28, 2016 1:01 pm
Re: Stuttering on high end hardware - Vulkan + Windows 11
Go to the nvidia control panel and change "Power management mode" to "Prefer maximum performance". Then open the Windows 11 Settings app, go to "System > Power & Battery" and change "Power mode" to "Best Performance".
To clarify why this is needed (assuming it fixed the problem for you):
You need to disable power management for the GPU because with vsync on the GPU is bored to tears 95% of the time. When the GPU is powered up it renders the scene extremely fast, then idles for a long time while waiting for the next vsync. This causes the driver's crappy power management to think there's nothing to do, so it spins down the GPU. Then next frame it is too slow to render a frame since its powered all the way down. The GPU driver then spins up the GPU and the next frame is ultra fast and so the cycle continues forever with terrible stutter.
You also need to disable power management for the CPU. Here the problem is that Doom only ticks 35 times per second. If the scene is simple visually then the CPU doesn't have to do that much to render a frame. The OS powers down the CPU since it thinks there is little to do. The engine ticks and suddenly there IS a lot of work to do, but the CPU is powered down so it takes way too long. The OS powers up the CPU, the next frame is fast. All seems good, but unfortunately the average CPU load is now low and the OS decides to power down the CPU again and the cycle continues with stutters.
To clarify why this is needed (assuming it fixed the problem for you):
You need to disable power management for the GPU because with vsync on the GPU is bored to tears 95% of the time. When the GPU is powered up it renders the scene extremely fast, then idles for a long time while waiting for the next vsync. This causes the driver's crappy power management to think there's nothing to do, so it spins down the GPU. Then next frame it is too slow to render a frame since its powered all the way down. The GPU driver then spins up the GPU and the next frame is ultra fast and so the cycle continues forever with terrible stutter.
You also need to disable power management for the CPU. Here the problem is that Doom only ticks 35 times per second. If the scene is simple visually then the CPU doesn't have to do that much to render a frame. The OS powers down the CPU since it thinks there is little to do. The engine ticks and suddenly there IS a lot of work to do, but the CPU is powered down so it takes way too long. The OS powers up the CPU, the next frame is fast. All seems good, but unfortunately the average CPU load is now low and the OS decides to power down the CPU again and the cycle continues with stutters.
-
- Posts: 2
- Joined: Sat Dec 09, 2023 12:17 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): Windows 11
- Graphics Processor: nVidia with Vulkan support
Re: Stuttering on high end hardware - Vulkan + Windows 11
dpJudas wrote:
> Go to the nvidia control panel and change "Power management mode" to
> "Prefer maximum performance". Then open the Windows 11 Settings app, go to
> "System > Power & Battery" and change "Power mode" to
> "Best Performance".
Thanks so much. Turns out my I had already set my GPU to "Prefer maximum performance", but my CPU was set to the "High performance" power plan in Windows. Chaning it to "balanced" and setting "Best Performance" seems to have helped somewhat. Not sure how thought since I thought the "High performance" power plan would stop the CPU from downclocking.
I'm still getting the occasional stutter, but it is improved.
Also, just to add, setting the ingame FPS limit to 175 (an arbirtrary number way above my FPS cap of 140 using RTSS) seems to smooth out the frame time spikes by quite a lot. Not sure what's going on here, but maybe the ingame FPS counter was messing with the external RTSS cap?
> Go to the nvidia control panel and change "Power management mode" to
> "Prefer maximum performance". Then open the Windows 11 Settings app, go to
> "System > Power & Battery" and change "Power mode" to
> "Best Performance".
Thanks so much. Turns out my I had already set my GPU to "Prefer maximum performance", but my CPU was set to the "High performance" power plan in Windows. Chaning it to "balanced" and setting "Best Performance" seems to have helped somewhat. Not sure how thought since I thought the "High performance" power plan would stop the CPU from downclocking.
I'm still getting the occasional stutter, but it is improved.
Also, just to add, setting the ingame FPS limit to 175 (an arbirtrary number way above my FPS cap of 140 using RTSS) seems to smooth out the frame time spikes by quite a lot. Not sure what's going on here, but maybe the ingame FPS counter was messing with the external RTSS cap?
Last edited by nobleflame on Sun Dec 10, 2023 5:23 am, edited 1 time in total.
-
-
- Posts: 3145
- Joined: Sat May 28, 2016 1:01 pm
Re: Stuttering on high end hardware - Vulkan + Windows 11
If you stop trying to cap the frame rate with RTSS, does the stutter go away? The reason I'm asking is that I'm not doing that and GZDoom is running butter smooth on my 4080 paired with a 5950X AMD CPU.
-
- Posts: 2
- Joined: Sat Dec 09, 2023 12:17 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): Windows 11
- Graphics Processor: nVidia with Vulkan support
Re: Stuttering on high end hardware - Vulkan + Windows 11
dpJudas wrote:
> If you stop trying to cap the frame rate with RTSS, does the stutter go
> away? The reason I'm asking is that I'm not doing that and GZDoom is
> running butter smooth on my 4080 paired with a 5950X AMD CPU.
The stutter doesn't go away if I stop using RTSS. Generally, I find RTSS to be the most consistent way of leveling frame time graphs.
I have tried just using the in game cap and, while it is quite smooth, you sometimes get frame time variance (e.g. an in game 140 cap sometimes shows 138 - 142; whereas an RTSS cap will show a consistent 140 and a flat line).
> If you stop trying to cap the frame rate with RTSS, does the stutter go
> away? The reason I'm asking is that I'm not doing that and GZDoom is
> running butter smooth on my 4080 paired with a 5950X AMD CPU.
The stutter doesn't go away if I stop using RTSS. Generally, I find RTSS to be the most consistent way of leveling frame time graphs.
I have tried just using the in game cap and, while it is quite smooth, you sometimes get frame time variance (e.g. an in game 140 cap sometimes shows 138 - 142; whereas an RTSS cap will show a consistent 140 and a flat line).
Last edited by nobleflame on Sun Dec 10, 2023 6:25 am, edited 1 time in total.
Re: Stuttering on high end hardware - Vulkan + Windows 11
I have a similar issue, but I can fix it by setting "Vulkan/OpenGL present method" to DXGI swapchain in NVIDIA's Control panel profile for GZDoom.
Re: Stuttering on high end hardware - Vulkan + Windows 11
This definitely helps, thanks man!emperorsfist wrote: ↑Thu Dec 14, 2023 1:52 pm I have a similar issue, but I can fix it by setting "Vulkan/OpenGL present method" to DXGI swapchain in NVIDIA's Control panel profile for GZDoom.
Re: Stuttering on high end hardware - Vulkan + Windows 11
You're welcome! Mind you, I have no clue why Vulkan seems to do this lately. Other users seem fine...
-
- Posts: 169
- Joined: Mon Jul 12, 2021 1:45 pm
- Graphics Processor: nVidia with Vulkan support
Re: Stuttering on high end hardware - Vulkan + Windows 11
I used to have very similar issues and doing the three things described here - making sure the CPU runs at 100% clock speed, setting the GPU power plan to max. performance, and doing the DXGI swapchain thing - did indeed help. I believe these settings are valid for any system.
However, it doesn't end there, and every game and system is different with regards to VSync and frame rate settings and needs to be handled on a case-by-case basis. Some games will run better, if those settings are made externally (i.e., using the GPU drivers's control panel, or a tool like RTSS), but some other games may require having those settings be made in-game.
It partly depends on your screen's refresh rate and your game's frame rate. It also depends on the type of VSync technology and frame limiter type you are using, and on the monitor itself. Some monitors can only ever display their native refresh rate, and will fake anything else, leading to stutters (that was an interesting finding for me as my old Acer monitor wouldn't do that, but the Samsungs I have at work and home are very prone to "faking it"), while other monitors will actually display what they are receiving from the GPU.
So, my best recommendation is to try and see what works best for you.
However, it doesn't end there, and every game and system is different with regards to VSync and frame rate settings and needs to be handled on a case-by-case basis. Some games will run better, if those settings are made externally (i.e., using the GPU drivers's control panel, or a tool like RTSS), but some other games may require having those settings be made in-game.
It partly depends on your screen's refresh rate and your game's frame rate. It also depends on the type of VSync technology and frame limiter type you are using, and on the monitor itself. Some monitors can only ever display their native refresh rate, and will fake anything else, leading to stutters (that was an interesting finding for me as my old Acer monitor wouldn't do that, but the Samsungs I have at work and home are very prone to "faking it"), while other monitors will actually display what they are receiving from the GPU.
So, my best recommendation is to try and see what works best for you.
Re: Stuttering on high end hardware - Vulkan + Windows 11
It's happening to me in everything you mentioned, except i'm on AMD and Windows 10.
I have an RX 580 and i'm getting insane microstutters and jumping frametimes with the latest Adrenalin drivers. Only the Adrenalin 23.5.2 driver it becomes stable.
Only it's playable switching to OpenGL and even that, it's having some microstutters here and there.
Perhaps some issue with Windows?
I have an RX 580 and i'm getting insane microstutters and jumping frametimes with the latest Adrenalin drivers. Only the Adrenalin 23.5.2 driver it becomes stable.
Only it's playable switching to OpenGL and even that, it's having some microstutters here and there.
Perhaps some issue with Windows?