What? The Steam snap is evolving!
by Oliver Smith on 21 October 2022
It’s been six months since we announced the launch of the early access Steam Snap and we’ve been overwhelmed by the response. Over this time we’ve had more than 75 thousand downloads and a tonne of helpful feedback on the Ubuntu Discourse as we get it ready for a full release.
By packaging Steam as a snap we’ve ensured that all of the dependencies required for gaming are included in the application. This means no messing around adding and maintaining PPAs and no issues with 32-bit libraries. Everything you need is included and isolated from the rest of your OS, regardless of the distro you’re running.
With the launch of Ubuntu 22.10 we know that gamers are eager to get their hands on the latest Mesa and we’ve made that even easier with the latest update to the Steam snap. We’ve also delivered some extra fixes and improvements along the way, including support for removable media, high DPI displays, localisation and newer versions of Proton. The migration of the snap to Core 22 plus the use of LZO compression has also improved stability and performance.
Let’s take a tour of the current state of play and talk about our plans for the future.
Mesa is a collection of graphics APIs that cover a range of open-source graphics drivers on Linux. If you’re using Intel integrated graphics or AMD graphics cards then you’re almost certainly using Mesa. NVIDIA support in Mesa is relatively limited, so users with NVIDIA graphics cards are recommended to use their proprietary drivers. These drivers are included with Ubuntu when selecting ‘Install third-party software for graphics and Wi-Fi hardware and additional media formats’ during installation. You can read more about NVIDIA driver support at the end of this post
Since the Steam snap is isolated from the rest of the host OS, we now include the Oibaf PPA by default. This means your games will be able to take advantage of bleeding edge Mesa libraries without impacting the stability of your system or the overhead of adding the PPA and re-enabling after upgrading.
Content snap customisation
Content snaps package dependencies separately from the main snap application whilst remaining tightly integrated. The benefits of content snaps are that they can be used by multiple applications, avoiding bloat, and they can run on their own update track
Now that we’ve landed the changes above, migrating Mesa to a content snap is the next step on our roadmap. This will enable users to choose their preferred Mesa track independently of the upgrade track of the Steam snap. When this lands, users will be able to toggle between:
oibaf-latest– the current default track delivering bleeding edge Mesa
kisak-fresh– the latest point release of Mesa plus select non-invasive early backports
kisak-turtle– strong and stable, for those a little more conservative
All whilst their main Steam application remains on the latest/stable release.
This is part of a backlog of improvements we are actively working on over the next few months.
More on the backlog
GameMode is included by default in Ubuntu desktop. Developed by Feral Interactive, it is a daemon/lib combo that allows games to request a set of optimisations to be temporarily applied to the host OS or game process.
Our goal is to stage the package so that it can easily be run as a launch command for Steam games with
gamemoderun %command%. This work is close to completion and should land at the same time as support for Firefox Native Messaging.
MangoHUD is a game overlay for monitoring FPS, temperatures and CPU/GPU load. This too will be bundled in the Steam snap, making it easier to toggle performance statistics for your games.
Proton enabled by default
Currently Steam users on Linux need to manually enable Steam Play for all titles in the Settings menu of the app, which enables the use of Proton for those titles that may not yet have been fully tested for compatibility.
By enabling this option by default, it will be easier for users to try out more games from their library without needing to search for the setting. Be warned, results may vary!
For those wishing to transition from the Steam .deb to the snap, we’re also working on an optional one-time script to ensure your existing library is automatically migrated on first launch. This will be available once we move out of early-access
These are our current high priority features, but our wishlist is a lot longer than this. If you have suggestions or feedback on our priorities for the Steam snap, join our Discourse discussion to help us identify further improvements going forward.
NVIDIA driver release cadence
We can’t talk about games without mentioning NVIDIA drivers. Whilst not directly related to our work on the Steam snap, it’s worth spending some time going over the NVIDIA release schedule on Ubuntu for those keen to get their hands on the latest updates.
Thanks to our close collaboration with NVIDIA across a wide range of initiatives we’re able to get newer drivers into the hands of users within 2 months of their release and backport those to previous supported versions of Ubuntu within the same time frame.
Minor upgrades are applied automatically whilst new versions can be enabled in the “Additional Drivers” section of the Software and Updates application as soon as they’re available.
You can read more about the NVIDIA updates release cycle on the Ubuntu wiki.
Attention all Steam snap gamers… Canonical needs your help
With the latest improvements to the Steam snap, we’re confident that we’ll be able to transition from the beta channel to stable in the very near future. But to be absolutely sure we’re delivering the best experience to gamers, we need your help.
Individual games and setups will often face unique issues. As of Snap revision 66 (currently available in the edge channel), a script is included to automatically collect some system data and open a new discussion post for reporting. To use it, switch to the edge channel with:
snap refresh steam --channel=edge
You may also want to switch to the beta version of snapd for some of the newest fixes on that side.
snap refresh snapd --channel=beta
Then enable the ability for the snap to collect system data:
snap connect steam:system-observe
snap connect steam:hardware-observe
Once this has been enabled you can report a title with:
snap run steam.report “Apex Legends”
To see what information will be reported you can also run:
snap run steam.report --no-submit
The report will generate a new post on the Game Reports discussion category of our Github where you can provide additional logs or more details on the issue.
If a post for your game already exists, consider adding your information as a comment on the existing post instead of creating a new one. Feel free to add potential workarounds to these threads as well.
NOTE: This is NOT a replacement for issues. Instead, discussion posts are a way to communicate a game’s functionality with your setup and troubleshoot with other users. If the game, your setup, or other users’ setups expose a new problem, an issue will be opened. This is to reduce issue clutter, since similar issues may span multiple games.
For more general feedback and feature requests, get involved in the discussion on the Ubuntu Discourse.
Until next time!