AMD 5700 XT stutter and multiple second image freezes — Guild Wars 2 Forums
Home

AMD 5700 XT stutter and multiple second image freezes

[ TLDR ]

Nvidia card died, bought an AMD GPU, everything works except gw2 having massive issues.

The only solution was to use a third party API wrapper that proxies GW2 DirectX 9 calls to DirectX 12 (https://github.com/megai2/d912pxy) or a similar software that proxies Directx9/10/11 to Vulkan that is used in Steam for Linux (https://github.com/doitsujin/dxvk).

[ Long version ]

Last week my GTX 980TI decided to pass away and I was forced to look into a replacement GPU. Long story short, after a lot of research into the uproar in AMD drivers stability, I concluded that price/performance and stability wise one of the latest models (XFX third iteration -> THICC III Ultra) had perfect thermals, great performances and would set me back 400 euros instead of 600 for a similar performance gain from a 2070 Super.

I don't game as much anymore besides GW2, but I occasionally enjoy the latest and greatest (Doom Eternal), and since I game at 1440p I welcomed the increased performance at higher resolutions.

So, just for those wondering how my research paid out:

Latest drivers (Adrenaline 20.4.1 - optional) with the aforementioned card offered a similarly hassle-free experience to my old 980TI. Yes sometimes I get a crash, especially if I put my PC on sleep and then forget to reboot before gaming, but guess what? It happened with pretty much identical frequency on the latest nvidia drivers (I'm farly sure it's Windows to blame here, since I've been running Win 10 and this setup for over 4 years and I started having these issues relatively recently). The card is a beast, performs beyond expectations and it delivers hours and hours of continuous gameplay on demanding titles (such as Doom Eternal) without a single glitch, overheating or skipping frames.

Enter the game I spend most of my time in: GW2.

I am one of those daily fractals runners, every day I do my dailies and recs, and I like to heal (HFB). From the start I noticed the usual "stutter" that comes when you just load into a map and turn the camera 180 degrees to be severely worse. No big deal, since that's usually a temporary artifact that goes away as soon as everything is properly cached in the scene. I stepped into my first fractals with the new card and the horror of my new situation presented itself: at completely random times especially in visually intense scenes (think second level Cliffside when breaking the sigil where the floor is in flame) the image completely freezes (not the game mind you, just the image), and all I can do is guess what's going on and what I should do to keep my party alive.

Time for additional research then, surely there must be a way to fix this. Thinking back to the days I had ATI/AMD cards I remember them having issues with "powerplay", the features that balances the GPU frequency dynamically based on the GPU load. I had noticed that no matter what GW2 throws at it the GPU never absorbs more than 45W and hovers at around 800/900Mhz (out of 1750/2025 of its max frequency and boost). Back then the fix was pretty easy, dump the video card bios, alter the lookup tables for the frequency ranges and basically force it to stick to its maximum frequency at all load levels. This prevented crashes and freezes before, it was worth a try (I was still in disbelief though that after so many years this had not been fixed).

At least nowadays you don't have to flash a new bios on the cards, you can manage frequency pinning per application via the management software, so that was a quick test I could do. No dice, the problem persisted.

More reading feedback from other GW2 players showed that this was a pretty common issue with users of the Navi GPUs, and that the solution often reported was to employ something like the DirectX9 to DirectX12 API proxy for Guild Wars 2 (https://github.com/megai2/d912pxy) to, simply put, route all rendering calls through to DirectX 12.

Once installed all issues were gone, and the new performance obtained made the game feel better than it ever did since input and gameplay was not stomped by the frame rendering delays and everything felt more responsive and enjoyable. And I wish this was only an AMD driver issue, these benefits can be enjoyed by Nvidia users as well. If I hadn't gone down the AMD road it would have never occurred to me that such project even existed.

The performance differences are STARK and SHOCKING, I had never seen GW2 run that smoothly in all 7+ years that I've been playing it. While I don't care for smooth performances when it comes to GW2 (although it's very welcome), I do care about reliability, and depending on a third party software to be able to play effectively is simply an obscene proposition. These issues are very annoying at best, completely game-breaking in demanding group activities such as raids and fractals.

I always assumed that the stutter deriving from a 180 degrees turn of the camera on a new map was due to the culling computed by Umbra (the middle-ware employed for this task in the engine), but it's now dawning on me that the bottleneck in the engine is the graphics APIs, since shaders in Dirext12 and Vulkan are compiled and cached asynchronously, guess what? I might see a grey surface or character when I turn the camera, and until its shader is ready, but with the DX12 proxy there is no waiting for the frame to be complete and the stutter is gone. What's aggravating is that this makes gameplay dramatically more responsive than what it was on my Nvidia 980 TI, since in DX9 this inevitably affects input processing as well.

[ Questions ]
1. Are AMD cards tested with the game at all? If the DirectX driver implementation from AMD has limits surely something can be done to at least play nice with its handicaps and avoid complete stalls of the framebuffer.
2. If this is not a fluke for a minority of AMD users, and you can reproduce the issue, how about getting AMD onboard to figure out a solution to the hard stalls in their implementation?
3. What about the future of the game, Is a graphics API revamp being considered?

If a future rework of the renderer is out of the question because of the task's scope, can we at least have some insights from one of your rendering engineers on how to mitigate the issue? It's not like users can profile the engine on the AMD drivers stack and figure out what's clogging its gears.

Comments

  • KrHome.1920KrHome.1920 Member ✭✭✭✭
    edited April 19, 2020

    The issue of the navi stutters is related to games with very low GPU demands (or when you limit your fps), so that the GPU spends a lot of time in power saving states, which then fail to work properly for this GPU architecture.

    That D912PXY lowers the stutters might be a result of the increased load this wrapper puts on the GPU - so it has less idle times and does not enter power saving states.

    Everyting that increases the GPU load might work:

    • turn off frame limiters
    • turn off vsync (even though turning it on might even help in some cases as it uses a render ahead queue for the GPU)
    • enable supersampling / VSR
    • buy a better CPU that can feed the GPU better :p
    • ...
  • That was my initial assumption as well, but the full multi-second long freezes issue reared its ugly head even at 180FPS and by pinning frequencies to max. And that's the real problem.

    Gpu usage with the DX12 wrapper is ~19% with barely 40Watts of power consumption (fantastic), the problem with DX9 is probably a bit more complicated than just the old power-play issue that plagued AMD GPUs since before the HD5870.

  • Mack.3045Mack.3045 Member ✭✭
    edited April 20, 2020

    Hai, same gpu as you, using dx12pxy.
    Please try using the forward render (create shortcut add command line)
    Do not use vsync or any other sync options

    Let me know how you go. Gpu usage should increase

  • Same card same problems ive tried everything googled for days

  • @Snudge.6928 said:
    That was my initial assumption as well, but the full multi-second long freezes issue reared its ugly head even at 180FPS and by pinning frequencies to max. And that's the real problem.

    Gpu usage with the DX12 wrapper is ~19% with barely 40Watts of power consumption (fantastic), the problem with DX9 is probably a bit more complicated than just the old power-play issue that plagued AMD GPUs since before the HD5870.

    What settings are using in the Radion Software for that gw2-64.exe?
    I have everything turned off currently. Especially the Chill function I'm very suspicious about for games that need FPS. Great for games you spend a lot of time in menus.

    Regimentz, did d912pxy fix youre problem as well, or do you still have issues?

    In general issues with DX9 for the RDNA series of AMD still seems to be a "Known Issue".
    And yes, GW2 desperately needs an overhaul of their engine. I'm not talking DX12, that is nonsense as it locks it to Windows 10.
    Vulkan would be a better option, that brings Linux on the table, but locks out Macs, at least without an inofficial translater to Metal.
    But very likely the don't have the man power and maybe also the deeper knowledge of their engine anymore ...

  • Regimentz, did d912pxy fix youre problem as well, or do you still have issues?

    no i still get spikes up to few secs

  • Infusion.7149Infusion.7149 Member ✭✭✭✭

    Have you tried getting the shader cache pack from their github? https://github.com/megai2/d912pxy/wiki/Shader-packs

    Also try dxvk if d912pxy doesn't work out. https://github.com/doitsujin/dxvk/releases

  • @Infusion.7149 said:
    Have you tried getting the shader cache pack from their github? https://github.com/megai2/d912pxy/wiki/Shader-packs

    Also try dxvk if d912pxy doesn't work out. https://github.com/doitsujin/dxvk/releases

    I will try these now

  • I tried them both still get lag spikes

  • Also experiencing these stutters :(

  • d912pxy fixed the frame choppiness issues, and yes everything is disabled in my control panel for the gw2 executable. I also tried DxVk but it's far inferior in terms of smoothness and performances. I also had to disable freesync and 144hz refresh rate (in case you have such monitor/feature), because the game has swings so large in FPS that it causes stutter anyway.

    Ultimately, and most important of all because it affects EVERYTHING that uses any GPU accelerated API (dx, opengl, vulkan), there's currently a bug in the driver that introduces stalls in the gpu pipelines and is caused by Hardware Cursor (literally waving the mouse around affects FPS). In order to disable that the solution is to edit this registry key:

    "Computer\HKEY_CURRENT_USER\Control Panel\Mouse\MouseTrail" and set its value to "-1", then reboot/relog (see image below)

    https://imgur.com/B4Yn3t8

    I now have a better experience than with Vanilla DX9 on Nvidia, so I'm happy overall.

  • Interesting catch, thanks for sharing!

    Did you have Mouse Trails off or on before?
    Currently I have it off, including shadows. But that means the registry setting is on 0, not -1.

    Any disadvantages of -1 in other games?

  • Junkpile.7439Junkpile.7439 Member ✭✭✭

    I did this and game works ok. Was totally unplayable without.

    Low quality trolling since launch
    Seafarer's Rest EotM Hero

  • Snudge.6928Snudge.6928 Member
    edited May 11, 2020

    @Joe Farmer.2063 said:
    Interesting catch, thanks for sharing!

    Did you have Mouse Trails off or on before?
    Currently I have it off, including shadows. But that means the registry setting is on 0, not -1.

    Any disadvantages of -1 in other games?

    I always had it OFF (0 - Zero) in that registry key, the thing is... there's no way to disable hardware cursor in windows, and setting MouseTrails to -1 is a leftover, undocumented code, it tells windows to disable mouse trails AND it has the side effect of disabling the hardware accelerated cursor.

    You can tell it's rendering a software cursor in windows 10 when you open the start menu, and immediately move the cursor over the "OFF" icon: it disappears for a moment. In some games if you play in exclusive fullscreen mode with some APIs (Vulkan mostly) it simply does not render the cursor, in that case using a borderless windowed video mode fixes the issue.

    Shadows have nothing to do with it, it's specific to how the mouse affects the rendering pipeline (detailed discussion here: https://gitlab.freedesktop.org/drm/amd/issues/1001 on how the fix was researched and developed for the open source Linux AMD drivers). I have already submitted a bug report to the AMD windows driver team pointing to that patch, hopefully we'll get it ported to windows in one of the next versions of the drivers.

    I have since bough a freesync 144hz monitor and the experience is fantastic, aside from some stutter when the frame rate swings from 144 down to 50 rapidly. I was satisfied with d912pxy, much more than D9vk (using latest 0.40.something), but thanks to the video linked above I now know why, it has logging enabled by default (weird for a release version) and that might be what made it suffer. I'm going to give it another try.

    Hope the trick with the mouse cursor helps some of you!

  • Thanks, disappearing cursors confirms what I read with a quick run through the internet.
    I'm also running with 144Hz Freesync monitor and can confirm youre experience. It is one of those moments, when you were quite happy with youre rig before, but afterwards you think, kitten, should have bought the new one earlier :)
    Otherwise it seems I have been lucky. Rarely problems with multiple monitor setup (144Hz, 60Hz), stuttering in GW2 easily fixed with d912pxy.
    So I will keep the -1 in mind but will stay with 0 for the time being. At least it seems fixable in drivers, RDNA2 is still some time away.
    If I find the time I will experiment on the Windows Game Mode somewhat, seems that is not always a good idea.

  • Junkpile.7439Junkpile.7439 Member ✭✭✭

    Does it still load textures when you go new map if you use d912pxy?

    Low quality trolling since launch
    Seafarer's Rest EotM Hero

  • Technically I think it's shaders that are being compiled if they are not in the cache. But yes, still happening, and the visual effect is what you describe.
    But after a while it only takes a moment because most stuff is already compiled and saved in the cache. And apparently you can download precompiled shaders.
    Frankly, haven't tried D9VK yet, so I cannot say which one is better, if there is a competition at all. Started with d912pxy, solved my problem, did not look further I admit.

  • @Junkpile.7439 said:
    Does it still load textures when you go new map if you use d912pxy?

    You can download pre-compiled shaders if you want to (https://github.com/megai2/d912pxy/wiki/Shader-packs). I don't mind for it to generate them when I first encounter one that needs to be processed.

    Bonus: once you have all shaders compiled loading times are slightly faster than the dx9 standard version of the game.

  • I just bought a new gaming system an AMD Ryzen 9 3900X 3.8GHz Processor; AMD Radeon RX 5700 XT 8GB GDDR6; 32GB DDR4-and I get just a few seconds of frame shudder when just getting into the game or zoning into an area then averting runs fine no issues there after, annoying but not game breaking!

  • @Feirlista Xv.1425 said:
    I just bought a new gaming system an AMD Ryzen 9 3900X 3.8GHz Processor; AMD Radeon RX 5700 XT 8GB GDDR6; 32GB DDR4-and I get just a few seconds of frame shudder when just getting into the game or zoning into an area then averting runs fine no issues there after, annoying but not game breaking!

    Still, I would give d912pxy a try.
    I have a similar system, just 3700x instead (waiting for Zen 3 :)), same outcome, dp912pxy improves gameplay a lot.
    But could also be that AMD improved its handling of DX9 meanwhile. It is a known issue, driver team worked hard the last years, so there is hope :)
    I did not try it without since December, when I built my rig, so I can't say how new drivers handle it.

  • Yes adding the d912pxy Fix this issue for me!

  • Mr Bogus.9501Mr Bogus.9501 Member ✭✭

    HAHAHAHAHAA this actually kitten works!!! I have been struggling with this kitten for months. Oh man so happy now i just had to write this post to let it out. I tried everything under the sun so far and nothing worked until now. Anyway, thanks a lot good sir for making this post :)...

  • oh well everyone has the same problems. I have the same problems. 5600 Rx. GPU drop usage drop to 0 in-game. and freeze 1 sec every 15-sec playing. Anet needs to fix the game.