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.

More Mesa!

Not this mesa.

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

For gamers looking for the latest Mesa, the most popular options are the Kisak-mesa PPA or the Oibaf PPA which delivers the latest daily builds.

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.

Follow the progress of the Steam snap here>

This is part of a backlog of improvements we are actively working on over the next few months.

More on the backlog

GameMode

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

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!

Game migration

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!

Newsletter Signup

Related posts

Creating Snaps on Ubuntu Touch

This article was written in collaboration with Alfred E. Neumayer of the UBports Project. Tablets, phones and current technology’s capabilities are phenomenal. Who would have thought a thin, light, barely 10 inch device would provide all the power necessary to run Virtual Machines, wherever one desires while powered on battery? That a sma […]

Managing software in complex network environments: the Snap Store Proxy

As enterprises grapple with the evolving landscape of security threats, the need to safeguard internal networks from the broader internet is increasingly important. In environments with restricted internet access, it can be difficult to manage software updates in an easy, reliable way. When managing devices in the field, change management […]

We wish you RISC-V holidays!

There are three types of computer users: the end user, the system administrator, and the involuntary system administrator. As it happens, everyone has found themselves in the last group at some point or another; you sit down to perform a task relevant to your needs or duties, but suddenly the machine does not work as […]