This is extremely bizarre, and has just started happening the past 2 days, all of a sudden.
Any DirectX 9 games in borderless windowed mode, will cause massive frame drops when the mouse is moved. Especially when I alt tab and interact with windows; moving the mouse cursor over start menu entries, dragging windows around, etc. If I move the mouse really fast, the screen will freeze until I stop moving the mouse. And will then constantly stutter when the mouse is moved.
I’ve tried this with Fallout New Vegas, The Sims 3, and World of Warcraft WotLK.
There are some really weird things going on here:
This does not occur in any Vulkan or DirectX 12 game. Elden ring in the background → Alt tab and drag windows really fast? Smooth as butter.
Copying over DXVK’s d3d9.dll to the DirectX 9 game’s executable folder, so the game will run with Vulkan? Smooth as butter.
When recording with OBS Studio, it does not pick up any of the frame drops and freezes. Everything in the recorded video shows as extremely smooth, and the mouse movement is captured as though the computer isn’t frozen. Meanwhile, what I’m seeing on the monitor, is a static image until I stop moving the mouse.
When the stutter has occurred, and I exit the game, the stutter and freezing continues to occur until I reset the driver using ctrl+shift+win+b. Then it’s back to normal.
This happens regardless of driver version. I’ve tried: 22.4.2, 22.q4 (pro), 22.10.2, 22.11.2, and Nimez’s 22.11.2SE modded driver.
I’ve tried this with my generic KableDirekt DP1.4 cable, and my VESA certified (according to the Displayport dot org site) Cable Matters DP1.4 cable. They have the exact same issue. I bit the bullet and ordered a Club3D cable as advised by the Youtube channel, but 30 pounds for a cable hurts and won’t be here for a couple days.
Edit: What I think is going on, is that my monitor’s DP port is failing. This issue only manifests on this monitor, and not any others. Even when the game is playing on the problem monitor, if I’m doing stuff in Windows on the second one there are no freezes or stutters.
Considering that the problem disappears when using a D3D9 → Vulkan wrapper, my guess is that the old GDI Composition method for displaying the render buffer on the display is not efficient enough to work properly with a dying DP port.
There was a recent bug in the Windows updates for December that affects specific AMD CPUs. You may want to see if you have the update and back that guy out.
Is that the KB502155 update? It seems to be just for Windows 11 22H2, whereas I have Windows 10 21H2. I did try uninstalling KB5021088 and KB5021233, which made no difference.
Yeah. I thought there was an equivalent for Windows 10. I have Windows 11 on my laptop (until I get time to install GNU/Linux). My system luckily refuses to install the update.
I had the monitor repaired in January, which solved the issue. And it has come back the past two weeks, but not as severely. Still leaving Windows an unusable mess without resetting the driver. Got a replacement of the same model of monitor, same issue.
Bought a new monitor, the Samsung G32A, which has Freesync Premium Pro. Displayed the same issue, so I did a fresh install of Windows 10 LTSC 2021. And it still happens with Direct3D 9 games.
I’ve tried three different cables; the crummy one that came with the monitor, an alright $15 one, and the expensive Club3D DisplayPort cable. All exhibit the same issue.
At this point, I’m thinking it’s either an issue with Windows 10 LTSC and AMD’s driver, or my Vega 56 is acting up. But it’s only in Direct3D 9 games, not Direct3D 11/12 or Vulkan games.
Well, darn. Sorry to hear that. I have an ASUS Radeon HD 7790 that I could let you borrow, but it will barely run anything modern. I just picked up a Sapphire RX 5700XT Nitro+ for about 215USD shipped on eBay. Maybe you can grab a base Sapphire 5700XT Pulse for like 150USD shipped as a test? I know it is throwing money at the problem but it will help you diagnose if it is the card or not.
Yeah that’s the unfortunate thing. To test it myself, I’ll have to buy a new graphics card to be pretty sure that I’m testing something that also isn’t used and worn out. 5700 XT’s Go for about £200 used here, which is the same price as a new RX 6600. At that point, I may as well just upgrade, but damn. That hurts, especially when it’s not because performance is an issue.
Just as an update, I’ve been checking out older driver versions. The exact same behaviour happens on 23.5.2, PRO 22.Q4 (latest two official), and 22.3.2. But it is different on 22.4.2!
On 22.4.2, on first D3D9 game launch, the display freezes are very slight and don’t happen while the mouse is moving; only when it stops moving then starts moving again.
After closing the game, about 10 seconds later, it then has the same behaviour as the other driver versions (extended mouse movement triggering the freezes). And persists when the game is launched a 2nd time.
I keep hearing turning freesynch off for DX9 games fixes the issue.
I actually did a dive on it over on the LTT forums before getting my current monitor, and from what I remember it is basically if you get the frame rate too low you start to notice a flash when the screen redraws. A lot of DX9 games just are better played with vsynch on at 60hrz.
Closest is this weird thing I get in Total War Warhammer 2 and 3 (didn’t play the 1st). The screen has that flickering with Freesync enabled. Someone apparently found a fix for that flickering, which is to use Custom Resolution Utility, and reduce the max VRR refresh rate by 1. So if it says 48-165, change it to 48-164.
That is a trick if you are playing one OLED and get the VRR flash issue. I have not experience but on GNU/Linux, VRR and HDR are still not a thing, officially.
In the old dx9 game my community plays, DAoC, we were able to placate this mouse-movement dropping FPS issue by lowering the mouse polling rate/resolution: down from 1000 to 500, or further to 250 worked for most players. The same effect was accomplished by turning on mousetrails while ingame (each time you opened the game).
About a year ago the developer put in a ‘fix’, but it was a bandaid and had consequences. They lowered input resolution by a factor of 9, so each 1 pixel became a 3x3 pixel grid regarding input. Not great and now we live with it. I liked our lower mouse polling rate fix much better.
My uninformed assessment leads me believe the core issue is dx9 draw commands conflicting/trying to keep up with high mouse settings that use the same path. Probably from emulation creating a bottleneck which Vulcan and a number of other dx9 to dx12 API proxy projects aim to work around.