ValveSoftware / SteamOS

SteamOS community tracker
1.57k stars 70 forks source link

Steam OS on ARM? #409

Closed Queuecumber closed 8 years ago

Queuecumber commented 8 years ago

It seems that steam link is running an ARM processor, does this mean we will see an installable distribution or standalone steam package compiled for ARM at some point?

JoshuaMurphynz commented 8 years ago

Sorry this place isn't for requests. Please close and discuss this at the steam discussions. The devs have said they want this place for bugs only On 9 Nov 2015 04:37, "Max Ehrlich" notifications@github.com wrote:

It seems that steam link is running an ARM processor, does this mean we will see an installable distribution or standalone steam package compiled for ARM at some point?

— Reply to this email directly or view it on GitHub https://github.com/ValveSoftware/SteamOS/issues/409.

Tele42 commented 8 years ago

This is effectively the same request as https://github.com/ValveSoftware/steam-for-linux/issues/4061. In that feature request, it's made clear that all games interested in supporting ARM with Linux would need to be re-ported in addition to having a client. To me, it's more sensible to request a streaming client simular to the steam link, but even then there might be snafus hiding when it comes to supporting more than one video hardware (and what they've put together so far).

Queuecumber commented 8 years ago

@Tele42 true that games would need to provide ARM binaries of course, but I am more interested in it as a streaming receiver, and that functionality seems to work on steam link so my hope is that something similar would be released as a standalone client. You are of course correct that supporting general hardware would likely be difficult

johnv-valve commented 8 years ago

Steam Link does not run SteamOS. We have no plans for SteamOS on ARM.

Zenitur commented 7 years ago

Hello Valve! I suggest to make Steam for ARM, with Raspberry Pi as the main platform. I suggest to release it as unofficial version - as a project supported by one developer of Linux- and SteamOS-version of Steam.

Raspberry Pi is a single board computer with the size of palm and costs $25. It's graphics acceletator is weak and it can be compared with a mobile device GPU's. In fact, it's used in mobile devices. Judging by the fact that smartphones and tablet PC's has many games, this GPU has a right to exist. I see RPi as the most popular ARM computer on desktops.

INTRODUCTION

Raspberry Pi developers are making efforts to promote their product. Recently they're perfected the graphical shell by the desktop theme. Now a frumpy LXDE interface become beautiful, while consuming few resources which can be compared with Windows 98.

raspberry-pi-2-angle-100569133-orig

Also developers have a focus on a schools and on equipment by RPi's instead of PC's: in a "Programming" section in the Main menu of Raspbian OS you can find much of programming languages, designed for learn programming. There is a GPIO connector on the device, you can connect a robot using that and manage him using Python, or something else.

51lupvp0eel _sy300_

Some time ago in a Chromium browser included in Raspbian was appear hardware decoding of FullHD-video. Also was appear a Flash Player taken from ChromeOS.

herksf95lcd2kbmtivw9

I think that's a good idea to help this platform presenting them games.

HOW AM I SEE IT

Steam client built for two processor architectures: armv7hf and armv8hf 64-bit. No Steam Runtime cause by the hard requirement: build platform is Raspbian 1.0, not 2.0 and not any other distribution, otherwise it will not be taken in Steam library. Steam Runtime has a right to exist as a 20 MiB, not 1 GiB. It can include only SDL and OpenAL.

Such Steam client can works not only on Raspberry Pi, but on ather armv7hf devices, like Orange Pi and NVIDIA Jetson TK1. The only requirement is GNU/Linux with X11, not Android (like Toshiba AC 100) or ChromeOS.

OpenGL? Once I met a problem when install Quake3 from Raspbian repository (Raspbian is a Debian repo plus small additional repo). It's using OpenGL, however Raspberry Pi hasn't support hardware acceleration for it, having only OpenGL ES support. I had to visit an official Github repository of Raspberry Pi, when download Quake3 patched for OpenGL ES support.

So I suggest to make compulsory to use OpenGL ES in games, but OpenGL can be an option (for devices like Jetson TK1). If the game uses only OpenGL (not ES), it will not be taken in Steam library, though it was build for armv7hf.

Next, what API is necessary for hardware decoding video in games? OpenMAX, because it is in Raspberry Pi.

And the final: GLX or EGL? EGL.

