Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
GitHub is where the world builds software
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
RX 480 Encoding Overload w/ Specific Title #358
Hello, I've recently tried to record Subnautica (a game that's not nearly as GPU or CPU demanding as other games I've succesfully recorded with the same setup, such as Resident Evil 2 Remake, Hitman 2, etc.)
But, as I was recording the game, I noticed that from the menu onwards I had a strong encoding lag. Recently, I've even had some rendering lag. I've tried replicating my OBS profile without some configurations, but once I select AMF, the issue is present.
I've looked through other similar issues with AMD cards but nothing I've seen worked. Using Mirillis Action, with the same bitrate and GPU acceleration I've been able to record without problems.
This is a log showing some recordings I did and the problems I found with them:
My specifications are the following:
I own Subnautica myself, and it is one of the GPU heaviest games I know - at least in the menu, which for some reason uses up to 99% of an RX 480 for no real reason, as the game itself only uses up to 80% of an RX 480. So there is next to no GPU time left for OBS Studio or the AMD Encoder to do any work - even with asynchronous transfer. In fact, this is even visible in the log file you provided:
You're "lagging" ~12%/~7% of frames due to insufficient GPU Time, and skipping over 50% of frames due to encoding lag - which is also due to insufficient GPU Time. These happen because OBS Studio first downloads the frame from the GPU, and the AMD Encoder then has to upload them back to the GPU asynchronously. Currently the only option is to just reduce the GPU Load of the game by either reducing resolution, quality settings or limiting game framerate further.
I'm getting this odd performance issue where my streams normally @ 720p60, on my 580, at random starts rendering at about 1-5fps for 30s with Apex Legends, the rest of the time it's doing a solid 60fps.
This sounds similar to this problem with the menu.
On my old GTX 760 it didn't have this issue, despite it being a substantially older card, pretty sure it could even do 1080p60, but this card refuses to. Is this AMD just being stupid with provisioning of resources? Surely with a hardware encoder it should make some realtime promises.
I have a work-in-progress integration of AMF using ffmpeg in StreamFX. This integration will likely replace this one as it means having to maintain less code overall, and probably a massive increase in performance as the AMF integration in ffmpeg is actively maintained by AMD since early to mid 2019-ish.