Performance issues with Steam Link/Big Picture/RetroArch

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

in menu i get 30fps but in game 60fps so i can live with that. no clue why im getting 30 in the menu does not make alot of sense

Not sure how helpful this will be, but I’ve been hunting for a solution to a similar problem and I think I cracked it.

My issue:

Using Retroarch for emulation using Big Picture mode in Steam, and streaming it via Steam Link to my television. Visuals were consistent but choppy, almost as if if was dropping half the frames. Biggest telltale signs were: In Punch-Out!!, when press start to begin a round, the vertical scrolling of the “Round X” marquee looked choppy. In Zelda II, it’s really easy to see how choppy it is when you make Link jump. Along with this came the sensation of input lag, but I don’t know if I would classify it as “lag” because the sensation could have been due to possibly being forced to react to gameplay that is missing every alternating frame that it was designed to display (and that I’m used to seeing because of decades of nostalgia and muscle memory).

My issue was NOT a case of slowdown. So unsure if this will help those.

My current settings that resolved the issue

Thanks to all the ideas in this thread, I somehow cobbled together the answer for my issue.

1 - I did force max performance mode and shut off the power saving mode in my nVidia control panel. This may not have done anything as I didn’t isolate the test (bad discipline, I know).

2 - I did switch the drivers to Vulkan within the RetroArch > Settings > Driver > Video submenu. I made sure to do this on my PC by launching RetroArch.exe, changing the setting, exiting, and relaunching to double-check that the setting saved. (I did not do this by launching via Steam, in case that got in the way of properly saving config settings, but I don’t have evidence to believe that you HAVE to do this outside of Steam–I guess I’m just paranoid.)

3 - I did set the Steam Link Display resolution to 720p. However, this was the first trick I tried, and it DID NOT WORK. After I executed item (2) above, it was smooth and responsive. Just as a test, I set the Steam Link Display resolution back up to 1080p, and it’s still smooth and responsive. Your mileage may vary and you may be in the subset of folks who do need to keep it at 720p.

4 - I did set “Enable fullscreen windowed mode” to NO. I did this before executing item (2) above and haven’t reverted it, so I don’t know if this matters for me. I suppose I should test it by setting it back to YES, but I don’t wanna ruin a good thing :slight_smile:

My setup

GPU - GTX 1070 CPU - AMD FX-8320 Octacore Steam link connection - wired ethernet RetroArch version - 1.7.5 Cores tested:

  • NES - NestopiaUE
  • SNES - Snes9x 2005 Plus
  • Playstation - Beetle PSX HW
  • Genesis - Genesis GX Plus

Sidenote: Before I saw the message to try Vulkan, I almost gave up and tried the Steam Link Native App version of RetroArch (now at 1.7.6). It worked for NES, Genesis (using PicoDrive core), and mostly works for SNES (Snes9x 2005 Plus seems to be the best core, not 2010 or any other). If all else fails, you could give that a shot, though I know that’s not the goal.

Just made an account to say that setting the video driver to vulkan solved the issues I was having as well.

2 Likes

“setting the video driver to vulkan”

this appears to have fixed my problems as well!

1 Like

That’s the problem I’m running into!

Switching to Vulkan fixes the jag-jag-jaggy frame rate problems on the Steam Link but then MAME falls over because it needs OpenGL :frowning: fb alpha seems to be OK though

(I still find this whole issue to be so bizarre)

I take it back. Vulkan isn’t a problem. Missing/incorrect/bad CHDs are a problem, but vulkan isn’t a problem, usually

1 Like

drives me nuts! i see all you guys saying “vulkan vulkan vulkan” and id love to be using it. Problem is, i have never been able to stream vulkan over steam without changing ogl force blit ON with nvidia driver inspector, which causes a myriad of other annoyances.

Beginning to wonder if its a dual monitor thing (any of you guys using 2 displays?) a displayport thing (are you guys using hdmi?) a resolution thing (4k monitor(s) 4k tv?) or a windows scaling thing (I use 150% as my 4k monitors are 27" and anything less is no bueno)

Could also be the fact I dont get true fullscreen out of retroarch for some reason which could be related to some of the aforementioned variables endemic to my setup, or could be a problem with RA. TBD i guess. Theres an issue on the tracker about it and while its annoying, could be entirely unrelated to the vulkan/capture thing anyhow.

#1stworldproblems