So here’s a neat thing that I’ve been trying on-and-off to figure out for at least a couple months. When I’m running a game, there are times when my monitor will start throwing out CPU and GPU frametime spikes that look like a square wave! It seems to have pulses where it has a high frametime for one second on, then one second off, which it then repeats, usually for 2-8 seconds, but which sometimes goes as long as maybe 20 seconds.
This is most noticeable when I’m running VR, which I use the most, and where I otherwise expect to get 75 FPS consistently. I have a tool called FPSVR on my wrist (and have used a component of Desktop+ which shows the same thing) whose frametime charts are usually green when hitting that 13ms frametime, and these show up as solid orange bars.
I thought this was related purely to SteamVR, since it’s niche, relies on a software stack, and I usually have other things like Youtube running in the background. But thinking about it I’ve noticed this on a few other games I should be way overspecced for as well.
- TF2: I first thought maybe this is because I’m being lazy and not bothering to plug in something other than my cheapo bluetooth keyboard to play, or the server having choke or something, but looking closer there’s definitely FPS drops in this too.
- Yakuza Kiwami: this game had some weird engine quirks for the PC, and that’s what I subconsciously blamed it on initially as well.
- Deadlock: I only messed around in it for an hour but it also occurred here. This one I blamed on it being a beta.
- RE4 2023: I did notice slowdown, and I put that on me maxing out settings including ray tracing.
The only way I can seem to reproduce it is if while in VR I start a Youtube video in Chrome (or unpausing a video), so maybe it’s related to loading something into memory. Still, this doesn’t consistently happen when I do this.
Suspicions as to what could be causing it
- The 7950X3D core management. It might still be a thing, though my VR app is running fully on the V-Cache CCD. There are 4 threads on the other CCD that have notable utilization, which I think is the browser I have and Windows’ usual background stuff, but I don’t know of a way to identify which core a process is using without something silly like manually setting all of them in Process Lasso.
- The 7900 XTX memory dies. Could be a thing, though it shouldn’t be happening in other non-VR games, lest AMD already have serious performance issues controversies already going.
- My PSU: 750W should be enough according to my calculations, but it is like 6 years old. Still, I kind of expect big failures from a PSU issue like bluescreens, rather than performance issues.
- Some RAM problem. It’s not the 4-slot vs. 2-slot thing (assuming that’s still a thing in modern systems), but maybe the motherboard’s memory controller has an issue?
I’m kind of hoping maybe someone else here has run into the same thing, as I’ve gone around looking it up (most posts are from Reddit, natch) but so far no one’s had luck on finding anything that solved OP’s problem. I had a list of suspicions, but unfortunately my usual tech support approach is to try things until one of them sticks (as a fun aside, one of the things Claude suggested that my AC was causing too much power draw for my room’s breaker). So here’s all my lists, for what they’re worth:
Specifications
CPU: 7950X3D
Mobo: ASRock B650 PG Lightning
Memory: Corsair Vengeance 4x16GB DDR5-6000 CL36 (the default is 4800MHz, and funnily enough there were little stickers on the box with “6000MHz” on them)
GPU: Sapphire Nitro+ RX 7900 XTX
Storage: WD Blue SN550 1TB (Windows 10 OS drive), WD Black SN850X 2TB (most apps installed here), misc storage drives
PSU: EVGA SuperNOVA 750W 63 (I know, I’ll get around to it eventually!)
Stuff I’ve tried, in no particular order, with the suspected cause in brackets
- (7950X3D) - full reinstall of all AMD chipset drivers. Basically everything in the JayTwoCents video (www.youtube.com/watch?v=4wdQpVcL_a4)
- (7950X3D) - completely disabling Process Lasso and letting the drivers run it.
- (7950X3D) - manually setting up all my apps’ CPU affinities in Process Lasso.
- (Windows) - changing the game and related things like the SteamVR compositor, server, etc’s priorities in Process Lasso.
- (Windows) - disabling Memory Compression.
- (Motherboard memory control) - removing two of the 16GB sticks.
- (Overheating) - logging CPU/mobo/GPU temperatures, which are all fine.
- (Other processes) - logging any apps spiking in CPU usage, as well as any 100% single thread occurrences. I haven’t seen any apps that go particularly high, and the 100% single thread things are on the non-VCache die and don’t appear to cause the issue when they do occur.
Things I haven’t tried/plan to try
- Reconfigure RAM to 4800MHz. This is probably the next step I’m doing. I’ll be a bit upset if it is the problem, cause I expect resolving it will involve lots of “try random setting,” and two of the sticks are already past 1 year so getting an RMA is going to be a huge pain.
- Replace PSU. I actually didn’t want to do this until I get a fulltime position, and I’m guessing it’s not the case.
- Reinstall Windows. It’s a real nuclear option for me, since I not only have to reconfigure and remove all the default Windows crap, but I have a ton of environments, coding setups, various drivers for things like USB and serial ports, programs related to VR, and configurations for drawing software, modeling & texturing, Unity engine setups, etc. Infact the reason the OS is on the slower SSD is because when I built this system last year, I forgot to disconnect the one with the boot manager, and Windows did not want to behave with it on a different drive.
First thing is I’m going to see if AMD Software captures the square wave frametime as well, since SteamVR can’t capture elements that aren’t in the active app; frankly I don’t know why I haven’t thought about it until now. I’m also changing the RAM frequency to default.
I’ll update this post as I experiment more. If nothing else, hopefully it’ll be possible to compile a list of people’s systems that have it and what parts they’re running.