Performance issues with Steam Link/Big Picture/RetroArch

So, I"ll try to summarize my issue as succinctly as possible, although it’s rather convoluted. I’ve spent many hours attempting to narrow down the specifics of the issue, and I think I have it, but I’ve hit a brick wall attempting to resolve this:

My problem is that RetroArch performance slows to a crawl when emulating games over the Steam Link using the GL driver, I think due to the Steam Overlay being on. When disabling the overlay, RetroArch works as expected, but Steam needs the overlay on, to bridge my controllers via the Steam Link, to my PC running RetroArch. Thus turning overlay off, breaks my ability to control, and is a no-go. I feel fairly confident in my diagnosis, that the problem lies in the Steam Overlay, because eliminating the Steam Link from the process, and just running “Big Picture Mode” locally on the PC, and launching RetroArch from Steam, causes the performance problem as well. Unfortunately, I need Big Picture mode, Steam and RetroArch to all work together, to use my controller. Besides, I’d really like to game via the Steam Link, so I can do this from the living room.

Now the first solution I tried, was switching the driver to D3D. This works, to some degree, and performance is good, but most/many cores have significant issues with the D3D drivers. Shaders also don’t work in many cases.

I’ve also tried Vulkan. This exhibits the same issues as GL.

I’ve attempted toggling threaded video on, which also somewhat alleviates the problem, but causes the video to be very stuttery.

Lastly, I found that enabling Windowed mode corrects some/most of the performance issues, of the GL driver in my environment, but leaves a menu at the top of the screen, which is transmitted to the TV, and is quite annoying. The Steam Client shows everything inside the window chrome, and thus I get the game screen, with a File > Command > Window menu at the top of the screen. Now this is almost a good solution, but I can’t stand that menu. I swear that in an earlier version of RetroArch, those menus weren’t present… I’ve attached a couple screen shots showing the menu present, and not, depending on the video driver selected.

So I’m looking for solutions! Does anyone know a way to disable the pesky menu at the top? Obviously some video drivers have it disabled, and I swear at one point that menu wasn’t there with GL/D3D. Does anyone have any ideas to get full screen GL/Vulkan RetroArch to work with Steam Big Picture?

Thanks in advance!

P.S. My PC specs are fairly good, and this problem happens even with NES/SNES emulation, so I don’t think I have a performance bottleneck.

i7-860 16 GB RAM Radeon R9 280 SSD

Have you tried windowed/borderless fullscreen? It should be in settings > video.

Hi, if you’re talking about “Windowed Fullscreen Mode”:

Yep, this is what it looks like with that setting on. Perhaps this is a bug, as I don’t see any difference with this setting on/off?

Yeah, that’s the setting. Works fine here.

It only takes effect when you’re running fullscreen, but it’s just a window stretched to fill the screen instead of taking over the screen as is the case with exclusive fullscreen.

Holy crap! You’re a genius. Thank you.

I can’t believe I missed that. I’ll have to test it properly on the big screen later, but so far it appears to be A-OK.

Thanks again!

1 Like

I use Retroarch over Steam Link all the time, and it is literally flawless. Completely perfect. Let me know if can tell you any settings that might be of use.

EDIT: ah, you have an AMD GPU, so I can’t help. Nvidia user here…

I spoke too soon…

It worked just peachy in Big Picture mode, while local to the PC, but once streamed to the Steam Link, I get horrible slow-down. I’ve attached a video as an example. Just loading a SNES ROM is unbearable. Here’s an example!

Any other ideas? I’ve been trying to figure out if there’s a way to turn off that menu bar, as that’d mostly solve my problems.

@daninthemix Thanks for the offer!

Have you tried any other cores? Such as snes9x? bsnes can cause some odd performance issues on fast rigs (they complete the emulation task fast enough that they start clocking down and the down-clocked speed isn’t fast enough for full speed).

Yeah, unfortunately, I’ve tried SNES9x, Mupen64 and Beetle PSX/PSX_HW and they all exhibit the same issue. I tried Vulkan as well, just for giggles, and it has the same issue.

Your estimated refresh rate was only showing ~31 Hz with no increase, maybe that’s where the problem lies?

Any idea how I would go about changing that? It only happens when streaming through the Steam Link. Otherwise it’s a normal approximate 60.

What about input lag ? I compared input lag between an Intel NUC plugged to the TV running Retroarch natively, and the Steam Link streaming Retroarch, and input lag is way, way WAY higher on the Steam Link, making playing old 2D platformers pretty unplayable…

I have (more or less) the same issue, and have tried to look for a solution everywhere, but so far without any success (I am running Windows 10 on an Intel i5-4590 CPU with 4GB RAM and an AMD Radeon R9 200 series graphics card like the OP).

Adding Retroarch to Steam, then running it through steam link and big picture mode on my tv will cause the games and the sound to slow down significantly, as if I’m playing in slow motion. If I look at the framerate in the options menu while running a game, it hovers around 30.

