Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
https://medium.com/@monofuel34089/running-your-raspberry-pi-4-at-4k60hz-78010a26e98d
It turns out that it's completely misleading - he may be outputting at a 4K resolution, but the video stream he's decoding is only 1920x1080. You just can't do 4K@60 as easily as the author says - but it is possible... sort of! Here I present my findings in trying to get it working.
My primary game machine is a Debian Buster GNU/Linux desktop with a Radeon VII card, custom built Mesa 20.2.0 stack and a 2560x1440 144Hz Freesync monitor.
It turns out that you can't select 4K in-game over Steam Link on a 4K TV if the desktop monitor can't also show 4K, so I purchased a HDMI plug from Amazon that makes the graphics card think there is a second 4K@60 monitor connected. I then wrote a little script called `toggledisplay` and made a shortcut in my Xfce window manager (Win+Home) to call it. I then made a second shortcut (Win+End) to call `toggledisplay fake4k` to switch output to the second fake 4K monitor exclusively.
After switching between modes, I looked at the OUTPUT file:
Next, I tried Windows 10. Annoying because I have around 3.7TB of games installed on my GNU/Linux partition. I didn't need to use the 4K@60 dongle in Windows because the AMD drivers have a super-sampling mode feature built in which, when enabled, tricks Windows into thinking it's running on a 3840x2160@60Hz monitor, so I can select a 3840x2160 resolution in game without issue.
Now back to Steam Link - I can only output in 4K on the Pi if I select Fast encoding - otherwise it seems to drop back to 1920x1080 automatically. I have a wired Gigabit Ethernet LAN (both machines directly connected via Gigabit Ethernet switches) so heaps of networking bandwidth. So long as HEVC was selected, I was able to stream at 4K@60 - but I was getting huge slowdowns every ~3 seconds, as you also indicated.
According to the stats overlay (if you enable it on the Pi Steam-Link software), the issue is with the Pi's ability to decode. It's just not quick enough to handle it. My desktop is barely breaking a sweat (I was using the old Sniper Elite V2 as a test since it loads quickly, supports 4K, also runs under Proton if needed, and isn't too demanding for modern hardware, even on maximum detail settings).
Using the AMD driver software, I tried capping the frame rate to 30 FPS (it's a power saving option). As expected, the Pi could stream that fine. I tried bumping the cap incrementally. It wasn't until I set it to 35 FPS where I started seeing some stuttering. Not too frequently, but occasionally it was there. 36 FPS... stuttering increased, etc. Any more than that and the stuttering was very frequent.
I tried messing around with bandwidth caps, toggling the dynamic resolution option, even toggling the hardware encoding option for AMD, etc. All options either had no effect, or made things worse.
Something I noticed in the Steam Link options was the extra encoder/decoder options for streaming from Nvidia hardware. My wife has a GTX 1080 in her computer running Windows 10, so I figured I'd try streaming from her machine for a bit. She also uses a 2K monitor, and I couldn't find an equivalent super-sampling feature from Nvidia so I used my fake 4K@60 HDMI plug, and toggled to that "screen" using Win+P before connecting to it with Steam Link from the Pi.
Things were working much better, but I still couldn't quite hit that magical 4K@60 FPS without stutter - but I was close! I guess the Pi hardware can decode the compression Nvidia drivers use better.
One last thing to try - overclocking the Pi and upgrading the firmware. I got myself an Argon ONE Raspberry Pi 4 Case, which is basically one big heat sink with a fan in it (and it's cool here in Melbourne at this time anyway - the Pi temps never reached 50 degrees), and read over both of these articles:
https://magpi.raspberrypi.org/articles/how-to-overclock-raspberry-pi-4
https://www.tomshardware.com/reviews/raspberry-pi-4-b-overclocking,6188.html
My config.txt currently looks like this:
and now, when connected to my wife's computer, I can stream games at 4K@60Hz with a mostly stable frame rate. Not 100% stable... eventually the Steam Link stats graph will report a stutter - but I'm not really noticing it so maybe it's a very brief stutter compared to what it was before.
The only problem is that my wife's upset at me because it wasn't so long ago that I got my Radeon VII, and she's always using her computer and doesn't like me touching it anyway. I can't bring myself to game at 1920x1080@60 when I could just use my desktop and get 2K 144Hz so I've never been able to actually use Steam Link on the Pi in the few weeks that I've owned it. Totally sucks!
Hopefully Valve can find a way to make 4K@60Hz work on the Pi without relying on a Windows+Nvidia host hardware combination and heavy overclocking. In the meantime, when it comes to gaming on my TV, I'm sadly heading back to my Xbox.
EDIT: yeah, tried OC'ing the RPI4, and i'm using a 1080ti. I'm not having a good time here. I have a gigabit router, cat5e running both my PC and RPI4 back to the router, i don't really know what else to do here