WHAT GAMES WILL BE IN THE START OF STEAM FOR ARM?

No one. Source engine is using Direct3D, and OpenGL is obtaining by the translator. Cause by this, a weak GPU can't cope the load to show big FPS. Source 2 is support native OpenGL, but the games are too modern for weak GPU. There are only first Valve games: Half Life, Counter Strike and Team Fortress, that uses OpenGL not Direct3D.

I suggest to take in Steam library only those games, that are present in a Windows, macOS or Linux library. Otherwise there will be thousand games were ported from mobile devices, as it was in OUYA game console.

TEHINCAL DETAILS FOR DEVELOPERS

When Steam for Linux just started to develop, there was Ubuntu 12.04 base. No Steam Runtime in planes: it was planned that every game developer will compile it exactly in Ubuntu 12.04. If the game needs nonstandard dependency (like a SpaceChem game) Steam shows a window "You need to install Mono package to play this game. Press OK and type an administrator password to install it".

Now we knows, the plan was changed when Ubuntu 12.10 released. Was revealed that sometimes system libraries drops ABI. A shining example is libICU. In an Ubuntu practice old ABI libraries are exposed to delete. Thus, Ubuntu distribution does not provide full backwards compatibility with it's old versions. From the Linux distributions I can stand out RHEL as a one of the few that provides backwards compatibility (if follow the conditions described in the LSB document).

This is the reason why the Steam Runtime was created. Now you can compile your game in Ubuntu 12.04 then run in any other Linux distribution, starting from Ubuntu 15.10 ending on Slackware. Some developers have gone further, and did not even bother to prepare a build-farm based on Ubuntu 12.04, and compile software directly in the system, which is installed on their computer! Steam Runtime is allowing them to relax, cause it has a collection of 1 GiB of system libraries for all occasions.

I suggest to prevent this problem in the Steam for ARM. The support of the big Steam Runtime costs a big time and money. If do from scratch, it's enough to make build farm based on Raspbian 1.0 as a hard requirement. If the command "strings appname | grep LIB" shows that the game need GLIBC > 2.14 then it will not be taken on Steam library.

What about a library dependencies? A lot of of games depends of libGLES, SDL and OpenAL. But there are exceptions. I suggest to put all libraries in the game distributions, except of GNU stack[1], X11 stack, GTK, Cairo, Freetype, libasound2[2] and OpenSSL 1.0. There is the LSB 5.0[1] standard that originally written for RHEL but Debian is also complies it.

What if the developer needs fresh GCC, not the version from Raspbian 1.0? For this case Valve needs to prepare a packages with them. I suggest to look on Devtoolset[4]. The maintainers of the GCC were somewise made the magical build. In the CentOS build farm, I've build with GCC 4.8, but the linking with the C++ Runtime (libstdc++.so.6) carried with an old one! And it works!

Also a game developer need to write in the system requirements the minimal version of Raspberry Pi to run.

[1] http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/requirements.html#RLIBRARIES [2] http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Desktop-generic/LSB-Desktop-generic/requirements.html#RLIBRARIES

mdeguzis commented 7 years ago

@Zenitur, please don't necro bump this issue. It is not going to happen any time soon. A bright individual given access to Steam's source code could easily do this, but no games will run on it. It is a futile request right now without strange emulation or the Play Store.

Queuecumber commented 7 years ago

@mdeguzis You're leaving out the scenario which I originally mentioned, which is as an in-home streaming receiver, although I think current gen rPIs are a little weak even for that. There are plenty of other cheap ARM machines that could work though

johnv-valve commented 7 years ago

@Queuecumber like I said before, SteamLink is the cheap ARM game streaming solution, not SteamOS. Check out the Steam Link SDK at https://github.com/ValveSoftware/steamlink-sdk. If that does not meet your needs, the best place is the Steam Link discussion forums.

eblieb commented 4 months ago

Steam Link does not run SteamOS. We have no plans for SteamOS on ARM.

What about just a steam link arm binary for Windows 11 arm?

mdeguzis commented 3 months ago

It's a shame that may never happen in the near future with all the nice handhelds out there. I get that from a support perspective. Proton would need to be solid on ARM systems. There is ULWGL, but it is not official. All the libraries in Proton/Wine would also have to be compatible.