flathub / com.valvesoftware.SteamLink

Stream games from another computer with Steam
https://flathub.org/apps/details/com.valvesoftware.SteamLink
Other
59 stars 5 forks source link

aarch64 client? #5

Closed cobalt2727 closed 3 years ago

cobalt2727 commented 3 years ago

It would be nice to have a flatpak capable of running on 64-bit ARM devices (like the newer Raspberry Pis, Tegra hardware like the Nvidia Shield/Nintendo Switch/Jetson Nano, or anything running PostmarketOS, to name a few). How feasible is this?

slouken commented 3 years ago

Not very feasible. Each of them have their own method of doing hardware accelerated decode, which is a performance critical part of this application.

theofficialgman commented 3 years ago

@slouken mind expanding on this explaination? all of the devices cobalt mentioned do have support for hardware decoding for standardized api's the tegra's have support for decoding use ffmpeg and gstreamer (nvv4l2dec and openmax) the Pis have decoding in ffmpeg and gstreamer (openmax and n4l2dec depending on the model)

these are widely enough adopted standards and none of this prevents a an aaarch64 binary anyway

Newbytee commented 3 years ago

Not very feasible. Each of them have their own method of doing hardware accelerated decode, which is a performance critical part of this application.

How about doing something like display a warning that hardware-accelerated decoding is unavailable stating that the experience may/will be subpar in those cases? I would personally rather have access to Steam Link in a such manner than not at all, but on the other hand I understand if you don't want to support such configurations. Regardless, it would be much appreciated if you consider it.

slouken commented 3 years ago

I had experimental gstreamer and ffmpeg pipe output decoders and they were highly unstable and didn't support the overlay. Software decoding is an option, but at the time I was evaluating them, those devices weren't capable of decoding 1080p at a solid 60 FPS.

We don't have any current plans to release an ARM version of the Steam Link app. We will announce on the Steam Link discussion group if those plans change.

lrusak commented 3 years ago

@slouken if you are interested in collaborating about the possibilities of using V4L2 for hardware accelerated video decoding on mainline kernel arm device I would like to invite you to join our slack for the LibreELEC project. We have a large amount of collaborators working in this field on various different arm platforms. I am myself a steam user and would like to see this implemented 😊

Reference: https://github.com/LibreELEC/LibreELEC.tv

coreybruce commented 3 years ago

wait I'm super confused and believe you are misinformed here because Steamlink is already on the Rapsberry pi and works great even on the Raspbery pi 3 but the issue is it's only for 32bit ARM aka armv7l and is not compiled for aarch64 does not support it.

https://support.steampowered.com/kb_article.php?ref=6153-IFGH-6589

I have no idea why Rasberry PI OS is 32bit and using a hack to suppport the full 8gb ram address and beta testing a aarch64 version and Steam hasn't updated it to properly support the Raspberry pi 4 but the fact is the rest of the Linux world has moved on to already properly support the pi 4's hardware both distro wise and software wise.

It would be a fantastic solution to be able to use this flatpak package to be able to use Steamlink on my Raspberry pi 4 with the superior hardware to the 3 and have it support on more architectures as Steamlink has already been officially supported but only the 3 and 4 when using a 32bit OS.

cobalt2727 commented 3 years ago

Not very feasible. Each of them have their own method of doing hardware accelerated decode, which is a performance critical part of this application.

@coreybruce This is why. The Steam Link app on the pi 3 was specifically designed to take advantage of the pi 3's hardware. Porting it to any other device would require a partial rewrite

coreybruce commented 3 years ago

Not very feasible. Each of them have their own method of doing hardware accelerated decode, which is a performance critical part of this application.

@coreybruce This is why. The Steam Link app on the pi 3 was specifically designed to take advantage of the pi 3's hardware. Porting it to any other device would require a partial rewrite

But like I said it works on both the pi 3 and 4 hardware it is just 32bit, the only change that would need to be done is making it to 64bit, a whole code change wouldn't necessarily be needed at all as it already supports both hardware and works out of the box already.

Newbytee commented 3 years ago

Not very feasible. Each of them have their own method of doing hardware accelerated decode, which is a performance critical part of this application.

@coreybruce This is why. The Steam Link app on the pi 3 was specifically designed to take advantage of the pi 3's hardware. Porting it to any other device would require a partial rewrite

But like I said it works on both the pi 3 and 4 hardware it is just 32bit, the only change that would need to be done is making it to 64bit, a whole code change wouldn't need needed as it already supports both hardware and works out of the box already.

Relevant: https://github.com/flathub/com.valvesoftware.SteamLink/commit/4e7639cc1ec2e94b8b80261c35b0a3c26e001a7d

coreybruce commented 3 years ago

Not very feasible. Each of them have their own method of doing hardware accelerated decode, which is a performance critical part of this application.

@coreybruce This is why. The Steam Link app on the pi 3 was specifically designed to take advantage of the pi 3's hardware. Porting it to any other device would require a partial rewrite

But like I said it works on both the pi 3 and 4 hardware it is just 32bit, the only change that would need to be done is making it to 64bit, a whole code change wouldn't need needed as it already supports both hardware and works out of the box already.

Relevant: 4e7639c

Hmm ok well that's fine, if they are dropping 32bit arm support than it only makes it easier to look towards the future and the more standard 64bit arm64 right?

Or is it due to the version made for the Raspberry pi being different code wise to this version that a rewrite in code would be needed?