Computer Making Strange Noise During Loading Screens

I’m not even sure which forum category this should go under…anyway, in my last couple projects I’ve used custom GameInstances and IGameMoviePlayer to create loading screens. They work fine and all, but one thing I’ve noticed is that while the loading screen is active, my computer will make an odd noise…almost like a low-pitched whine?

It immediately goes away when the level actually opens, but I can’t help but be a bit concerned about weird noises that happen with no discernible rhyme or reason. It sounds like the noise is coming from the motherboard, close to the ports in the back.

I’ve observed this behavior in both UE 5.1 and 5.2, and as far as I can tell it doesn’t happen in any of the commercial UE games that I’ve played.

Something liked this? https://youtu.be/HP73edpQwgc?si=dCru5J9VtAgrRgvP

1 Like

It’s similar to coil whine, but compared to that example it’s lower-pitched and less dynamic. I managed to get a decent recording of it, but you may need to turn your volume up to hear it:

For what it’s worth, I’m familiar with coil whine as explained in that video, but have never experienced it with any games or other software that I’ve used.

See if capping your frame rate to 60 lowers the tone / volume of it.
You can also try lowering the cards frequency with msi afterburner for tests

If it goes away then it’s coil whine. (does sound like it)

I had a more aggressive whine on a 4080 that I returned. it too fluctuated depending on scene complexity / component excitement.

3 Likes

GPU coil whine. I feel this is getting worse with modern cards. on a 1070TI I play many games with this problem but wear a headset so I don’t hear it. Lowering FPS and VSync is not always a fix, so you can’t guarantee your customers won’t have it. It’s a hardware problem.

1 Like

This worked for me. My rtx 3080 is loudest when ray tracing is on. Undervolting made it barely audible with no perceptible performance loss.

@pezzott1 You got lucky. My 4080 was screeching no matter the frequency. Anything above 50 fps and you could hear the thing even in a be quiet soundproof case.

Fun fact, these days whine is discussed as a security vulnerability :). Technically you could even pick up the sound from a distance by measuring vibrations in windows. Offtopic hehe but we all hate the coil whine, now you have one more reason.

2 Likes

Thanks for the guidance, everyone! Indeed, it appears to be GPU coil whine.

Capping the framerate via console commands or Project Settings had no effect; apparently the MoviePlayer doesn’t use those values between levels. Out of curiosity, I also tried using GEngine to cap the framerate in C++ before SetupLoadingScreen() gets called, but even that was ignored.

With how barren my scene is at the moment, MSI Afterburner says I’m getting around 200 FPS in-game and well over 2000 during loading screens. Downclocking my GPU eliminated the noise entirely.

You can also lock the framerate in nvidia control panel to override unreal’s limit. Or even set it specifically for unreal. No need to worry about console commands then.

AMD probably has the same feature somewhere.

1 Like

Yeah, I’ve got a Radeon 6800 XT but capping the framerate via its software app doesn’t seem to work on any of my Unreal projects. Must be some issue on AMD’s end, because it’s worked on plenty of commercial games. RivaTuner Statistics Server’s framerate limiting does the trick, though.

I can’t help but think that some sort of engine modification can get IGameMoviePlayer to have a framerate cap, but I’m not quite that experienced yet :sweat_smile:

Perhaps the Game User Settings influences it?

1 Like

Nope, no luck with that either.

In a roundabout way, what SetFrameRateLimit() is doing is the same as entering t.MaxFPS in the console. The MoviePlayer just doesn’t care about any of those commands.

Curious. I haven’t used the MoviePlayer. So it enforces FPS to match animation / media framerate? Could there be an option to skip frames to match a lower rate? It’s a wild guess but I remember from old emulation software (not UE related) techniques of skipping frames or even slowing down / speeding up processes to sync desired content with desired performance. The goal behind this idea here being you don’t run 1300 FPS on a 30FPS video, or just lock to 30 even if the video is different.

I have no idea…I took a glance at MoviePlayer.cpp yesterday, but didn’t see anything framerate-related in there. Maybe I just didn’t understand it well enough.

It’d sure be nice if I access to the source code of some games that used the MoviePlayer for their loading screens :sweat_smile: I might also try asking on the Unreal Discord server at some point.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.