Android

Android is the most used mobile operating system. It’s base is completly free and open source software provided by the Android Open Source project with Google as the main contributor. But sadly, all the Google services and applications are proprietary and closed source software that violate user privacy. At least with Android you have the possibility to escape this surveillance nightmare by switching away from preinstalled Android with Google Services.

Since Android 7.0 Vulkan compatibility has been provided and some games are using the new graphic API already. Your mobile GPU driver must support Vulkan.

Important Note: Only buy Android phones where you know you can do an OEM Unlock. Companies that block this should not be supported. And try to buy a phone that allows custom ROM’s or where usually a high community support is expected.

Side Note: Unfortunately Android is all about non-free firmware blobs and doesn’t encourage/enforce free and open source upstream Linux drivers.

OEM Unlock

Usually the OEM Unlock is done on any device with the following steps

  1. Enable Developer Mode (tab 7 times on the software version)
  2. Enable OEM Unlock. If you have a Samsung device, you the process might be done here already as often there is no fastboot (bootloader) mode and you can go directly to the next step (flash recovery with heimdall).
  3. Enable Advanced Boot
  4. Make a backup of all you important data (it will be deleted later on the mobile device)
  5. Reboot to Bootloader (fastboot mode)
  6. Install android-tools on Linux (sudo pacman -Sy android-tools android-udev)
  7. Type in a terminal “fastboot oem unlock”
  8. Confirm on the mobile device that all data will be wiped/deleted during this factory reset

Devices:

Install Recovery

To install custom Android ROM’s, you need to first flash a recovery like TWRP https://twrp.me. Basically it works like this:

  1. Make sure OEM Unlock is done (see above)
  2. Reboot to bootloader (fastboot)
  3. Download the latest TWRP for your device
  4. Connect USB cable and type in a terminal “fastboot flash recovery twrp-VERSION-DEVICENAME.img”
  5. Afterwards reboot directly to the bootloader (use the key kombination) as TWRP needs to modify the system to prevent some vendors automatically reflashing the original recovery during the next normal boot!

As soon as you have installed TWRP, you can download e.g. LineageOS on your mobile device. Flashing can be done then directly on the mobile device after rebooting to recovery mode.

Note: Samsung phones require heimdall (replaces Odin on Linux) to install twrp. But heimdall can flash twrp with this comand “heimdall flash –RECOVERY”.

Custom ROM’s

If you have TWRP installed, then flashing can be done like this:

  1. Download a custom ROM
  2. Reboot to recovery (TWRP)
  3. If it is the first time you install this custom ROM, wipe the data (factory reset). Reboot to recovery and check if there are still some partitions that are not mounted automatically (red error messages during wipe), then just format the flash drive. This was required on a Samsung device as there is no factory reset after the OEM unlock and there is no fastboot mode (bootloader). If you had to format the flash drive, download the custom ROM with a PC, connect the USB cable, select adb mode in TWRP and run “adb push /path/to/downloadfolder/customrom-XXXXX /sdcard” to copy the ROM again to the device.
  4. Flash custom ROM

To install a custom ROM’s without a recovery, basically it can be done like this:

  1. Reboot to bootloader (fastboot)
  2. fastboot update lineageos-*******

LineageOS

