Can someone explain to me, please, what's difference and how is this possible? High chance of buggy stuff happening there.
I have 4 differently behaving runs in same test (techincally there were more. but i did them until caught all 4 states on screenshots).
With... Basically almost exactly same software setup.
1) Minimized Black Desert Online on remastered in city with lots of people around me (fishing event) for long enough so after opening and foregrounding game frames won't render in 1 or 2 seconds as if assets are rebuilding. As i have clean driver install and hadn't messed up with anything yet again, asset rebuilding works... "Normally".
Won't say pleasing, but "not normal" in my understanding is when game after foregrounding runs normally for second, THEN rebuilds assets for 1-2 seconds and after that goes running again. When this stuff begins to happen, chances for both sound stutters and/or game freezing almost completely increases exponentially. Yes, technically you can unfreeze game via volume changing (overlaying system element?) or alt-tabbing back and forth (alt-tabing may not fix issue and make game freeze instantly again, though). But that's doesn't fix problem!
2) Browser (Chrome Dev) with opened Youtube and playing videos.
3) MSI Kombustor. Test PBR-Donut, windowed, artifact scanning mode.
--------------------------------------------------------------------------------------------
What to pay attention on: VRAM frequency on screenshots and commentaries to them.
--------------------------------------------------------------------------------------------
Method of repeating is simple. Wait and run Kombustor. Then you have few possibilities. [GPU core frequency varies a lot in this test, so don't mind big differences in this number]
Variant 1: Everything runs as intended. Memory frequency is 2294-2304 as intended. When you return to the game, it runs fine and no asset rebuild is required.
Variant 2: Happens at random. Seemingly normal on first glance. But memory frequency is only around 900-1300 and not supposed 2300*. If you wait some time, or take screenshot, or run into game. Frequency have really high chance (close to 100%) return to supposed 2300 mHz value. Some actions usually are more effective than others in doing that. Screenshot almost guaranteed to ramp up memory frequency, while maximizing game can return you to low frequency state despite having full on 2300 while in game itself. Also going true fullscreen for this test makes this variant basically impossible to get from what i know.
*For information to some less knowledgeable people - it is impossible to set memory frequency manually to value this low. Test isn't hard on load. (it is used just to test VRAM artifacting on high frequency).
Variant 3: Worst from common ones. Frequency stays at 0, meaning memory STILL is deep in sleep. It won't come back until you force it on. When you maximize game, as memory frequency is at 0, it will rebuild assets for 1-2 seconds (in normal case instantly as you maximize it, in corrupted case it will happen second after).
BTW, fun part, and definitely a bug. When i attempted to record how launching game asset rebuilding cause memory frequency to actually be able to restore from 0 to supposed 2300, well... Game runs fine with 0 mHz memory frequency... For 2 seconds at max. Then it freezes, screen goes black, aaand... Crash!
And this one is consistent. Minimize BDO, wait for VRAM go into power down mode [you can check if line GPU Memory Clock exists. When it disappears this is time when VRAM powers down to 0 mHz and you can continue], then start recording, run MSI Kombustor tests, see that RivaTuner reports 0 mHz frequency as well, then open BDO from minimized mode (without stopping recording). Wait few seconds, aaand... crash. [Basically ... Record --> BDO asset loading = crash (may not be 100% chance to trigger. Record --> MSI Kombustor with 0 mHz memory --> BDO asset loading = crash]
Variant 4: "**bleep** is happening there". Actually this one was really strange. Core frequency is capped (not supposed to be like that. Especially taking in account power consumption which is no difference from normal one for this test and MUCH lower frequencies) , while memory is at 0 mHz. Framepacing graph have "pulse-like" appearance with terrible 1% lows and really low avg FPS.
I have 1 second recording of it made in attempt to see if recording could cause things to normalize somehow (forcing synchronisation, MPO issues and stuff...), but nothing changed. I have no idea how it happens in the first place (it was my first test today) and how to repeat it, but this one exists. Basically FPS got broken to hell as well as frame pacing (especially taking in account this is really light test).
Solved! Go to Solution.
UPD: ... Well, just discovered that this issue it opposite side of fix for VRAM being at max frequency at idle.
Basically if you disable FreeSync you will see if your monitor comply with VESA spec or not. AMD cards are EXTEREMELY picky about monitor vertical blanking value. If it is less than 77 (standard for CVT-RB and CVT-RB2) even by 1, VRAM won't ever sleep. But, they kinda fix this via FreeSync as it can force extension of v.blank by handling it by itself, but on opposite side of this bug sometimes VRAM behaviour breaks and goes to 0, while idle power goes up to 21W (from 31-35W at max VRAM freq).
Basically. Monitor manufacturer is at fault as they don't follow VESA spec. But AMD also at fault as they hadn't taken this into concideration during GPU development (it's not good to be this picky and tight to spec about values) and driver fixes.
Only real fix was to create custom resolution with CVT-RB2 standard values. (for 1920*1080 v.blank must be at least 77. For CVT-RB2 it must be not higher than 99 and for CVT-RB not higher than 86. At least for me. CVT doesn't care about v.blank but pixel clock frequency is MUCH higher)
It took me way to long to check if my monitor was affected by VRAM power down or not, as FreeSync gently masked the issue turning it into completely different one.
P.S. It also kinda looks like fixing v.blank also fixed image corruption on alt-tab/hovering over some elements in Chrome
P.P.S. Seems like CBT-RB2 defaults are tiny bit too much for my monitor to handle. Will try other choises.
UPD: After day of testing, CBT-RB2 defaults are fine. But my monitor clearly doesn't like them. Only ways to fix "input not supported" error caused by low range of FreeSync after setting vertical blanking to 77 (using standard) was either to increase horizontal blanking to 246+ which returned VRAM idle frequency issue, or to "technically" increase FreeSync minimum refresh rate from 48 to 49 (i set 50 for round number). Idk why it was like that, but it was. Still for me likely nothing changed as everything below 54 FPS was in LFC range (low framerate compensation) of refresh rate doubling, so everything remained same. Meaning 48-->96, 50-->100 anyways.
(If i set min FreeSync value to 60 though, it won't be fine, as anything below 60 or 61 will turn monitor to max refresh rate without LFC).
Well, let's hope this forum won't eat my answer. (It did so a lot, when i tried to add information before)
It is half-resolved, because issue is on hardware level. For example RDNA3 is compatible with wider variety of monitor than RDNA2. Issue is basically individual incompatability between GPU and monitor, because monitor expect GPU to "speak faster", and GPU cannot do that without ramping up VRAM clocks.
To compensate for that AMD made driver level widely applicable tweak, that relies on Freesync to adjust monitor timings on the fly. But as consequence, at some point VRAM falls down into 0 mHz trap, at which point you can only move it out manually (by launching a game, for example). And result of their tweak is why this topic exists.
Freesync workaround also have some issues, like those i mentioned in topic header:
Green corruption effect in some application (mostly some element in browsers) or at alt-tabbing between game and video window (usually in browser). At least such was my RDNA2 experience.
When VRAM gets stuck at 0 mHz, when you alt-tab into game, it will freeze frame for about 3 seconds then continue play normally (it can play fine for few seconds before freeze as well as freeze instantly on alt-tab, same reason in the end). And VRAM can get stuck at 0 MHz quite easily even if you just frequently alt-tab between game and browser.
But you CAN resolve this issue completely. Meaning GPU will properly communicate with monitor.
There is no permanent resolution to this, but issue can be mosly resolved with help of additional tool. What you have to do, is to create custom resolution with proper timings. This solution is quite robust, you only may need to reapply it from time to time, for example, when you update drivers. (not necessarily every time. Unless you do clean install, then you must do it again, because it will reintitialise monitor and apply fresh EDID data)
I will try to apply guide below:
**-------- how to do CRU fix---------**
There is such thing as using CRU (Custom Resolution Utility) to fix problem written above. It assumes you creating custom resolution for monitor, where timings are set in-spec. This will in theory (and often in practice) allow your GPU to sleep properly. To do that you will need Custom Resolution Utility tool (aka CRU). (Google and download)
**Step 1:** Launch CRU
**Step 2:** Click on "Add" button under "Detailed Resolutions" part of utility. If you have monitor with resolution/refresh rate above 1080p240, 1440p144 or 4k60 general option will be restricted by some values. In attempt to avoid if you may try creating custom resolution in different block. Click on Extension block CTA-861 line -> use selector above to change mode into DisplayID 1.3 (or 2.0) -> Click on "Add" button -> make sure "Detailed Resolutions" is selected -> Click "OK", new window will appear -> Click on "Add" in new window to add new resolution.
Be wary that DisplayID route is not for every monitor/GPU combination and use it only if creating custom resolution common way is impossible due to either pixel clock or vblank restrictions.
**Step 3:** Input your monitor refresh rate. (do not overdo it, you can try OC monitors with this and lots of caveats, but for purpose of fix, just your monitor input refresh rate that makes VRAM clocks stuck)
**Step 4:** On selector above, choose "CVT-RB", or "CVT-RB2" standard option. Preferrably CVT-RB for more compatability. CVT-RB2 is having slightly lower pixel clock, but instead is more restrictive on limits and not every GPU will properly interact with it. And, both of them have limits, it's just CVT-RB2 having much stricter ones. To check if you hit any limit, after selecting standard profile \[CVT-RB/RB2\], select "Manual". Now any value that goes over limit will be shown in red text. Most impactful is limit on pixel clock rate of 655.35 MHz (aka 2^(16).) If you hit limits you may try to fit under them, reset CRU to monitor defaults, then scale blanking values up slowly closer to numbers what CVT-RB2 shows you, but don't set any values lower than said defaults. You mostly want to INCREASE VERTICAL BLANKING, nothing else. If you still cannot fit pixel clock below limit, look at Issue 3.
Did some testing for basic detailed resolution block:
With CVT-RB2 defaults limits will be 3840x2160@74, 2560x1440@110, and 1920x1080@144.
With CVT-RB defaults limits will be 3840x2160@73 (not 74, but 73!), 2560x1440@155, and 1920x1080@257
DisplayID block will allow you to create basically any resolution, at least in theory. I checked and there was no warning even at 4k144.
Be mindful of pixel clock, aka bandwidth. If it becomes too high, it will go over limits of cable or connection, and then you will get black screen.
**Step 5:** Save the resolution. Close CRU utility (it writes on exit)
**Step 6:** (only if you use HDMI connection). Check resolution you created and remember pixel clock value. No return to main CRU interface. At bottom box there will be line that has HDMI mentioned \[if there isn't, double click onto "CTA-861" box and look for HDMI related parameter there\]... Click it, there will be "Maximum TMDC" parameter. If it is below pixel clock, increase it sligtly so it pixel clock of your resolution would be smaller than this value. Do not overdo it either. HDMI protocols of specific versions have limited max bandwidth (DisplayPort as well, but it's bandwidth is higher in general).
**Step 7:** In CRU folder, there is small file called "restart.exe" (or "restart64.exe", functionality is the same). Use it so GPU will reinitialize monitor with custom resolution applied. Do not close remaining window yet. If image had not appeared ("Input not supported") - press F8. It should not happen if you followed step 4 directly, but will mean that you either went over bandwidth limit of HDMI, or had some values either too high or too low.
**Step 8:** Now check result, if VRAM clocks are fixed (at they should be in theory). If not, you may need to tinker a bit more and check CRU tool page, maybe i missed something in this guide. If you still cannot get VRAM clocks tamed down, look at last part of Issue 3 below.
\[I hope i didn't miss anything...\]
**As CRU utility change is not permanent, it will reset every GPU driver update, so you will need to reapply it manually. If you don't want it, look at solution to Issue 2 below.**
Now... For the troubleshooting of CRU fix part.
**Issue 1:** Monitor started randomly lose input ("Input not supported"). Not constantly, but randomly!
**Solution 1:** You didn't follow step 6 and went over HDMI programmed limit. Resolve that.
**Solution 2:** If you use FreeSync and input is being lost only on low FPS situations (not everyone will have this issue), forcing you to either reboot or unplugging cable, waiting for 5 sec and plugging it back to get input back, then it's monitor. To fix that you will need to open CRU, look at bottom box and double click onto "CTA-861" line, here you can find "Freesync range" parameter. Open it. Look at minimal refresh rate and increase it slightly (48-->49 Hz was already enough for me). Then use "restart.exe" to apply change and check if issue persists. If monitor has LFC support (Low framerate compensation), then you won't even see any difference in behaviour. To test Freesync fix you can use AMD Freesync Oasis test... \[to do that launch test. Set Freesync to enabled. Set FPS to sweep (double click on FPS option to change mode). Then open settings and start fast toggling texture resolution scale from 100 to 300, then 300 down to 10... 10 full cycles should be enough to ensure that fix worked\]
**Issue 2 (In theory fix below only works for custom resolutions that fit under all restrictions, especially being under 655.36 mHz pixel clock):** CRU fix randomly stops applying. It can be either on driver update (as it resets CRU changes), or just randomly.
**Solution** is quite elegant and simple. Duplicate it to Adrenaline custom resolutions. As you already have it applied, just go Adrenalin software --> Gaming --> Display --> Custom Resolutions --> Create New. It will prefill parameters with one that are currently being used (aka ones with CRU fix). So just save it. Now you locked this resolution on driver level, so as long as you don't factory reset driver (and/or have settings backed up) it will persists as long as your other parameters on driver do even through update. Unless you also did HDMI bandwidth or Freesync range fixes. If you did, then you still will need to reapply CRU profile every time you update GPU drivers.
**Issue 3:** You either cannot tame VRAM no matter what you set, or you cannot create CRU for your resolution/refresh rate.
**Solution**: If your GPU doesn't like CVT-RB2 timing table, try setting CVT-RB, or Automatic (PC/HDTV) before giving up. Automatic (PC/HDTV) will likely hit bandwidth limit even earlier than CVT-RB2. If you still couldn't tame VRAM after that means that probably, at least for now, you won't be able to fix this issue. (But you can try every now and then, maybe something will change).
And if you cannot create custom resolution try DisplayID route, and if for some reason it still didn't work, then my condolences. If nothing worked, then, at least for now, i don't know another workaround. But maybe you could find it?
UPD: Managed to record video (not with screen capture ofc), that shows both strange behaviour from variant 4, as well as driver crash on asset reloading that was described within variant 3 description.
6750XT. 22.10.3 asset reloading driver crash + issue with correct VRAM power state recovering
Can anyone on AMD side look into these problems? Sorry, @Matt_AMD, @Ray_AMD for tagging you... again. I don't know who i can or should actually tag this towards.
Additional information. Managed to capture improper VRAM recovery on heavy load application.
For details.
1) As soon as you foreground game in this state it will freeze. And either load REALLY long time, or eventually crash driver for no responsiveness. Sometimes it can even hang up whole system requiring hard reset.
2) You still can move away from game window if you overlay ANYTHING on top of it, no matter if it is Windows interface overlay, alt-tabbed other application window or Ctrl+Alt+Delete / Win+Tab / Any another way to cause overlaying images.
3) When you attempting to move away from frozen game, action will be HEAVILY delayed.
4) As long as you have anything overlayed on top of game in this state, game will run fine, and even with max framerate (max load). But as soon as you go back to the game - it will freeze again.
5) Seems that enabling desktop recording can "fix" this behaviour with some lag. But in some other cases (as i showed in video linked to a previous post), it can just crash driver as well (Black Desert Online).
More detailed, but recorded on phone.
AMD 6750 XT, 22.10.3, Improper VRAM power state recovery after switching tabs. [Warframe]. + enabled...
How VRAM state restoration looked being recorded via Adrenalin screen capture.
VRAM state restoration via screen capture enabling. Recorded via Adrenalin
UPD: On state of 22.11.1 such crash via BDO and screen recording still persists.
UPD 2: 22.11.2
Driver crash on maximizing BDO with VRAM in power off state and screen recording enabled still persists.
Gathered more data from DVR log (recording failure).
https://pastebin.com/B4HNWeSP
Key line is
Thread Id:9260 2022:13:02-08:37:04.531 ERROR pipeline_component DX12 device removed, reason 887a0007
Basically DXGI_DEVICE_HUNG error, but this one is definitely caused by driver.
After this trigger there are bunch of errors that end up like this
AMF_ERROR 18 : AMF_DIRECTX_FAILED
OpenCL failed, error = -4:InteropFromDX11ToOpenCLImage() clCreateFromD3D11Texture2DKHR() failed
OM failed, HR = 887A0005:CreateNativeSurface - CreateTexture2D failed
PrivateChannelDx11.cpp(165):Assertion failed:D3D Device removed.
But these are results, and not cause.
Another UPD: There is quite high possibility that incorrect behaviour, that causes games to go in permafreeze state is related to vertical synchronisation. Currently trying out VSync = Force OFF globally, hadn't met permafreeze in 1.5 days or so. Which is big progress, as it was decently frequent problem.
@Matt_AMD, @Ray_AMD. Sorry for bothering you two again (i really don't know who else i can call out towards). Can confirm that vertical synchronisation and Enchanced sync are kinda in broken state right now. Especially if different applications set different preferences with other applications.
Tried to do vsync always on enchanced sync
And first thing i got when i launched game when my video memory was in power down state (0 mHz) is THIS
That 144 hz is not what supposed to happen with Enchanced sync. And especially not with 0 mHz VRAM IN GAME WITH ACTIVE MOVEMENT! What was more surprising, though, is there was no lag in-game, it run fine, when everything reported no memory frequency. And even with alt-tabbing back and forth memory frequency stayed at 0 mHz. Is it reporting issue? I don't know. But as soon as i made this screenshot FPS got unlocked (look number 2) below). I will look if i am able to repeat this behaviour.
More fun!
1) That is how it is supposed to be with Enchanced sync and with unlocked FPS (and it is unlocked). Or with vsync being off.
Then, we are trying to experiment a bit...
2) Alt-tab out and back to game. Vsync is forced again. Press printscr... FPS becomes unlocked, **bleep**!
3) Alt-tab out and back again. VSync is again forced. Open Adrenaline overlay. Close overlay. FPS is now unlocked
4) VSync is being constantly forced on when overlay is active. Even if game was in FPS unlocked state
P.S. If you disable Enchanced sync (but leave vsync forced on), then you won't get constant switching between locked and unlocked FPS. FPS will always be locked
Granted i hadn't yet seen application permafreeze again, but i barely tried using forced on vsync. And i am pretty sure now that there is heavy chance for some synchronisation conflicts that can happen in background
And as i need to have unlocked FPS in some places i would prefer to either have working as intended Enchanced sync (that should not refer to previously set and now locked down vertical synchronisation option below it), or just use vsync as forced off. . . So... i will try again "off until application specifies" and will report if i see permafreeze happening again.
UPD: Couldn't repeat loading Warframe with 0 mHz memory clock. as it ramps up to normal value. Vsync is still really inconsistent.
UPD 2: Managed to get Warframe running with 0 mHz memory clock reporting. This time in mission. But when i launched it memory frequency was ok, and broke at some point in playing after switching between game and background application and back. When i started screen capture, game froze for second, then continued with max memory frequency. Maybe it had like 10-20 more FPS after?
As an additional issue. Adrenaline overlay is randomly flickering SO MUCH sometimes when running on top of Warframe.
1) Usual flickering (didn't happen before 22.11.1 actually) case.
22.11.1 Common flicker in Adrenaline when switching between tabs [YouTube]
2) Strange insane level of flickering.
EPILEPSY WARNING!
22.11.1 Adrenaline intense flickering overlayed on Warframe
If had that in wow when ray tracing shadows where glitchy at entrance to oribos in wow from the portal area but that got fixed or went away, but overlay used to be really glitchy on same spot.
not that bad as your video but yeah glitchy i think it caried over in game as well
Small UPD:
Got game permafrozen again. It was BDO. Used vsync "off, until application specifies" and enchanced sync combo.
Will try several days with vsync forced off again.
Behaviour difference
Off, until application specifies + enchanced sync. In game FPS is unlocked and stable. When you try to overlay anything on top, broken vsync engages. That vsync not just limits FPS and synchronizes it, but it also gets affected by any action with overlay, making FPS go down the pit with downwards spikes at random
--------------------------------------
That's how looks Globally off with Enchanced sync AFTER GAME RESTART (because it wouldn't apply on the fly to BDO).
As you can see no background FPS limitation is happening.
Another update. Got another permafreeze. This time it was Warframe.
Seems culprit is some vsync conflict caused by "Off, unless application specifies" and, maybe, Enchanced sync or application requests?
@Matt_AMD, @Ray_AMD . Again, sorry for tagging you both, but i really have no idea who else i can report this to.
Found serious issue with Enchanced sync. In recent drivers (after 22.10.2) it appears as less frequent with Freesync being enabled, but It becomes MUCH worse if Freesync is disabled. Visible (hearable) result of this issue is consistent sound stutter when person switches between borderless-windowed or borderless-fullscreen application and different window (alt-tab). Related track for this is consistent 100000-200000+ microseconds (100-200 ms) both interrupt to DPC as well as 100000+ microseconds (100+ ms) dxgkrnl.sys DPC routine execution time by LatencyMon
Games that were confirmed as affected
1) Warframe
2) Black Desert Online
3) Divinity 2: Original Sin
4) Pathfinder: Wrath of the Righteous (frequency less... cause is lower FPS?)
5) XCOM 2: War of the Chosen
6) Witcher 3
7) Path of Exile (DirectX 11, DirectX 12)
9) Destiny 2 (windowed-fullscreen or borderless windowed...)
10) Call of Duty MW2 Warzone (borderless fullscreen - only when you alt+tab OUT of game, borderless-windowed - both on out and in)
11) Call of Duty Warzone (borderless-windowed)
12) Blood Bowl 2 (locked to 60 FPS, stutter only on return, happens instantly)
Games and cases that were NOT affected
1) Elden Ring (too low FPS? True fullscreen?)
2) Path of Exile (VULKAN)
3) King's Bounty (NOT King's Bounty II !!!)... (DirectX 9? Different type of exclusive fullscreen mode?)
4) Minecraft (OpenGL? It also have issue when taskbar overlays on game window if it runs not in fullscreen mode. But this is not AMD issue.)
5) Destiny 2 (Fullscreen mode. I was surprised there was no return stutter, actually!)
6) Call of Duty MW2 Warzone (Exclusive fullscreen, no return stutter)
7) Call of Duty Warzone (Exclusive fullscreen, no return stutter)
More details about this issue:
1) Seems like only DirectX 11 and DirectX 12 are affected. Also only borderless-windowed, borderless-fullscreen modes are affected.
1.2) Exclusive fullscreen as well as windowed modes aren't affected. OpenGL and VULKAN also likely aren't affected. I am not sure about DirectX 9...
2) When ENCHANCED SYNC vsync mode is used with FREESYNC=OFF (on driver level) state (both with FORCE OFF or FORCE ON mode in background, as they still affect behaviour)- alt+tab to another application (even to Notepad++ i wrote this notes with) will almost guaranteed cause sound stutters.
2.1) Disabling Freesync from monitor side doesn't change overall behaviour.
2.2) When you RETURN to the game there will be another sound stutter, but about 2-3 seconds later. After that, there will no be stutters unless you try alt+tab again
2.3) Depending on windowed-fullscreen realisation there can be sound stutter either on attempt to go out from application, or after you return back. Some fullscreens are actually only in name such, and actually are borderless-fullscreen. True fullscreens take some time to return back into game and there will be no sound stutter seconds after.
3) When you use FORCE OFF vsync mode (enchanced sync disabled) and FREESYNC=OFF state, there are no lags or sound stutters on alt-tab. Even if i have global vsync set as FORCE ON in background.
3.2) Where there is ENCHANCED SYNC + FREESYNC both enabled at same time, issue becomes barely presentable, but still persists. Sometimes it appears out of nowhere for singular time sound stutter.
4) Setting artificial FPS limit to below or equal to monitor refresh rate won't resolve issue with sound stutters on alt+tab that i mentioned above.
4.1) Seems like if games renders low FPS count, there will be less chance for stutter to happen
4.2) Seems like some games will still have return stutter, despite not showing up stutter on going away from game.
Additional information
1) BDO only unlocks FPS if used FORCE OFF or ENCHANCED SYNC vsync modes. By default game always force vsync.
1.2) BDO only applies chosen vsync mode ONCE! At moment of launch. After that, you CANNOT CHANGE IT (unless you close game and open it again).
2) Sometimes Adrenalin in overlay mode gets really fed up with my tests and begins to REALLY INTENSLY flicker. I mentioned this issue in one of messages above. But i am unable to consistently repeat this issue. It just sometimes happens.
3) On return to the games i frequently saw "corruption lines" which were referred to in previous driver updates. Perhaps these issues corresponds with each other?
22.11.2. This particular issue still persists.
Additional information.
Confirmed that issue only appears if BOTH windowed game optimisation and fullscreen optimisations are enabled in Windows.
If you disable either one of them, or both, this problem with sound stutters on alt-tab will disappear.
23.2.1 this particular issue still persists.
--> When Enchanced sync is on and Freesync is off during game on switching windows sound stutters.
Small update. Seems like issue only appears if there is actual media sound playback on background. Both YouTube in Chrome and MPC-HC with both video and audio in formats FLAC, mp3 and ogg.
Another condition is that there must be no windowed overlays on top of games. Embedded one don't count (like RTSS). For example What'sApp audio call make issue completely disappear.
I've been trawling the web the past few days because I've been having very small band-like glitches in specifically Warframe with my 5700 XT (driver ver. 23.2.1) and came across this thread which seemed to be the only pertinent thread I could find discussing this specific issue anywhere.
I have found that the same audio issue persists, notably if I had Youtube or Twitch on on my other monitor (only while the stream/video was playing, even if muted. If paused, the banding stopped). Potentially Discord as well but I haven't been able to solo that one out yet to test it. Spotify, however, seems to work perfectly fine. Additionally, attempting to capture the game window (specifically the application itself and not my screen) with OBS yields a video file that shows no sign of the banding glitches. A video I had to take with my phone as a result is here:
23.4.3
Issue still persists. Moreover now when condition Enhanced Sync - ON, Freesync - OFF is being set after alt-tabbing will cause not just sound stutter but screen will blink black after few seconds with second stutter. Probably due some driver level delay being set to resolve different issue?
Either way, roundabout way to fight this issue specifically is decently simple - just disable Enhanced Sync.
Currently will test sound stutters with Enhanced Sync - ON, Freesync - ON being set
23.5.1
Issue still persists.
23.7.1 issue still persists... But i don't play with Enchanced sync atm anyways, just test new drivers on fix.
Corruptions on alt-tab though seems like got fixed, YAY!
I am having the same issue as well! Latest drivers, Windows 11 22H2, 6900XT GPU.
I have the same issue on all drivers after 22.5.1. 1-2 second freezes after alt-tabbing into a game putting a sudden load on the GPU. It's more evident when using a background frame limit on the game. After approx. 30s after tabbing out of the game VRAM clock speed shows as 0MHz in Adrenaline and is not visible on HWInfo. After the freeze, VRAM returns to normal.
I have also observed the same VRAM clock behaviour when the PC is idle and freezing when fullscreening videos on YouTube.
I checked both the GPU and VRAM via stress tests in OCCT and no hardware errors were found.
It isn't HW error, it is more about power management setup. And it doesn't make it more efficient, so i have no idea why it is even there. Also it may be tied to window management engine of Windows (DWM), but who knows.
But yeah main issue still persists on state of 23.5.2. Pretty sure all other listed issues persist as well
23.7.1 Issue still persists
23.8.1 Issues still persists. Not present when freesync is disabled but much higher power draw.
UPD: ... Well, just discovered that this issue it opposite side of fix for VRAM being at max frequency at idle.
Basically if you disable FreeSync you will see if your monitor comply with VESA spec or not. AMD cards are EXTEREMELY picky about monitor vertical blanking value. If it is less than 77 (standard for CVT-RB and CVT-RB2) even by 1, VRAM won't ever sleep. But, they kinda fix this via FreeSync as it can force extension of v.blank by handling it by itself, but on opposite side of this bug sometimes VRAM behaviour breaks and goes to 0, while idle power goes up to 21W (from 31-35W at max VRAM freq).
Basically. Monitor manufacturer is at fault as they don't follow VESA spec. But AMD also at fault as they hadn't taken this into concideration during GPU development (it's not good to be this picky and tight to spec about values) and driver fixes.
Only real fix was to create custom resolution with CVT-RB2 standard values. (for 1920*1080 v.blank must be at least 77. For CVT-RB2 it must be not higher than 99 and for CVT-RB not higher than 86. At least for me. CVT doesn't care about v.blank but pixel clock frequency is MUCH higher)
It took me way to long to check if my monitor was affected by VRAM power down or not, as FreeSync gently masked the issue turning it into completely different one.
P.S. It also kinda looks like fixing v.blank also fixed image corruption on alt-tab/hovering over some elements in Chrome
P.P.S. Seems like CBT-RB2 defaults are tiny bit too much for my monitor to handle. Will try other choises.
UPD: After day of testing, CBT-RB2 defaults are fine. But my monitor clearly doesn't like them. Only ways to fix "input not supported" error caused by low range of FreeSync after setting vertical blanking to 77 (using standard) was either to increase horizontal blanking to 246+ which returned VRAM idle frequency issue, or to "technically" increase FreeSync minimum refresh rate from 48 to 49 (i set 50 for round number). Idk why it was like that, but it was. Still for me likely nothing changed as everything below 54 FPS was in LFC range (low framerate compensation) of refresh rate doubling, so everything remained same. Meaning 48-->96, 50-->100 anyways.
(If i set min FreeSync value to 60 though, it won't be fine, as anything below 60 or 61 will turn monitor to max refresh rate without LFC).
Thank you for this! I was having random drops of Memory clock to 0MHz (+severe compute performance degradation) for a long time and had also narrowed it down to being related to Freesync. I had tried a lot of things, but the only 'fix' was disabling Freesync, with a high idle power use as the result.
After reading your post above, I went into AMD software and made a custom resolution only changing the timing standard to "CVT - reduced blanking". Haven't had the 0MHz crash since!
In my case it was a RX6800XT and a 144Hz monitor with Freesync premium.
Several people on r/AMDHelp have been posting issues with memory clock crashing for years now.
https://www.reddit.com/r/AMDHelp/comments/170t83s/6900xt_vram_clock_0mhz_sometimes/
https://www.reddit.com/r/Amd/comments/108xf16/vram_clockspeed_at_zero_even_after_overclocking/
https://www.reddit.com/r/AMDHelp/comments/1b8efo3/reported_vram_randomly_drops_to_0mhz_degraded_gpu/
https://www.reddit.com/r/AMDHelp/comments/14yf9kc/rx_6600_memory_clock_goes_to_0_and_freezes_game/
https://www.reddit.com/r/AMDHelp/comments/17wl0au/anyone_else_has_this_issue_too/
...and the conclusion is it's due to AMD (Freesync) not being able to handle certain monitor timings.
Would be nice if AMD software could warn if your monitor is out of supported specification and could cause issues + offer to try a (custom) resolution with standard specs e.g. CVT - Reduced blanking.
It does seem to be an issue between GPU and monitor. With FreeSync disabled VRAM is maxed out constantly at 144Hz 3440x1440p. Creating a custom resolution resolves the VRAM issue, no longer seeing low/0Mhz when alt-tabbed or maxed when idle, but the maximum my monitor can handle is 110Hz 3440x1440 with default CRT-RB2 settings from CRU.
Hello, I've been having this same issue since I got my RX 6600 several months ago and I still can't find a workaround for this other than to always have two monitors on (this causes another issue which forces the VRAM clock to always be maxed out...).
My question is, does this get fixed by forcing Vsync OFF on every application? I've never used Enhanced Sync so that does not apply to me. I would appreciate the help.
You mean sound stutters?
Just disable windowed-game optimization in Windows 11
But if you are about VRAM power-down state? Well, it isn't fixable. And usually it isn't even much of an issue, just stuff that happens.
As of now the problem vram 0mhz is still not fixed... Up for someone at AMD to pay attention XD
What does this link mean? I understand the problem but why do I have to accept reducing the screen refresh rate to fix it? even though it causes a 2-5 second freeze when opening the game? Can AMD not solve this simple problem or do they not want to fix it?
Sorry for late answer.
It is likely hardware flaw which was at least partially (for me it is confirmed as fix, for others depends on monitor, i suppose) fixed for RDNA3. For RDNA2 though they can only use FreeSync to mask issue, sadly. But there are consequences that come from that.
Hi, I have the same problem with my Sapphire RX 6700XT (Memory Clock Speed gets stuck at 0 MHz).
I don't quite understand if the issue has been solved or not in this thread.
Also, is the problem caused by the GPU or is it the monitor?
I would really appreciate an answer because I've been trying for months to solve this problem.
Thank you.
Well, let's hope this forum won't eat my answer. (It did so a lot, when i tried to add information before)
It is half-resolved, because issue is on hardware level. For example RDNA3 is compatible with wider variety of monitor than RDNA2. Issue is basically individual incompatability between GPU and monitor, because monitor expect GPU to "speak faster", and GPU cannot do that without ramping up VRAM clocks.
To compensate for that AMD made driver level widely applicable tweak, that relies on Freesync to adjust monitor timings on the fly. But as consequence, at some point VRAM falls down into 0 mHz trap, at which point you can only move it out manually (by launching a game, for example). And result of their tweak is why this topic exists.
Freesync workaround also have some issues, like those i mentioned in topic header:
Green corruption effect in some application (mostly some element in browsers) or at alt-tabbing between game and video window (usually in browser). At least such was my RDNA2 experience.
When VRAM gets stuck at 0 mHz, when you alt-tab into game, it will freeze frame for about 3 seconds then continue play normally (it can play fine for few seconds before freeze as well as freeze instantly on alt-tab, same reason in the end). And VRAM can get stuck at 0 MHz quite easily even if you just frequently alt-tab between game and browser.
But you CAN resolve this issue completely. Meaning GPU will properly communicate with monitor.
There is no permanent resolution to this, but issue can be mosly resolved with help of additional tool. What you have to do, is to create custom resolution with proper timings. This solution is quite robust, you only may need to reapply it from time to time, for example, when you update drivers. (not necessarily every time. Unless you do clean install, then you must do it again, because it will reintitialise monitor and apply fresh EDID data)
I will try to apply guide below:
**-------- how to do CRU fix---------**
There is such thing as using CRU (Custom Resolution Utility) to fix problem written above. It assumes you creating custom resolution for monitor, where timings are set in-spec. This will in theory (and often in practice) allow your GPU to sleep properly. To do that you will need Custom Resolution Utility tool (aka CRU). (Google and download)
**Step 1:** Launch CRU
**Step 2:** Click on "Add" button under "Detailed Resolutions" part of utility. If you have monitor with resolution/refresh rate above 1080p240, 1440p144 or 4k60 general option will be restricted by some values. In attempt to avoid if you may try creating custom resolution in different block. Click on Extension block CTA-861 line -> use selector above to change mode into DisplayID 1.3 (or 2.0) -> Click on "Add" button -> make sure "Detailed Resolutions" is selected -> Click "OK", new window will appear -> Click on "Add" in new window to add new resolution.
Be wary that DisplayID route is not for every monitor/GPU combination and use it only if creating custom resolution common way is impossible due to either pixel clock or vblank restrictions.
**Step 3:** Input your monitor refresh rate. (do not overdo it, you can try OC monitors with this and lots of caveats, but for purpose of fix, just your monitor input refresh rate that makes VRAM clocks stuck)
**Step 4:** On selector above, choose "CVT-RB", or "CVT-RB2" standard option. Preferrably CVT-RB for more compatability. CVT-RB2 is having slightly lower pixel clock, but instead is more restrictive on limits and not every GPU will properly interact with it. And, both of them have limits, it's just CVT-RB2 having much stricter ones. To check if you hit any limit, after selecting standard profile \[CVT-RB/RB2\], select "Manual". Now any value that goes over limit will be shown in red text. Most impactful is limit on pixel clock rate of 655.35 MHz (aka 2^(16).) If you hit limits you may try to fit under them, reset CRU to monitor defaults, then scale blanking values up slowly closer to numbers what CVT-RB2 shows you, but don't set any values lower than said defaults. You mostly want to INCREASE VERTICAL BLANKING, nothing else. If you still cannot fit pixel clock below limit, look at Issue 3.
Did some testing for basic detailed resolution block:
With CVT-RB2 defaults limits will be 3840x2160@74, 2560x1440@110, and 1920x1080@144.
With CVT-RB defaults limits will be 3840x2160@73 (not 74, but 73!), 2560x1440@155, and 1920x1080@257
DisplayID block will allow you to create basically any resolution, at least in theory. I checked and there was no warning even at 4k144.
Be mindful of pixel clock, aka bandwidth. If it becomes too high, it will go over limits of cable or connection, and then you will get black screen.
**Step 5:** Save the resolution. Close CRU utility (it writes on exit)
**Step 6:** (only if you use HDMI connection). Check resolution you created and remember pixel clock value. No return to main CRU interface. At bottom box there will be line that has HDMI mentioned \[if there isn't, double click onto "CTA-861" box and look for HDMI related parameter there\]... Click it, there will be "Maximum TMDC" parameter. If it is below pixel clock, increase it sligtly so it pixel clock of your resolution would be smaller than this value. Do not overdo it either. HDMI protocols of specific versions have limited max bandwidth (DisplayPort as well, but it's bandwidth is higher in general).
**Step 7:** In CRU folder, there is small file called "restart.exe" (or "restart64.exe", functionality is the same). Use it so GPU will reinitialize monitor with custom resolution applied. Do not close remaining window yet. If image had not appeared ("Input not supported") - press F8. It should not happen if you followed step 4 directly, but will mean that you either went over bandwidth limit of HDMI, or had some values either too high or too low.
**Step 8:** Now check result, if VRAM clocks are fixed (at they should be in theory). If not, you may need to tinker a bit more and check CRU tool page, maybe i missed something in this guide. If you still cannot get VRAM clocks tamed down, look at last part of Issue 3 below.
\[I hope i didn't miss anything...\]
**As CRU utility change is not permanent, it will reset every GPU driver update, so you will need to reapply it manually. If you don't want it, look at solution to Issue 2 below.**
Now... For the troubleshooting of CRU fix part.
**Issue 1:** Monitor started randomly lose input ("Input not supported"). Not constantly, but randomly!
**Solution 1:** You didn't follow step 6 and went over HDMI programmed limit. Resolve that.
**Solution 2:** If you use FreeSync and input is being lost only on low FPS situations (not everyone will have this issue), forcing you to either reboot or unplugging cable, waiting for 5 sec and plugging it back to get input back, then it's monitor. To fix that you will need to open CRU, look at bottom box and double click onto "CTA-861" line, here you can find "Freesync range" parameter. Open it. Look at minimal refresh rate and increase it slightly (48-->49 Hz was already enough for me). Then use "restart.exe" to apply change and check if issue persists. If monitor has LFC support (Low framerate compensation), then you won't even see any difference in behaviour. To test Freesync fix you can use AMD Freesync Oasis test... \[to do that launch test. Set Freesync to enabled. Set FPS to sweep (double click on FPS option to change mode). Then open settings and start fast toggling texture resolution scale from 100 to 300, then 300 down to 10... 10 full cycles should be enough to ensure that fix worked\]
**Issue 2 (In theory fix below only works for custom resolutions that fit under all restrictions, especially being under 655.36 mHz pixel clock):** CRU fix randomly stops applying. It can be either on driver update (as it resets CRU changes), or just randomly.
**Solution** is quite elegant and simple. Duplicate it to Adrenaline custom resolutions. As you already have it applied, just go Adrenalin software --> Gaming --> Display --> Custom Resolutions --> Create New. It will prefill parameters with one that are currently being used (aka ones with CRU fix). So just save it. Now you locked this resolution on driver level, so as long as you don't factory reset driver (and/or have settings backed up) it will persists as long as your other parameters on driver do even through update. Unless you also did HDMI bandwidth or Freesync range fixes. If you did, then you still will need to reapply CRU profile every time you update GPU drivers.
**Issue 3:** You either cannot tame VRAM no matter what you set, or you cannot create CRU for your resolution/refresh rate.
**Solution**: If your GPU doesn't like CVT-RB2 timing table, try setting CVT-RB, or Automatic (PC/HDTV) before giving up. Automatic (PC/HDTV) will likely hit bandwidth limit even earlier than CVT-RB2. If you still couldn't tame VRAM after that means that probably, at least for now, you won't be able to fix this issue. (But you can try every now and then, maybe something will change).
And if you cannot create custom resolution try DisplayID route, and if for some reason it still didn't work, then my condolences. If nothing worked, then, at least for now, i don't know another workaround. But maybe you could find it?
Hi, thank you for your answer.
I only have a final question if you don't mind.
If I'm not confident enough to apply these fixes and just want to buy a new monitor that doesn't create the same problems, how can I make sure I buy a monitor that'll run fine with my GPU?
Is there some sort of specification I need to look for, and if yes where do I look for it?
My current monitor is an LG 32GN650-B and my GPU is a Sapphire PULSE Radeon RX 6700 XT.
Well, not that you can easily know if monitor is compliant or not. Unless you literally use software to see specifications of resolutions reported by monitor (or have someone else who checked to tell you).
Issue in question is what real resolution monitor tells GPU to output onto. Not actual resolution that you see.
For context. When you set 1920x1080 or any other resolution, it is not what is being sent through cable from GPU to monitor. Actual resolution is larger on both dimensions. There are multiple reasons for this, but main one is synchronisation. Horisontal resolution is responsible for line per line output refreshes (as changing row takes small amount of time), while vertical is responsible for refresh interval by itself (and usually is larger because it takes even more time). When GPU sends padding it basically fills it with black pixels and at some point of padding "sync" signal comes. Where sync signal comes is determined by front and back porches (aka empty zones before and after sync signal respectively), while total padding space is called "blanking interval". horizontal blank = row to row change, vertical blank = frame to frame (technically just new refresh). These values exist due to historical reasons... Because of CRT! CRT outputs image row by row from left to right from top to bottom. And this signaling indicated display when to switch to next line or go back to top (you could also play with porches and image got offset from center depending on values. Modern monitors won't do it afaik, as they just crop porches. So it's not that you still need large porches as you did long time ago (of course tightening them up is possible only to a limit, so too tight won't quite work).
But what is important to know, is that this data about additional pixels within paddings still costs bandwidth as they are actually transmitted through cable, even if they don't show up on display. And many manufacturers love to play with those timings to do bandwidth savings, by shaving off some lines from those paddings, especially if those allow them to fit within cable/port bandwidth limit, but not exclusively for this reason. By doing so they reduce so called pixel clock, aka signal bandwidth.
But at some point GPU stops enjoying these blasphemous changes. While monitor mostly looks at small part of those paddings called "h_sync" and "v_sync" to mark beginnings of new lines and frames respectively (and porches basically exist so monitor can expect sync and prepare in advance), GPU uses vertical blanking space to put it's memory into idle power state.
And so, when monitor have it's resolutions set up with non-conformant timings some GPU's will just not idle properly. These incompatabilities are, at least in theory, should be tied to whole generation of GPU, not singular models (aka doesn't matter if you have 6600 or 6900XT). For Nvidia GPU's, when affected, core clock can suffer (get stuck at max), while for AMD it is VRAM clocks that get stuck (which is arguably more impactful, as memory clocks have much less power state changes). In general Nvidia GPU's are more compatible with variety of monitors because of their R&D and development time as well as market dominance (and yet, i saw some reports of people with 3090 having their core clocks stuck. Wasn't fixed in few years, so they began to use third-party manual power state changer afaik), but AMD also made noticeable step with RDNA3 compared to RDNA2 (still not everything is perfectly smooth, so you can encounter this problem on RDNA3 too, just with lesser percentage of monitor models). RDNA2 GPU's were definitely quite picky to vertical blanking interval.
Anyways, CRU fix is not that dangerous. What it does, is it switches information that monitor had given system at initialization step to whatever you changed it to be. It is not permanent change (meaning it doesn't actually do anything to monitor itself, only to data that is stored in system), and if you reset this data, monitor will give own parameters yet again. Only thing you can really get into, is to temporarily lose output from display (and then you should in theory be able to just reinitialize it with defaults via that "F8" recovery option... Safe boot is also an option to do reset of changes, as it will load default 60Hz refresh rate, and then just run CRU and delete existing monitor "devices" at very top of CRU window). Other than that, it either works or not, depending on setup.