This only occurs in this specific configuration. There are no issues when I run retroarch on my pc via steam and big picture mode, with streaming to my tv switched off. When I stream to my tv, minimising big picture mode and runing retroarch directly, there are no issues either (although retroarch does become a bit choppy on the tv, but I think is because the steam link throttles framerate when running things outside big picture mode… the options menu in any case still shows close to 60fps and the sound works fine). The slowdown only seems to happen when making use of both streaming to tv and big picture.

I have tried playing around with many options, including full screen / windowed mode, and switching off the steam overlay, but without any luck.

The one thing that did help was setting different shaders. I prefer to play my SNES (snes9x) and N64 (mupen64plus) games with lottes shader, and I found that if I switch shaders off or set them to something like easymode, the problem disappears, while for other shaders like hyllian the problem persists. It seems unlikely that it is a performance issue though, since I dont have any problems in any other configuration, and when I switch to a different shader or bring up the options menu and then go back into the game, the game will sometimes run smoothly for 10 seconds or so, before going back into ‘slow motion’.

I know this is a very specific problem, but if anyone has any ideas, it would greatly be appreciated.

Thanks!

The shader behavior sounds to me like your GPU might be clocking down for whatever reason. Can you go into your GPU control panel and make sure it’s set to ‘max performance’ or whatever the equivalent would be?

I have experienced similar performance issues with Retroarch when streaming over the Steam Link as well. FPS will be limited to around 20 - 30, whereas in a more demanding application like Borderlands 2, I’ll get close to 60 FPS. I’ve been trying to solve the problem off and on for months now.

I’ve realized, after also trying most of the solutions in this thread, is the only way to improve performance in Retroarch is to go into the Steam Link streaming settings -> Advanced Options, and lower the resolution. When I lowered the resolution from 1080 to 720, I got a HUGE boost in FPS in Retroarch!

I am starting to think it has to do with how the host is handling the video encoding. When I view the streaming stats in the Steam Link when launching Retroarch (even just the menu, no cores/ROMs loaded), my dark blue line which measures the delay to due host encoding spikes by 40+ ms. Again using using Borderlands 2 as an example, this value is around 10 - 20 ms in its menu. I’m curious why a Retroarch frame is so “difficult” to encode.

Thank you for your responses!

Setting the GPU to best performance unfortunately did not make a difference.

After a bit more “testing”, I found that even with less demanding shaders retroarch sometimes still seemingly randomly drops down to 30fps on my pc, although at other times it seems to be ok (this might have to do with certain settings I’ve tried changing during my attempts to fix the issue, but if so, I don’t know which). In the menu it actually happens as well, even without any roms loaded. In these cases it’s not a consistent drop however, but rather it goes back and forth: the framerate will come back up to 50+ after a while, after which it might go down to 30 again for a bit, and so on… even when I am not doing anything.

So when streaming with steam link/big picture, it looks like something is throttling retroarch on the pc to 30fps, slowing down the emulation. The more “stress” that is put on the program, the more consistent/frequent the throttling seems to become, although it still looks to be an artificial limit because the framerate will always drop down to exactly 30, and when it’s back up, it’s always at 50+, never somewhere in between.

@Nargash: I tried your workaround of lowering the resolution, and this seems to be working! With these settings I haven’t had drops to 30fps so far, and latency is also much better. It’s perhaps not the ideal solution, but at least games are playable now with the shaders I want!

As an aside, one other solution I came across was to set the driver to vulkan rather than gl. Whenever I switch to vulkan however, only the sound seems to make it to my TV, while the screen stays black.

@ste27 Glad to hear it! I actually used to have the black screen problem with Vulkan when streaming Retroarch to the steam link as well. That’s no longer happening for me now (not sure why…). What driver version do you use? I use 17.7.2 with a AMD 7950. Regardless, I’m now finding gl to give better performance than vulkan anyway (when streaming), so am sticking with that.

I use the same version, 17.7.2 (which I think is the most recent one), with an R9 270X. Perhaps the slowdown and the black screen with vulkan are issues specific to AMD cards? Makes me wonder if there might be something in the Radeon settings that could be causing the problem… oh well.

If you say that with the downgraded resolution gl gives you better performance than vulkan, I would imagine it’ll probably be the same for me, so I guess I’ll stick with this solution and leave my attempts to fix the black screen with vulkan for now.

In any case, many thanks for helping out!

Did you end up figuring out this issue? I’m encountering the same thing on my system

  • Intel i5 6500
  • AMD R9 390
  • Windows 10 version 1803 (OS Build 17120.1)

Using Direct3D rather than OpenGL or Vulkan does fix the frame rate issues (the RetroArch video settings menu shows a solid 60fps rather than ~20fps) but some emulators don’t support Direct3D at all.

Since some of the other comments mentioned that reducing the resolution to 720p works around the issue, is it possible to set the Steam Link to only use 720p for RetroArch, while still using 1080p for all other games?

Edit: After playing around with it for a long time, I found that disabling “windowed fullscreen mode” helped significantly.

2 Likes

Thanks Daniel i am about to give this a shot. hopefully it fixes my Framerate issue as well

Fx-8300 R9 380 windows 8.1