LineageOS (https://lineageos.org) is one of the well known Android custom ROM’s and it has been created out of the ashes of the CyanogenMod community. Issues:

  • No replacements for Google Services
  • No support for free software apps (F-Droid)
  • Google apps are advertised on the LineageOS website even though most of the Google services violate user privacy

Use LineageOS for MicroG instead of the original LineageOS!

LineageOS for MicroG

LineageOS for MicroG (https://lineage.microg.org) builds LineageOS with out of the box MicroG and F-Droid support. Updates are provides weekly for all official supported LineageOS devices.

/e/ Foundation

The e.foundation (https://e.foundation) is focusing on user privacy and free and open source software + services.

One of the main issue of /e/ is, that for some devices only very old Android versions are provided, in case of the OnePlus 3/5 it is still Android 7 nougat 😦 LineageOS offers Android 9 already for these devices!

Pre-installed apps hinder the user as well to update them from f-droid, which is as well not installed by default.

MicroG – Ungoogle your phone

MicroG (license Apache, https://microg.org) is a free software replacement for the proprietary Google services that violate user privacy. It provides for example:

  • Location services based on GSM cell towers and Wifi networks
  • Maps api
  • Cloud massaging

Several MicroG apps can be installed directly from F-Droid. But some Android Rom’s like LineageOS disallow MicroG to claim to be a Google Services replacement and therefore a quite complicated setup is required. As such it is recommended to use Lineage MicroG OS directly!

Android unGoogle Setup

As for some devices a custom rom is not yet available, the below installation procedure is based on the default Vendor Android that includes all proprietary, bloated, user privacy violating Google Apps (GApps).

Warning: To disable some Google function like location tracking is not enough, you need to replace Android with Google Apps (gapps) with a custom ROM. The COVID19 contact tracing was installed by Google without any user interaction and notification. Google even tracked the location of users even though users disabled it.

Steps to setup a new Android Google phone:

  1. Do not agree to any not mandatory terms & service contract (if you use a custom ROM without Gapps, this issue doesn’t exist)
  2. Disable Google location and data collection (if you use a custom ROM without Gapps, this issue doesn’t exist)
  3. Use a PIN to unlock the device (secure start is probably not available in vendor rom’s) and if available a finger print (drawing a pattern is insecure as people can remember it and you can see it usually on the screen when holding it against the light)
  4. Disable all Google and pre-installed apps (if you use a custom ROM without Gapps, this issue doesn’t exist)
  5. Download f-droid from https://f-droid.org (already included in LineageOS for MicroG) and install f-droid from you file browser
  6. Disable Google Chrome or the pre-installed Chrome Browser
  7. Disable the default calendar application (as it always tries to connect to an Google account)
  8. Disable the default E-Mail app
  9. Disable the default Music app
  10. Disable the default Galery & Fotos apps (at least OnePlus tries to enforce on the user to agree to a usage agreement, decline it!)
  11. Install free and open source software from F-Droid, see below Android Free Software Apps
  12. Disable Google Play Protect if you only want to use free and open source software from F-Droid. If you plan to use other sources like Aptoide, you may keep it active (and send this data to Google).
  13. Disable tracking id in data protection
  14. Disable Google Play Trust agent
  15. Google Keyboard
    1. Text correction
      1. Disable bad language block
    2. Search
      1. Disable search suggestions
      2. Disable search & more button
    3. Language recognition
      1. Disable language recognition
    4. Additional
      1. Disable telemetry data
      2. Disable personalization
      3. Disable help improving Gboard

LineageOS setup

  • LineageOS Setup Agent
    • Decide if you would like to use Wifi and GSM mobile station towers for geo location (recommended if you use MicroG)
    • Decide if you would like to send telemetry data to LineageOS
    • Activate data protection (<=LineageOS 16, LineageOS 17.1 is using the default Android permissions manager)
  • Download f-droid from https://f-droid.org (already included in LineageOS for MicroG) and install f-droid from you file browser
  • Disable Google Chrome or the pre-installed Chrome Browser (it is too integrated to Google and sends telemetry)
  • Disable the default calendar app (it promotes and tries to open Google Calendar even in the LineageOS rom!)
  • Disable the default E-Mail app
  • Disable the default Music app
  • Install free and open source software from F-Droid, see below Android Free Software Apps

/e/ Foundation setup

  • ff

General Android Settings

  • Adjust settings
    • Network & Internet
      • Advanced
        • Private DNS
          • Select hostname of private DNS provider and type in 1dot1dot1dot1.cloudflare-dns.com. This will hide DNS requests from your mobile service provider and limit cencorship in some countries. For privacy the automatic mode should be avoided as it connects to Google servers.
    • Apps & Notifications
      • Standard-Apps
        • SMS-App – Select QKSMS. Now you can disable as well the default SMS app!
      • Show all apps
    • Display
      • Nightlight – Enable it, select time plan from sun rise to dust, adjust night light colors to own liking
      • Automatic brigtness – Enable
    • Sound
      • Vibrate on touch – Disable
      • Vibrate on display touch – Disable
    • System
      • Gestures & Movements
        • System usage
          • Usage of gestures – Enabled (Android 17.1)
    • Phone
      • Click 7 times on Build Number to enable developer mode
    • System
      • Developer Mode
        • Enable Advanced Reboot menu
      • Language & Keyboard
        • Android Keyboard / Android Keyboard
          • Settings / Disable vibrate on touch
    • Security
      • check if mobile phone is encrypted
  • Top Bar Icons – Change sorting to this:
    • Wlan | Bluetooth | NFC | GPS | Mobile Data | Airplane | Hotspot | Screen Rotation | Read Mode | Streaming | Flash Light

LineageOS for MicroG Setup

Follow the normal LineageOS setup above and then do the following steps for MicroG.

  • Install from F-Droid Déjà Vu, Local GSM Location, WiFi Location Service and Radiocells.org UnifiedNlp Backend
  • Open MicroG settings and run the self test
    • Disable battery optimizations if you would like to run it in the background (keep it disabled if you do not have any app that requires this feature)
  • UnifiedNlp settings
    • Location services backend
      • Decide if you would like to enable the online Mozilla Location Service (recommendation is keep it disabled as Mozilla showed recently that they provide data to third parties)
      • Enable Déjà Vu for offline WiFi and GSM cell tower collection
      • Enable GSM Location backend and select Mozilla location service. Then create the local database.
    • Address resolution backed
      • Enable Nominatim and make sure that in settings OSM (OpenStreetMap) is selected

Firefox Android Setup

  1. Remove all unfree search engines like Google, Bing, Amazon, Qwant, Twitter
  2. Enable Do Not Track
  3. Set Do Not Track to always active
  4. Disable Third Party Cookies (Firefox Mobile doesn’t allow yet to enable only cookies from visited sites, this option is only available in the desktop variant)
  5. Disable the status report (to avoid sending this data to Mozilla and unknown third parties!)
  6. Install addons
    1. uBlock origin
    2. https everywhere
    3. Privacy Badger
    4. Decentraleyes
    5. I don’t care about cookies
    6. Cookies AutoDelete (make the setup to Automatically delete after 15 seconds, delete when changing the domain). If you have websites where you really do always want to stay login, add this website to the whitelist!

Android Free Software Apps

So this is my list of essential replacements:

  • Google Play => F-Droid (GPLv3)
  • Browser => Fennec (Firefox, MPL2) or IceCat. Install Fennec or IceCat and follow Firefox Android Setup below
  • Mail => Mail K-9 Mail (Apache2)
  • Calendar => Etar (GPLv3)
  • Music => Phonograph (GPLv3)
  • Google Sync for Contacts, Calendars, Tasks => DAVx5 (GPLv3) and Nextcloud server

Recommended apps:

  • Greentooth (GPLv3) can automatically disable Bluetooth after usage. Open Greentooth and enable it!
  • Binary Eye – Barcode scanner
  • KOReader – PDF and eBook reader
  • NFC Reader

List of recommented replacements:

  • File Manager => Material Files (GPLv3)
  • SMS => QKSMS (GPLv3)
  • Navigation & Maps => OsmAnd (GPLv3)

List of additional replacements:

  • Cloud Storage => nextcloud (GPLv3, you need a private own owncloud server)
  • Messenger
    • Telegram (GPLv2+ only client, server is proprietary!)
    • Riot (almost completly open source based on Matrix network)
    • Jitsi Meet (license Apache 2.0) for group meetings
  • Media
    • Media Center
      • not existing => Kodi (Client)
    • Media Server
      • not existing => Kodi (Server via uPNP/DLNA)
    • Remote Controle
      • not existing => Kore (GPLv3)
  • Password
    • Google, Firefox Sync => Hash It! (GPLv3)
  • Privacy
    • WLAN Privacy
      • Not existing => Wi-Fi Privacy Police (GPLv3, do not show a list of previously connected WLAN networks). Doesn’t work anymore in Android 9/10!
  • RSS Newsreader – spaRSS (GPLv)
  • Security – Encryption Passwort changer doens’t exist in Android, to replace the boot password and keep a simple PIN only for the lock screen use => SnooperStopper (GPLv3)
  • Calculator => Mathdroid (GPLv3), disable Calc appDNS changer
  • Not existing => DNS man (GPLv3, use DNS servers from https://opennicproject.org). Alternatively activate DNS over https 1.1.1.1 in Android settings
  • Editor => Turbo Editor (GPLv3+)
  • Google Tasks => Tasks (GPLv3)
  • Video
    • Offline
      • Video => VLC (GPLv3)
    • Online
      • Youtube => NewPipe (GPLv3), MusicPiped

Enable Guardian project as a package source in F-Droid:

  • Tor Browser => after installation, install some addons, see Firefox Android Setup

Root applications:

  • Backup => Oandbackup (GPLv3, just for app backup and restore, but it requires root!!!)

Android Bugs

Android is by default not Google free even when using only custom ROM’s like lineageos and getting rid of Chromium.

Zink: OpenGL to Vulkan

Since Mesa 19.3 Zink is available which offers an OpenGL to Vulkan translation. Mesa 20.2 will support OpenGL 3.0. The actual features of Zink are documented at MesaMatrix https://mesamatrix.net.

You can test games and apps simply by running them from a terminal when using Mesa-git. Just replace “command” with the application or game name:

MESA_LOADER_DRIVER_OVERRIDE=zink command

The following applications worked:

  • glxgears (minor shadow glitches)
  • Firefox in OpenGL mode, Webrender didn’t work, Wayland didn’t work as well due to missing EGL support
  • LibreOffice (but 6.5 will support Vulkan natively with Skia anyway)
  • openarena (crashes from time to time)
  • Supertux (worked in fallback mode to GLVideoSystem-20)

As there is currently no HUD like in DXVK it is quite hard to verify which driver actually runs, but I noticed that the GALLIUM HUD shows less lines in Zink then usual when using a parameter like this:

VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=position=top-right GALLIUM_HUD=simple,cpu,GPU-load,temperature,fps mangohud command

Somehow the Vulkan layer doesn’t work at the moment either, but mangohud is a great replacement.

What didn’t work:

  • Half Life
  • Extreme Tux Racer (etr)
  • openttd
  • Supertuxkart
  • lincity-ng
  • KDE Plasma Wayland
  • KDE Plasma
  • Blender (requires OpenGL 3.3)
  • weston?

systemd

Time

Daemon:

systemd-timedatd

Status:

timedatectl

Reboot

To reboot, run the command

systemctl reboot

To reboot for UEFI (Bios), run:

systemctl reboot --firmware-setup

systemd-boot

yay systemd-boot-pacman-hook

systemd-networkd

Journald

Limit journal size in:

sudo nano /etc/systemd/journald.conf
SystemMaxUse=500M

Kexec

https://wiki.archlinux.org/index.php/Kexec

Analyze and Improve Boot time

Recommendations:

  • Use systemd-boot instead of grub if UEFI support is available (usually VM’s support no UEFI until you install it manually, so probably the best to keep grub there)
  • Use the kernel boot command: quiet

To analyze the boot time, use systemd-analyze.

$ systemd-analyze
 Startup finished in 5853ms (kernel) + 1252ms (userspace) = 7106ms

Tip: To see how much time was spent in the initramfs, append the systemd hook to your HOOKS array in /etc/mkinitcpio.conf:

# udev replaced by systemd (add sd-encrypt after systemd if using encryption)
HOOKS="base systemd autodetect modconf block keyboard keymap filesystems"

As root, rebuild your initramfs with:

$ mkinitcpio -p linux
$ systemd-analyze
 Startup finished in 1766ms (kernel) + 4113ms (initramfs) + 1224ms (userspace) = 7104ms

Services startup time:

systemd-analyze critical-chain

or to see all services:

$ systemd-analyze blame

Create boot time chart/picture:

systemd-analyze plot > plot.svg

Silent Boot

Flickerfree booting (https://wiki.archlinux.org/index.php/Silent_boot):

Add to your kernel boot parameters (e.g. in /boot/loader/entries/). With Linux 5.1 this is not required anymore for Intel machines.

quiet loglevel=3 rd.udev.log_priority=3 rd.systemd.show_status=auto vt.global_cursor_default=0

Interestingly I had to enable additionally upower to get on the AMD GPU system no text output:

systemctl enable upower
systemctl mask systemd-hwdb-update.service

Disable not required services

There may be some services, that could be disabled, if you do not need them. Example of 2 services that are not required on my systems.

systemctl disable ModemManager.service
systemctl mask ModemManager.service
systemctl disable lvm2-monitor.service
systemctl mask lvm2-monitor.service

Fallback to working kernel

On Arch Linux you could install besides the mainline kernel as well the lts kernel as a fallback, so if the mainline kernel fails to boot that then at least there is another stable kernel available. This could then be combined with the new systemd-boot-count feature to automatically fallback to a working kernel.

https://www.phoronix.com/scan.php?page=news_item&px=Systemd-Boot-Count

Systemd Rescue Mode

Recently I was hit by an issue with a wrong installed mesa driver after I played around with mesa-git. Basically I notebook booted fine, but as soon as it tried to load SDDM something crashed very bad.

I couldn’t change to another non-graphical terminal (TTY) nor could I login via SSH.

On my notebook I use systemd-boot as a boot loader. It is fast and I don’t have issue with encryption. But as I have never seen any OS selection window like in GRUB2, I thought I have an issue… but pressing during the bios screen ESC multiple times showed by a systemd-boot loader where I could select to start normal, fallback, EFI default loader or Reboot into firmware interface.

The fallback options sounded very sweet. But it crashed as well because it tried to basically load the graphical target with SDDM as well.

After a reset I was again in the systemd-boot loader. Pressing “e” key allowed me to edit the lines. First thing I don’t understand, why is the parameter “quiet” provided in the fallback line. I mean people use this if something goes wrong so they want to see some output and possible failure messages and where the process is stuck. So why would this be a default. And second there is no option to tell the system to boot to a non-graphical environment. Again very bad.

I know there is something like a search engine on the internet, but it is still annoying, I found in https://fedoraproject.org/wiki/Systemd the following options with systemd (should work in systemd-boot, GRUB2 or as well in other boot loaders):

  • systemd.unit=rescue.target is a special target unit for setting up the base system and a rescue shell (similar to run level 1)
  • systemd.unit=emergency.target is very similar to passing init=/bin/sh but with the option to boot the full system from there
  • systemd.unit=multi-user.target for setting up a non-graphical multi-user system
  • systemd.unit=graphical.target for setting up a graphical login screen.

So I removed from the parameter “quiet” and added “systemd.unit=multi-user.target.

A little annoying is here, that the keyboard is not changed to your local. Findind special characters like = or – can take time for beginners.

And by pressing enter I could boot into a non-graphical environment. Great, but not as easy as I would wish. I hope I never have to tell this somebody by phone. Maybe I should open a bug report, but I fear they will ignore it.

D-Bus Broker

Dbus-broker can be installed on Arch Linux and it replaces the normal dbus. Users should not notice any big difference when using this new dbus-broker as it keeps backward compatibility.

Plymouth – Graphical Boot

The only case where a graphical boot is useful is if you use disk encryption. Typing it the password in the terminal is not nice.

yay plymouth

Add to mkinitcpio.conf the required hooks like (read the Arch Wiki for more details https://wiki.archlinux.org/index.php/Plymouth), example:

sudo nano /etc/mkinitcpio.conf
# replaced encrypt with plymouth-encrypt, if you have encryption
HOOKS="base udev plymouth plymouth-encrypt autodetect modconf block keyboard keymap filesystems"

Recommended for systemd:

# add sd-encrypt if you have encryption
HOOKS="base systemd sd-plymouth sd-encrypt autodetect modconf block keyboard keymap filesystems"

You should enable early KMS by adding to Modules as well the GPU module like, example (i915 for intel, amdgpu, nouveau, …):

MODULES="i915..."

Then deactivate the login manager and use the plymouth one instead.

sudo systemctl disable sddm.service

sudo systemctl enable sddm-plymouth.service

Add splash to kernel parameters and enable silent boot (https://wiki.archlinux.org/index.php/Silent_boot), e.g. in:

sudo nano /etc/loader/entries/archlinux.conf

quiet splash loglevel=3 vt.global_cursor_default=0

And if you use systemd hook add:

rd.udev.log-priority=3 rd.systemd.show_status=auto

For Intel add additionally (not required anymore Linux >= 5.1 and Intel Skylake and newer hardware):

i915.fastboot=1

List themes:

plymouth-set-default-theme -l

Enable theme (example solar)

sudo plymouth-set-default-theme -R <theme>

Games – OpenGL Proprietary

Games – OpenGL Proprietary XWayland

Factorio

Factorio (https://factorio.com) is a great game to build up a factory and automate it. So far it doesn’t natively run on Wayland (bug) only through XWayland.

The latest release 0.16 had sound issues, I had to add the prefix (https://forums.factorio.com/viewtopic.php?f=7&t=3636):

padsp gamestarter

Some Gratis Games

There are several gratis games for Linux that you can play. A more complete list can be found here https://www.gamingonlinux.com/free-games.

Others

MPV + FFmpeg

MPV 0.32

MPV (license GPLv2, https://github.com/mpv-player) is the first video player with Vulkan support since 0.28. Wayland is supported by default since 0.29.

pacman -Sy mpv

To use Vulkan, you need to run MPV with or modify the start menu entry:

mpv --gpu-api=vulkan --player-operation-mode=pseudo-gui -- %U

At least on Plasma Wayland mpv 0.30 works fine with Vulkan in a Wayland window.

AV1

The AV1(BSD Clause 2, https://aomedia.googlesource.com) media codec has been officially released royalty-free by the Open Media Alliance (https://aomedia.org) on 2018-03-28 with broad support from all the major internet companies, read https://www.phoronix.com/scan.php?page=news_item&px=AV1-Released. On 2018-06-26 the version 1.0 has been released. AV1 claims to offer 30% better compression at 4K then the other media codec’s like VP9.

AV1 Decoding

  • DAV1D 0.1 (license BSD, https://code.videolan.org/videolan/dav1d) is a AV1 decoder from the VLC and ffmpeg communities. The decoding speed has been improved drastically in the last time.
  • FFmpeg 4.2 supports AV1 via DAV1D. FFmpeg added in August 2019 the AMD advanced media framework (AMF) which is based on Vulkan initialization. With 4.3 Vulkan support should be in good shape.

Games – Vulkan OpenSource

Free and open source efforts for games without Wayland support running through XWayland on Vulkan are documented here. For more information about toolkit’s with proper Wayland support and how to remove legacy ones running on XWayland only, read Wayland.

XWayland (X11)

GZDoom

GZDoom (license GPLv3, https://zdoom.org, https://github.com/coelckers/gzdoom/tree/vulkan2) is based on the open source release of the Doom 1 engine and it has been enhanced with Linux and Vulkan support (since Version 4.0). Another engine for Doom is Doomsday (withouth Vulkan). It supports as well all the other idTech 1 game engine games like:

  • Doom 1 + 2
  • Heretic
  • Hexen
  • Strife
  • Chex Quest
  • and fan-created games like Harmony and Hacx.
yay gzdoom

Luxtorpeda can use GZDoom automatically in Steam Play, only Vulkan doesn’t work yet automatically.

To manually setup GZDoom and play with Vulkan enabled, run:

gzdoom +vid_backend 0

Doom 1 + 2

You can buy DRM free copies:

If after the installation GZDoom doesn’t find you game .wad files automatically, you can add the path to the file like this:

$ nano .config/gzdoom/gzdoom.ini
...[IWADSearch.Directories]
...Path=/home/USERNAME/.wine/drive_c/GOG Games/DOOM/
...

If you add multiple folders, GZDoom will automatically create a game selection menu.

Herectic

Hexen

Chex Quest 1 + 2 + 3

Chex Quest is available to downlaod from the official website https://www.chexmix.com/chexquest.

Helium Rain

Helium Rain (64bit) is an Early Access game on Steam (https://store.steampowered.com/app/681330/Helium_Rain). The developers released the source code of Helium Rain (license BSD, https://github.com/arbonagw/HeliumRain) of their own engine,it requires the Unreal Engine and the content to build.

Helium Rain supports Vulkan (2018-01-26). To run the game on Vulkan you need to add -vulkan to the launch options in Steam. The beta channel is not available anymore.

The game doesn’t work on Wayland (bug) only through XWayland.

Command & Conqueror: Generals – openSAGE

OpenSAGE (license LGPLv3, https://github.com/OpenSAGE) is a free and open source re-implementation of the SAGE game engine. This will allow you to play Command & Conquer: Generals and Zero Hour, but support could be extended to other RTS titles from EA Pacific. Linux support has been added and Vulkan support is already work in progress (https://github.com/OpenSAGE/OpenSAGE/releases/tag/v0.2.0). If it works natively on Wayland or only through XWayland has to be seen.

vkOpenArena

vkOpenArena (license GPLv2+, https://github.com/suijingfeng/vkOpenArena) provides Vulkan support since March 2019.

vkQuake

vkQuake (https://github.com/Novum/vkQuake) is a Vulkan port of the Quake game licensed under GPLv2. Installation on Arch Linux:

yay vkquake

So far I had no luck in running vkQuake directly via Wayland, even with the start parameter -platform wayland or with the prefix SDL_VIDEODRIVER=wayland. vkQuake runs only through XWayland.

Luxtorpeda can use vkQuake automatically in Steam Play.

Quake

If you want to do the setup manually, do the following:

  • Extract the following files into the folder .vkquake/id1/
  • pak0.pak: contains episode 1 (shareware, gratis). Episode 1 is available as a shareware version for testing, if you don’t own the game. You can download it from https://bit.ly/2aDMSiz.
  • pak1.pak: contains episodes 2-4 (you can buy it e.g. on GOG https://www.gog.com/game/quake_the_offering, the version on GOG is provided with the original soundtrack files, not like the steam version)

If you have downloaded the shareware version extract the archive. Now you need a tool like 7-zip to extract the file resource.1, in the terminal you can do this with this command:

7z e resource.1

If you have copied the file PAK0.PAK to the .vkquake/id1/ folder, rename it on Linux to pak0.pak as Linux is case-sensitive and otherwise it won’t find the file. If you have the PAK1.PAK file, do the same for this one.

If you have Quake version with the soundtrack copy them to the folder .vkquake/id1/music/.

Now you should be able to run the game, if it doesn’t try to run it from the terminal to see the error messages.

vkQuake2

Quake 2

vkQuake2 (license GPLv2, https://github.com/kondrak/vkQuake2) added Vulkan support for the Quake 2 engine. The Linux version is available since mid January 2019.

Installation on Arch Linux:

yay vkquake2

Before running the game you need to copy some files to the game directory (you may need to install the GOG version first with Wine):

sudo mv Quake\ II/* /opt/vkquake2/baseq2/

Then the game did run on Vulkan, at least in multiplayer mode. The normal game did freeze.

vkQuake3

Quake 3

vkQuake3 (license GPLv2, https://github.com/suijingfeng/vkQuake3) added a Vulkan backend based on the Qauke III Arena Kenny Edition.

Quake III Arena Kenny Edition

In the Quake III Arena Kenny Edition Vulkan support has been added as well, read https://github.com/kennyalive/Quake-III-Arena-Kenny-Edition/releases/tag/v1.1. But it is not available for Linux at the moment.

RBDoom-3-BFG

Doom 3

The source code of vkDoom3 (GPLv3), a Doom 3 Vulkan port, has been released and you can follow the  project here https://github.com/DustinHLand/vkDOOM3. The RBDOOM-3-BFG project can be followed here https://github.com/RobertBeckebans/RBDOOM-3-BFG and they plan to pull the Vulkan code as well and by this it will support Linux (64 bit). The bug for Vulkan is open since some time without any response https://github.com/RobertBeckebans/RBDOOM-3-BFG/issues/398, but beginning of October 2018 some merge activity started. RBDoom3-BFG doesn’t support Wayland (bug) and it runs through XWayland.

To install RBDoom3-BFG run the following command (use the git version so that as soon as there is Vulkan support you can start testing):

yay rbdoom3-bfg-git

To play the game you need to do the following:

  1. Create a link to the install folder with the name .rbdoom3bfg in your home directory (you can install Doom 3:BFG Edition e.g. via Wine)
  2. If you use a copy of GOG, open the default.cfg file in the base directory of the game and add at the end the line “seta sys_lang "english". Otherwise the game starts in Japanese.

Warzone 2100

Some independent developers are porting the game Warzone 2100 game (released 1999, open sourced later, https://wz2100.net, https://github.com/Warzone2100/warzone2100) to Vulkan, read https://www.phoronix.com/scan.php?page=news_item&px=Warzone-2100-Vulkan. The OpenGL version of Warzone 2100 is available for Linux, the Vulkan port is currently not provided for Linux but it will be developed soon, read http://forums.wz2100.net/viewtopic.php?f=32&t=13651. The video files are available here https://sourceforge.net/projects/warzone2100/files/warzone2100/Videos/.

X-Men: The Ravages of Apocalypse

X-Men: The Ravages of Apocalypse can be downloaded from the official website http://www.zerogravity.com.au/xmen (without original soundtrack) and it runs with vkQuake on Vulkan.

Unreal Engine (98)

Vulkan-drv (license ???, https://github.com/kosumosu/vulkan-drv) is a Vulkan renderer in an early stage for the original Unreal Engine (98).

Vulkan Games Proprietary

The non open source games can be found here Vulkan Proprietary Games.

New Game Engines for Old Games – OpenGL OpenSource

Thanks to a lot of community effort there are several games that got a free and open source software (FLOSS) engine as a drop-in replacement for the proprietary one. Even if never released for Linux, they can be played now natively, some of them even on Vulkan, read Games – Vulkan OpenSource.

The content like artwork, media and music still remains under their original copyright license and you still need a copy of the original game or if not available you can buy it used or via one of the game shops.

Running the game with a free and open source software engine offers several advantages like Linux support, 64bit, new OpenGL paths, bug fixes, new features and so on. Not every project reached the same quality, but in most cases it is worth a try.

The game engines can be used as well to develop own games or as development examples. A more complete list can be found here https://www.gamingonlinux.com/wiki/Open_Source_Game_Engines_List or here https://en.wikipedia.org/wiki/List_of_open-source_video_games

Wayland

OpenRA

OpenRA (license GPLv3, http://www.openra.net, https://github.com/OpenRA/OpenRA) is a game engine for the Command & Conquer games including Krush Kill ‘N Destroy 1 + 2. The Red Alert part of the game is available for free of charge and can be downloaded in game once OpenRA is installed.

pacman -Sy openra

If you add the prefix SDL_VIDEODRIVER=wayland to the start parameter then OpenRA will work fine in Wayland.

Command & Conquer

If you run OpenRA for the first time it will allow you to download the base game of Command & Conquer – Red Alert, Tiberian Dawn and Dune 2000 for free. Only the mission briefings need to be purchased or installed from the original CD’s, if you want them. OpenRA is developing support for Tiberian Sun as well.

Krush Kill ‘N Destroy 1 and 2

OpenRA runs since December 2018 as well Krush Kill N’ Destroy 1 and 2 (license GPLv3, https://kknd-game.com, https://github.com/IceReaper/KKnD). OpenRA will download the demo and you can start testing it. The game data cam be purchased at GOG:

Starcraft (1998)

OpenSC (https://github.com/cookgreen/OpenSC) is a mod of the OpenRA engine for Starcraft.

XWayland (X11)

OpenAge

Age of Empires II

OpenAge (license GPLv3+, http://openage.sft.mx) is a game engine remake for Age of Empires II (or the HD version). The code is available on https://github.com/SFTtech/openage. Technically it maybe extended to Age of Empires and Star Wars: Galactic Battlegrounds, as they used the same engine.

GemRB

Baldurs Gate  + Icewind Dale + Planescape: Torment

GemRB (license GPL, http://www.gemrb.org) is a portable open-source implementation of Bioware’s Infinity Engine and it runs:

You can buy the game content on GOG DRM free. It is developed on here https://github.com/gemrb/gemrb.

NBlood

Blood

NBlood (license GPLv2, https://github.com/nukeykt/NBlood) is a open source engine for the FPS game Blood. To play the game you need to buy a copy of the Blood game (available on GOG and Steam).

CaesarIA or Julius

Caesar III (1998)

CaesarIA (license GPLv3, https://bitbucket.org/dalerank/caesaria/wiki/Home) is a game engine remake of Caesar III that slightly modified the original game play. You can find it as well on Steam https://store.steampowered.com/app/327640 and on GOG https://www.gog.com/game/caesar_3

Julius (license AGPLv3, https://github.com/bvschaik/julius) is another open source game engine for Caesar III that tried to stay with the original game play as close as possible.

Carnage3D

Carnage3 (https://github.com/codenamecpp/carnage3d) is an open source reimplementation of GTA 1 (Grand Theft Auto).

Delver

Delver Engine and Editor (license GPLv2, https://github.com/Interrupt/delverengine) has been released as free software in November 2018. To play the game you can buy the game content on Steam.

FreeAblo

Diablo

FreeAblo (license GPLv3, https://freeablo.org, https://github.com/wheybags/freeablo) is a open source engine for Diablo 1 game and is available for Linux. It requires the game data to be played, but it is still not yet finished. Diablo 1 is not available for sales anymore, you can only buy a used CD copy (on the Internet Archive.org a copy is available, but this is maybe not legit).

yay freeablo

You can use the normal or the git version.

DevilutionX (license public domain, https://github.com/diasurgical/devilutionX) is a Diablo 1 port provided as public domain in June 2018 by Devilution (https://github.com/galaxyhaxz/devilution), which seems to be at least partially de-compiled, it is not sure if there are legal concerns (copyright) as this might not be an own development and reverse engineered like other engines. To play the game you need to have the game data from the original game. At least Diablo 1 can be bought now on GOG.

yay devilutionx-git

Before you can run the game, copy diabdat.mpq from your CD or GoG installation (or extract it from the GoG installer) to the DevilutionX install folder or data folder; make sure it is all lowercase:

~/.local/share/diasurgical/devilution/

OpenD2

Diablo II

OpenD2 (license GPLv3, https://github.com/eezstreet/OpenD2) is a open source engine for the Diablo II game and is available for Linux. It requires the game data to be played.

Doomsday

Doom + Herectic + Hexen

Doomsday (license GPLv3, http://dengine.net, https://github.com/skyjake/Doomsday-Engine) offers with its Doomsday Engine a Doom / Heretic / Hexen port with enhanced graphics (besides GZDoom).

NRedneck

Duke Nukem 3D + Redneck Rampage + Redneck Rampage: Rides Again

NRedneck (https://github.com/nukeykt/NRedneck) is an open source game engine for Duke Nukem 3D, Redneck Rampage and Redneck Rampage: Rides Again. More details can be found in this forum post https://forums.duke4.net/topic/10241-rednukem-redneck-rampage-port/.

Ebony Spire Heresy

Ebony Spire Heresy (license MIT, https://beardedgiant.games/product/ebony-spire-heresy/) provides the game engine as open source and is available on Steam.

OpenBlack

Black & White (2001)

OpenBlack (license GPLv3, https://github.com/openblack/openblack) is an open source game engine for Black & White. The game data must be owned to play the game with OpenBlack.

OpenMW

Elder Scrolls III: Morrowind

OpenMW (license GPLv3, https://openmw.org) is developed under a GPLv3 license. The code is available on https://github.com/OpenMW/openmw. Work is ongoing to add support for Oblivion, Skyrim, Fallout 3 and Fallout New Vegas, read https://openmw.org/2019/followers-of-shadows.

Install the engine with the following command:

pacman -Sy openmw

You can buy a DRM free copy at GOG if you don’t own the game already:

https://www.gog.com/game/the_elder_scrolls_iii_morrowind_goty_edition

Download the Windows version, install it with Wine, then run OpenMW (openmw-launcher command) and follow the first launch guide. It will find your existing Wine game installation folder, if it is a default one automatically, but you need to add the data folder manually. OpenMW runs great on Linux and playing works really well.

OpenMW is using SDL2, so Wayland should be supported natively, but I got some error messages, see below. But on Plasma-Wayland the game works at least well trough XWayland, except some input bugs with the mouse and keyboard, hopefully solved with the next Plasma release.

$ SDL_VIDEODRIVER=wayland openmw-launcher 
wl_registry@2: error 0: invalid version for global wl_data_device_manager (9): have 2, wanted 3
SDL_Init failed: "The video driver did not add any displays"

OpenTESArena

The Elder Scrolls: Arena

OpenTESArena (license MIT, https://github.com/afritz1/OpenTESArena) is a new game engine for Elder Scrolls: Arena in an early stage and not fully playable yet.

OpenVIII

Final Fantasy VIII

OpenVII (license MIT, https://github.com/MaKiPL/OpenVIII) is working on a new game engine for Final Fantasy VIII, it is not fully working yet but looks interesting. This will add Linux support and it is based on OpenGL.

REGoth

Gothic + Gothic II

REGoth (GPLv3, https://github.com/REGoth-project/REGoth) is a remake of the Gothic and Gothic II engine.

You can buy a DRM free copy at GOG if you don’t own the game already.

yay regoth-git

You can by a DRM free copy from GOG:

Run REGoth from a terminal with the following flags:

REGoth -g "path/to/gothic1or2" -w startworld.zen

Where path/to/gothic1or2 points to the root of a Gothic I or II installation and startworld.zen is one of the Zen-Files found in a .vdf-files in the games data/-directory. Examples:

Gothic 1 – Overworld: REGoth -g “path/to/gothic1″ -w world.zen”
Gothic 1 – Oldmine: REGoth -g “path/to/gothic1″ -w oldmine.zen”
Gothic 1 – Freemine: REGoth -g “path/to/gothic1″ -w freemine.zen”
Gothic 1 – Sleeper temple: REGoth -g “path/to/gothic1″ -w orctemple.zen”
Gothic 2 – Overworld: REGoth -g “path/to/gothic2″ -w newworld.zen”
Gothic 2 – Valley of mines: REGoth -g “path/to/gothic2″ -w oldworld.zen”
Gothic 2 – Addonworld: REGoth -g “path/to/gothic2″ -w addonworld.zen”
Gothic 2 – Dragonisland: REGoth -g “path/to/gothic2″ -w dragonisland.zen”

OpenJK + EthernalJK

STAR WARS Jedi Knight + Jedi Outcast

OpenJK (license GPLv2, https://github.com/JACoders/OpenJK) allows you to play the following games in single player mode:

  • Jedi Knight I: Jedi Academy Single Player
  • Jedi Knight II: Jedi Outcast Single Player

With EthernalJK you can play in multi player mode. Luxtorpeda can use OpenJK and Ethernal JK automatically in Steam Play.

OpenRCT2

RollerCoaster Tycoon 2

OpenRCT2 (https://openrct2.org or https://openrct2.website) is licensed under GPLv3. The code is available on https://github.com/OpenRCT2/OpenRCT2.

Buy a DRM free copy:

https://www.gog.com/game/rollercoaster_tycoon_2

yay openrtc2

Shadow Warrior Classic (1997)

Recently the source of Shadow Warrior (license GPLv2 for the game engine files, https://gitlab.com/NY00123/sw-src-and-build-addendum) has been discovered again and released as open source, it is not playable yet or ported to Linux, but sooner or later this will probably happen.

OpenXRay

S.T.A.L.K.E.R. Call of Pripyat

OpenXRay (license BSD but maybe it is just source code that is not free, https://github.com/OpenXRay/xray-16) is based on Game Engine XRay that has been used for S.T.A.L.K.E.R. Call of Pripyat added several enhancements plus Linux support. You need to buy the game content and data to use it with OpenXRay.

System Shock: Classic

System Shock (license GPL, https://github.com/NightDiveStudios/shockmac) has been released as free software on 2018-04-07. The Linux version on Steam was only a Wine wrapper. A new linux version has been created https://github.com/Interrupt/systemshock, the code name is Shokolate. To play the game you need to buy the game content.

Return to the Roots

The Settlers 2

Return to the Roots (https://www.siedler25.org) is licensed under. The code is available on https://github.com/Return-To-The-Roots. Install the engine with the following command:

yay return-to-the-roots
# or for the latest builds
yay s25rttr

Buy a DRM free copy:

https://www.gog.com/game/the_settlers_2_gold_edition

Link the game files on Arch Linux, e.g. like this:

rm -R /bin/RTTR/S2

ln -s /home/rainer/.wine/drive_c/GOG\ Games/Settlers\ 2\ GOLD/ /usr/share/s25rttr/

sudo mv /usr/share/s25rttr/Settlers\ 2\ GOLD /usr/share/s25rttr/S2

Then run the game:

rtts.sh

The game seems to run, only campaigns do not work yet. The game is using the old SDL, hopefully they will upgrade to SDL2 to provide modern support for Wayland, this will probably happen with the release of version 1.0, read https://github.com/Return-To-The-Roots/s25client/issues/144.

CorsixTH

Theme Hospital

CorsixTH (license GPL, https://corsixth.com) is a remake of the Theme Hospital engine. You can follow the development here https://github.com/CorsixTH/CorsixTH. Install the engine with the following command:

yay corsix-th

You can buy a DRM free copy at GOG https://www.gog.com/game/theme_hospital.

Download the Windows version, install it with Wine, start CorsixTH (CorsixTH command) and link it to the path of the Wine installation folder of Theme Hospital. CorsixTH runs great on Linux and playing works really well.

CorsixTH is using SDL2, so Wayland should be supported natively, but I got some error messages, see below. But on Plasma-Wayland the game works really well trough XWayland.

$ SDL_VIDEODRIVER=wayland CorsixTH
---------------------------------------------------------------
Welcome to CorsixTH v0.60!
---------------------------------------------------------------
This window will display useful information if an error occurs.
---------------------------------------------------------------
wl_registry@2: error 0: invalid version for global wl_data_device_manager (9): have 2, wanted 3
SDL_Init failed: The video driver did not add any displays
An error has occurred in CorsixTH:
/usr/share/CorsixTH/CorsixTH.lua:133: Cannot initialise SDL
stack traceback:
 [C]: in function 'assert'
 /usr/share/CorsixTH/CorsixTH.lua:133: in main chunk
 [C]: in ?
wl_registry@2: error 0: invalid version for global wl_data_device_manager (9): have 2, wanted 3
SDL_Init failed: The video driver did not add any displays
bootstrap.cpp:49: Unable to initialise video

OpenLara + OpenTomb

Tomb Raider 1 – 5

OpenLara

OpenLara is developed under a BSD license and the code is available on https://github.com/XProger/OpenLara. For more details you can follow the forum tread http://www.tombraiderforums.com/showthread.php?t=216618.

You can even play and test it in a browser (Fullscreen with ALT + Enter):

http://xproger.info/projects/OpenLara

Buy a DRM free copy:

https://www.gog.com/game/tomb_raider_123

You can install OpenLara in Arch Linux from AUR with:

yay openlara

Run OpenLara from the terminal.

OpenTomb

Another Alternative to OpenLara.

https://opentomb.github.io

http://www.tombraiderforums.com/showthread.php?t=197508

ETLegacy

Wolfenstein: Enemy Territory

ETLegacy (license GPLv3, https://github.com/etlegacy, https://www.etlegacy.com) is build based on ioquake3 engine an offers OpenGL 3 support. The original game engine has been released as open source and the game file can be downloaded from here https://www.splashdamage.com/games/wolfenstein-enemy-territory. The game maps have been recreated with higher quality. On Arch Linux you can install the game from AUR (use the git version, the normal doesn’t work as of librenderer_opengl1_x86_64.so issues):

yay etlegacy-git

If the game crashes after the first setup, run it again.

OpenXCom

X-Com

OpenXCom (license GPLv3, https://openxcom.org, https://github.com/SupSuper/OpenXcom) is an open-source clone of UFO: Enemy Unknown (“X-COM: UFO Defense” in the USA release) and X-COM: Terror From the Deep videogames by Microprose. Luxtorpeda can use OpenXCOm automatically in Steam Play.

Open Source Games with Proprietary Engines & Games

GTA San Andreas

San Andreas Unity (license MIT, https://github.com/GTA-ASM/SanAndreasUnity) tries to remake GTA San Andreas (Grand Theft Auto) with the Unity engine.

The Elder Scrolls II: Daggerfall

Download gratis game https://elderscrolls.bethesda.net/en/daggerfall?.

Download game builds http://www.dfworkshop.net/projects/daggerfall-unity/live-builds.

Additional Open Source Engines

For a more complete overview, look here https://osgameclones.com. The site itself is actually as well an open source project (license MIT, https://github.com/opengaming/osgameclones).

Games – Vulkan Proprietary

Proprietary games without Wayland support running through XWayland on Vulkan are listed below this point.

Vulkan Only Games

Artifact

Artifact is a card game from Valve with Linux and Vulkan only support.

Dota Undergrounds

Dota Undergrounds (basic game free of charge) has been released by Valve with Linux and Vulkan only support.

X4

X4 was released end of 2018 and supports Vulkan only. On Linux the beta version is available sinde 26th February 2019.

Vulkan Linux Only Games

AI War 2

AI War 2 got released on 2019-10-22 with Vulkan support only on Linux.

DiRT Rally

Feral seems to offer an experimental Vulkan build only on Linux for DiRT Rally. You can enable it on Linux in the Feral Lauchner. Enter in Advanced / Advanced Options the following “-showdebugpanel -showtestpanel”, now you can click on the tab testing and enable “Use Vulkan”. I couldn’t get this to work though, it always launched with OpenGL.

DiRT 4

Feral did release DiRT 4 for Linux with Vulkan only support only on Linux and it works great. It doesn’t support Wayland (bug) and it runs through XWayland.

F1 2017

Feral did release F1 2017 for Linux with Vulkan only support only on Linux. It doesn’t support Wayland (bug) and it runs through XWayland.

Forsaken Remastered

The Linux version of Forsaken Remastered ported by Ryan “Icculus” Gordon supports Vulkan only on Linux. It can be enabled in the game in the video setting menu. Vulkan should be enabled by default.

Hitman

Feral added an experimental Vulkan build only on Linux for Hitman. You can enable it on Linux in the Feral Lauchner. Enter in Advanced / Advanced Options the following “-showdebugpanel -showtestpanel”, now you can click on the tab testing and enable “Use Vulkan”. Water rendering is partially broken and the benchmark crashed as well, but other than this it worked quite well.

Life is Strange 2

Life is Strange 2 has been released by Feral on 2019-12-19 with Vulkan support only on Linux.

Mad Max

Feral added to Mad Max a Vulkan build only on Linux. To enable Vulkan read the following blog post: https://www.feralinteractive.com/en/news/753. Basically you enter in the game properties in the Beta tab of Steam the code “livelongandprosper” and then the vulkan_beta will be available. After downloading the beta you can lunch the game and it will run on Vulkan. What is strange is that Vulkan is not yet shipped by default!

Mad Max doesn’t support Wayland and it runs through XWayland (Bug). For benchmarking you can add in the Steam lunch options the command “–feral-benchmark”.

Middle-earth: Shadow of Mordor

Feral added on 2019-10-17 to Shadow of Mordor a Vulkan port only on Linux . It is available in the beta tab of the game settings on Steam.

Rise of the Tomb Raider

Rise of the Tomb Raider was released by Feral with Vulkan only support only on Linux. The game doesn’t work on Wayland (bug) only through XWayland.

Shadow of the Tomb Raider

Shadow of the Tomb Raider has been released by Feral with Vulkan only support on Linux.

Steel Rats

Steel Rats added Linux and Vulkan only support. The game uses the Unreal Engine. It is available on Steam.

Supraland

Supraland supports Vulkan on Linux.

Total War Saga: Thrones of Britannia

Total War Saga: Thrones of Britannia has been ported by Feral and it offers Vulkan only support only on Linux. The performance is great on Linux and the Vulkan port is near the performance of DX11. It doesn’t support Wayland even though it is providing SDL 2.0.7.

Total War: Three Kingdoms

Total War: Three Kingdoms has been ported by Feral with Vulkan only support only on Linux. Wayland is not supported.

Total War: Warhammer II

Total War: Warhammer II has been ported by Feral to Linux and Vulkan and it works great. Wayland is not supported.

Warhammer 40.000: Dawn of War III

Feral did release Warhammer 40.000: Dawn of War III with Vulkan only support only on Linux . Vulkan can be activated in the game launcher in the Advanced tab. It doesn’t support Wayland (bug) so far and it runs through XWayland.

What Never Was

What Never Was (game free of charge) is available unofficially for Linux on Steam. The game is based on the Unreal Engine and Vulkan support is available only on Linux, it requires the parameter “-vulkan”.

Wolrd of Guns – Guns Disassembly

Wolrd of Guns is a Unreal Engine game and supports Vulkan when adding the parameter “-force-vulkan”.

ZED

ZED works with Vulkan on Linux. It is not yet the default, but it works well.

Vulkan Games

7 Days To Die

7 Days To Die offers native experimental Vulkan support (available in game launcher). Before version 0.18 the in-game graphics just rendered a pink flat screen, this is fixed now and Vulkan works fine on Linux native and Proton. The game comes with the Easy Anti Cheat DRM, but it can at least be disabled.

Aerofly FS 2 Flight Simulator

Aerofly FS2 is available with Vulkan and Linux support and it works quite well.

Among the Sleep

Among the Sleep is based on the Unity Engine and Vulkan can be enabled with the “-force-vulkan” parameter. It works on Linux, but there are some grahphical glitches.

AntVentor

AntVentor doesn’t support officially Vulkan, but it runs fine if you run it on Steam with the following parameter:

%command% -force-vulkan

Astrokill

ASTROKILL is based on the Unreal Engine and they added a Vulkan option into their launcher in Steam, but sadly isn’t the default yet. The game works well with Vulkan. The game doesn’t work on Wayland (bug) only through XWayland.

Ballistic Overkill

Ballistic Overkill is a good FPS game with Vulkan and 64 bit support. From my point of view the 32 bit build should be removed and Vulkan should be default, for now the game requires for Vulkan a start-up parameters. Ballistic Overkill doesn’t support Wayland and it runs through XWayland (Bug) even if you try to enforce it, probably Unity engine needs a update.

Launch Options:

%command% -force-wayland -force-vulkan

If you use Vulkan or OpenGL can be seen in the main menu when you start the game on the left bottom. The game runs great on Vulkan even in 4K.

Blacksmith

Blacksmith is based on the Unity Engine and Vulkan support is available on Linux with the parameter “-force-vulkan”.

Darkside Detective

The Darkside Detective works fine on Linux with Vulkan, you have to use in Steam the following launch option:

%command% -force-vulkan

Dota 2

Dota 2 (basic game free of charge) offers optionally Vulkan support on Linux and runs very well with RADV. Dota 2 doesn’t support Wayland (bug) and it runs through XWayland. Sadly Vulkan is not the default yet. Dota 2 offers Vulkan support as well for the proprietary Metal driver on MacOSX via the free software MoltenVK.

How to enable Vulkan is described in this post: https://www.facebook.com/notes/wykrhm-reddy/setting-up-dota-2-with-vulkan/1097489820273895

These are the steps (copied from the post):

  1. Go to your Steam Library > Dota 2.
  2. Under the DLC section, tick the newly available “Dota 2 Vulkan Support” DLC. This should download the required files. Download size is around 312 MB.
  3. Once the download is completed, add the following to your launch options: -vconsole -vulkan

Check if Vulkan is running (copied from the post):

  1. Open the console (` key by default).
  2. Because you enabled the vconsole, that should open up. You might have to alt tab as it pops up as a new dialog box.
  3. Scroll to the top and find the lines the talk about the RenderSystem. If you’re running the Vulkan build, they should read something like this. If not, they’ll refer to whichever render system they are using such as DirectX or OpenGL.

Dungeon Escape

Dugeon Escape is based on the Unity Engine and Vulkan support is available on Linux with the parameter “-force-vulkan”.

Geocore

Geocore has been released with Linux, 64 bit and optionally Vulkan support. The game is created with the Unity game engine, but as of this, the game still has some input bugs and the Vulkan port is really slow on a AMDGPU.

Geocore doesn’t support Wayland (bug) and it runs through XWayland (Bug) even if you try to enforce it with -force-wayland, probably Unity engine needs an update. Launch Options:

-force-vulkan

Helium Rain

See Games – Vulkan OpenSource

Jotun: Valhalla Edition

Jotun is based on the Unity Engine and Vulkan works on Linux with the parameter “-force-vulkan”.

Jupiter Hell

Jupiter Hell offers Vulkan support on Linux and Proton.

Project R.I.P.

Project R.I.P. offers Vulkan support.

Serious Sam Fusion 2017

Serious Sam Fusion 2017 fully supports by default Vulkan on Linux since release. OpenGL and 32bit support has been removed in an 2018 update. Serious Sam Fusion 2017 doesn’t support Wayland (bug) and it runs through XWayland. Serious Sam Fusion 2017 includes the following games:

  • Serious Sam: The First Encounter
  • Serious Sam: The Second Encounter
  • Serious Sam: The Last Hope
  • Serious Sam: BFE
  • Serious Sam: Jewel of the Nile

The Talos Principle

The new publicbeta defaults now to the 64 bit build (2019-02-23) and Vulkan. It removed OpenGL support, but strangely they still kept 32bit support available. The Talos Principle doesn’t support Wayland (bug) and it runs through XWayland.

Throne of Lies

Throne of Lies offers an optionally Vulkan version with the Unity Engine. Vulkan can be selected in the game launcher. Bug: But the game doesn’t connect on Linux to the game servers as there seems to be a DRM login.

Tower of Time

Tower of Times supports optionally Vulkan on Linux. The game is based on the Unity engine. To use Vulkan, you need to add the launch option “-force-wayland -force-vulkan” in Steam. The game runs stable on Vulkan. The game doesn’t support Wayland yet and runs through XWayland.

Trüberbrook

Trüberbrook works optionally on Vulkan on Linux. The game is based on the Unity Engine and you need to add-force-vulkan” to run it on Vulkan. It doesn’t work on Wayland only through XWayland.

Unturned

Unturned is based on the Unity Engine and Vulkan can be enabled as well on Linux with the parameter “-force-vulkan

War Thunder

War Thunder (basic game free of charge) offers optionally Vulkan support, which is much more powerful than OpenGL. But sadly it is not the default yet, even not available as an option in the the game launcher. To enable Vulkan, do the following:

  1. Navigate to the installation directory and then the content subdirectory and create an empty file named pkw_vulkan.rq2
  2. Run the War Thunder launcher and let it update
  3. Close the launcher and open the config.blk file in the main installation directory with a text editor
  4. Change the lines renderer2:t=”auto” and driver:t=”auto” to renderer2:t=”vulkan” and driver:t=”vulkan”
  5. Launch the game from the binary named “aces” in the linux64 directory as using the launcher will overwrite config.blk with default settings. Alternatively you can set the config file in e.g. Dolphin to “View Only” for the owner of the file.

Warhammer 40000: Gladius – Relics of War

Warhammer 40000: Gladius – Relics of War is Vulkan only on Linux and Proton.

X-Plane 11

x-Plane 11 added with the public beta 11.50 Vulkan support for Linux and Wine. You can select Vulkan in the graphics options of the game. Some GPU drivers may need a work around if the game crashes during start, just add the following launch parameters:

export DISABLE_VK_LAYER_VALVE_steam_fossilize_1=1
export DISABLE_VK_LAYER_VALVE_steam_overlay_1=1

Vulkan Only Proton Games

Proton (Steam Play or Wine) can run several native Vulkan games on Linux. This is only required because some game companies like Bethesda decided not to provide a Linux build even if it would be fairly simple to do as Vulkan is already cross platform.

Doom Eternal

Doom Eternal is by default Vulkan only and with the latest Mesa drivers it is starting to work in some Proton systems.

Rage 2

Rage 2 supports by default Vulkan only.

The Surge 2

The Surge 2 is a Vulkan only game and works well in Proton.

Wolfenstein II: The new Colossous + Wolfenstein: Youngblood + Wolfenstein: Cyberpilot

They all run by default on Vulkan only and work great in Proton.

Vulkan Proton Games

Ashes of Singularity

Ashes of Singularity offers optionally native Vulkan support (available in the video settings in the game menu). Bug: Actually it works on Proton only in Direct3D 11 mode with DXVK, the game complains about outdated AMD drivers which is definitly not true as it was tested with Mesa-git.

Blood: Fresh Supply

Blood: Fresh Supply offers optionally native Vulkan support (available in the video settings in the game menu) and it runs fine in Proton.

Doom 2016

Doom 2016 offers optionally native Vulkan, to enable it you must set the launch paramter in Steam “+r_renderAPI 1”. Then the game works great on Vulkan, it is strange that Vulkan is not the default anyway.

No Man’s Sky

No Man’s Sky offers optionally native Vulkan suppport and it works in Proton.

Orville – Interactive Fan Experience

The Orville – Interactive Fan Experience (free of charge game) provides experimental Vulkan support on Proton.

Path of Exile

Path of Exile (basic game free of charge) added Vulkan support in May 2019 and it works in Proton.

Strange Brigade

Strange Brigade supports optionally Vulkan. Rename the StrangeBrigade_Vulkan.exe to StrangeBrigade.exe then the game works on Proton. Sadly Vulkan is not enabled by default.