Citra and Steam Link - halve game speed and FPS when Citra is active window

Issue:

Hello! Been trying to get Citra working over steam link, but I’m running into a mighty odd problem. I went through both the Citra forum and the steam forum but to no avail. The symptom, as best I can describe is, is as followed:

It looks like Citra is being forced to run at half its speed when using steam link and while it’s the active window, it shows ~50% ~15 FPS in the bottom right corner and ~30 FPS on TV. I say “Citra as active window”, because when I change the active window on the desktop PC, or simply open the windows start menu, it goes nicely up to ~100% and ~30 FPS and the TV goes to ~ 60FPS.

What is especially odd to look at is to open task manager on the CPU usage and switch between the Citra window and Task manager and see the FPS shift. At 100% game speed there is around 60% CPU usage, when Citra is the active window and the game goes to 50%, the CPU usage is about 35%.

Some things that I have tried, but did not help:

  • Run Citra outside of steam link, games work fine, controller works fine.
  • Configured Citra as non steam game, directly opening the game
  • Tried two different games Zelda MM and Zelda LBW, both have this issue
  • Other non steam games work find through Steam link (played Talos Principle and CEMU Zelda BOTW), appear normal/OK
  • Disconnected second monitor
  • Updated AMD drivers, tried 18.5.1 and 18.8.1 (latest)
  • Tried both regular and beta steam clients
  • Tried running games uncapped at 200%, desktop only, the games go to about 150-170%, trough steam link, fastest is ~50%
  • Making a different window active, makes game run normal speed 100% 30 FPS, 60 FPS on steam link
  • V-sync is off in Citra and AMD global settings
  • Killed Steam link on the television, while still running on the desktop, when setting Citra as the active window, the speed remains at 100% and 30 FPS.
  • Tried other various settings for max speed performance etc. I read a Steam link forum post about steam link capping a program when it notices it runs at low FPS at first or somewhere during play.

As a workaround I have been looking in to setting a different active window and try playing, however the controller then controls the mouse and you can, for example, scroll down pages in an internet browser… but not actually play the game.

System Information

  • Operating System: Windows 10 Pro, recently updated
  • CPU: Intel Core i7 960 @ 3.2 Ghz
  • GPU: AMD Radeon R9 380
  • Citra Version (found in title bar): Nightly #925 (latest)
  • Game: Zelda MM and Zelda LBW
  • Screenshot of Issue (include the full Citra window including titlebar):

Citra as active window, Steam link on, screenshot of Desktop:

Task manager as active window, Steam link on, screenshot of Desktop, showing CPU usage after switching active windows back and forth.

Citra as active window, Steam link on, photo of TV:

Diagnostic Log
citra_log.txt (9.8 KB)

streaming_log.txt (97.5 KB)

Note, I removed my Windows username from the log.

I did not find anything wrong in your log file. Please wait for a moderator to assist.

Two additional pictures of the TV. Was not allowed more then three in a single post.

The steam menu, running normal at 60 FPS.

Citra running the game at 100%, 30 FPS, Steam link at 60 FPS when task manager is the active window:

I would greatly appreciate it if someone could help out and or offer some insight or a work around. :slight_smile:

I did not find anything wrong in your log file. Please wait for a moderator to assist.

Does it happen with other games (on citra)? try changing your power plan to ‘High Performance’.

Hi bio3c, thanks for your reply. Yes it happens with Zelda MM and Zelda ALBW. I can test Zelda OoT also.

The power plan you mention, is that a setting on the server or client of the Steam link? I have the client options for “fast”, “Balanced” and “Pretty”. It is currently set to fast.

its a windows setting, look for Power Plan on your windows options.

Thanks, found it! I was surprised a desktop PC had such a setting.

I switched the setting to ‘High Performance’, tried both Zelda MM and Zelda OoT. But reproduce this problem still.

Any other suggestions? :blush:

well, we can go through some more options. citra is single threaded (mostly depended on it), maybe the encoding process is interfering, play around with the encoding settings on steam link, number of threads, CPU or GPU. i don’t know where these settings are located…

edit: maybe this can give you some directions.

Your point about threading triggered an idea. I set Citra’s CPU affinity to the first 4 cores (two physical, two virtual) and Steam to the other four. No effect unfortunately.

The steam link encoding threads was set to automatic. I set it to 1, restarted everything, but no improvement…

I originally started out with the Steam Link on software encoding, but switched on the setting for hardware encoding with my AMD graphics card. Also to no effect… :neutral_face:

I also tried reconnecting the stream just now (apparently that’s possible) because the problem is not there when the stream is disconnected. Also to no effect…

Well, you stressed a lot of options, it looks like an issue that needs some more investigating, submit your issue here, just copy and paste the same info you provided here (everything should be enough).

Either way, thank you bio3c, thanks to you I was able to stress even a few more options. :wink:

I’ll be sure to do that.

just one more thing. since the nature of this issue involves a third party app, and that citra works just fine without steam link, it may ultimately be a steam link issue. so it may be appropriate that you submit this issue to the steam link support.

Yes you have a valid point, one I was afraid of. I checked in to that, checking the Steam forums etc. It seems support is only for Steam games and since Citra is added as a non native Steam game, I can’t expect much. It won’t hurt to try tough.

The Github issue has been created: https://github.com/citra-emu/citra/issues/4142

Hope someone knowledgeable can have a look. :slight_smile: