Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal. You can also buy games using our partner links for GOG and Humble Store.
We do often include affiliate links to earn us some pennies. See more here.

I'm a little late on reporting this due to being ill, but Quake has been ported to Vulkan and it's open source of course.

Thanks to "sub" for sending it in 4 days ago, but I just haven't had time to cover it until now.

It was done by Axel Gneiting who actually works for id Software as an Engine Programmer, which is pretty cool:

My Vulkan Quake 1 Port running "In the Shadows" mod. Some stuff still missing. Code is here https://t.co/FDJtk2QNOz pic.twitter.com/SIcWroQOwr

— Axel Gneiting (@axelgneiting) July 21, 2016


He didn't actually do the work to get it on Linux, he stated in another tweet a friend did that for him.

You can find the source code on github here.

Article taken from GamingOnLinux.com.
0 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by . You can also follow my personal adventures on Bluesky.
See more from me
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
24 comments Subscribe
Page: 1/2»
  Go to:

Sslaxx 25 Jul 2016
People at id still use Linux post-Carmack, huh? Hmmm. Not that it means much, but it is interesting to note.
Liam Dawe 25 Jul 2016
People at id still use Linux post-Carmack, huh? Hmmm. Not that it means much, but it is interesting to note.
Well, no. As pointed out, he didn't do the Linux side of it.
tuubi 25 Jul 2016
View PC info
  • Supporter Plus
People at id still use Linux post-Carmack, huh? Hmmm. Not that it means much, but it is interesting to note.
The article states "a friend did that for him." Gneiting did the Vulkan part. The Linux friend could be this gentleman if the github changelog is anything to go by.


Last edited by tuubi on 25 Jul 2016 at 7:30 pm UTC
Cheogh 25 Jul 2016
Can someone explain how to get this running?
t3g 25 Jul 2016
I'd love for someone to get this up and running, packaged, and put up on something like http://www.playdeb.net
Kristian 25 Jul 2016
So anyone know which source files are supposed to have the Vulkan bits?
sub 25 Jul 2016
So anyone know which source files are supposed to have the Vulkan bits?
Vulkan API naming convention for functions is a "vk" prefix followed by a capital letter.

All source files containing at least one matching function can be listed with

grep -r "vk[A-Z]+*" * | sed -nre "s@(^.*):.*@\1@p" | uniq


Last edited by sub on 25 Jul 2016 at 9:39 pm UTC
sub 25 Jul 2016
I can only test it on my Haswell notebook, but it seems the warning
Vulkan Initialization
WARNING: Haswell Vulkan support is incomplete
should be taken seriously. :D
At least it quits with
QUAKE ERROR: Couldn't create Vulkan device
Kithop 25 Jul 2016
I managed to get it working on my system, with the nvidia-367 drivers (that break NVENC in OBS, sadly), but I can't, for the life of me, get Vsync to disable so I can benchmark it. :p

If you adjust any of the video settings in-game and try to save it, it segfaults, but you *can* get it to pick up the normal quakespasm command line options for e.g. setting your window size.

Oh, and forcing fullscreen also segfaults.

No combination of 'vid_vsync 0' in various config files including autoexec.cfg, or even as '+vid_vsync 0' on the command line gets it to stop capping itself.

It does run, though, if you specify -width and -height.

After you've checked it out from git, check out the Quake/Makefile and look at the different options. Assume for every 'USE_THIS_THING' that you want to set to '1', you need to look for the 'libthing' and 'libthing-dev' (or your distro's equivalents) and be sure they're installed as dependencies first. If you try to compile it then and it complains about a missing header file, that's probably the thing-dev you need. :)

If anyone cracks how to disable vsync properly for benchmarking though, let me know. :/
ProfessorKaos64 25 Jul 2016
Totally making a package out of this for SteamOS. drool
ProfessorKaos64 25 Jul 2016
I'd love for someone to get this up and running, packaged, and put up on something like http://www.playdeb.net

I am making a package tonight. I have to backport a few things, but i'll try to reply back here. I started some here, but I need to do some errands, then I'll finish it and test later.


Last edited by ProfessorKaos64 on 25 Jul 2016 at 11:29 pm UTC
ProfessorKaos64 25 Jul 2016
I wanted to try but the web site to download the vulkan sdk is broken and it’s impossible to get it for me.

You should need just vulkan-dev (or whatever your distro calls it). Debian has this, starting with Debian Stretch. I backported this to SteamOS, which is based heavily off Debian Jessie:

http://packages.libregeek.org/SteamOS-Tools/pool/main/v/vulkan/

I'll probably make Debian packaging for this tonight. Maybe time for a small test.


Last edited by ProfessorKaos64 on 25 Jul 2016 at 11:14 pm UTC
strycore 26 Jul 2016
@ProfessorKaos64 that would be awesome! I'm looking forward having a build script of some sort so I can publish binaries for Lutris :)
ProfessorKaos64 26 Jul 2016
@ProfessorKaos64 that would be awesome! I'm looking forward having a build script of some sort so I can publish binaries for Lutris :)

There are some issues, but I believe I fixed one. You can follow the below thead (has a link to my fork). May take a little more work.

https://github.com/Novum/vkQuake/issues/4

Edit: author of the repository took my linux-fixes PR. I have an initial test Debian package at the below link. I haven't tested it (late here, time to settle down for the night). I'll likely have time to give it a test tomorrow. I merged in debian packaging from quakespasm. Probably adjustments to be made yet as well. I link quakspasm to 'vkquake' so you can use that, aside from the desktop file.

Please be aware there are fixes to be made yet in upstream code. Axel has noted that this should occur sometime after SIGGRAPH is over.

http://packages.libregeek.org/steamos-tools/pool/games/v/vkquake/

Trouble?

See: https://github.com/ProfessorKaos64/LibreGeek-
Packaging/blob/brewmaster/vkquake/debian/README.Debian

Tomorrow I'll take a look at an Arch Linux package.


Last edited by ProfessorKaos64 on 26 Jul 2016 at 6:34 am UTC
strycore 26 Jul 2016
Can confirm it works! \o/
Had the following error message at first: "QUAKE ERROR: W_LoadWadFile: couldn't load gfx.wad"

Then I renamed PAK{0|1}.PAK to lowercase and it works great now, nice work ProfessorKaos64 :D
Tori 26 Jul 2016
If you adjust any of the video settings in-game and try to save it, it segfaults

Yeah, I have the same problem. I'll see if I can work around it later today.
t3g 26 Jul 2016
Silly question, but the libvulkan1-dev package on Ubuntu is the same one you used for Debian right?
Guest 26 Jul 2016
@ProfessorKaos64

Totally making a package out of this for SteamOS. drool

While were on the topic, it would be totally cool to get a few Arch packages made up for this so its not just Debian / Ubuntu that get all the SteamOS fun..

https://launchpad.net/~mdeslaur/+archive/ubuntu/steamos

im using SteamOS session on my Debian build and id really like the feature for Manjaro/Arch <3


Last edited by on 26 Jul 2016 at 2:43 pm UTC
Kithop 27 Jul 2016
I'm completely useless at coding, but I did open an issue (really an enhancement request) regarding Vsync:

Vsync Modes

No amount of trying to mess with the vid_vsync cvar will work, because it looks like it's being totally ignored anyway, and the Vulkan 'presentation mode' is hardcoded to one with Vsync. Changing that one line in one source file and recompiling, though? Then you can disable Vsync for some good old fashioned timedemo action. :p

Obviously, this is absolutely silly on any machine modern enough to have Vulkan support, especially if the vkQuake renderer isn't feature-complete compared to Quakespasm's stock OpenGL one, but it is faster.

OpenGL: ~720fps
Vulkan: ~780fps

(i7-4790K + GTX 980)

It's a little hard to get a good CPU usage measurement when all of demo1 finishes in like 9 seconds, however. :P
ProfessorKaos64 27 Jul 2016
@ProfessorKaos64

Totally making a package out of this for SteamOS. drool

While were on the topic, it would be totally cool to get a few Arch packages made up for this so its not just Debian / Ubuntu that get all the SteamOS fun..

https://launchpad.net/~mdeslaur/+archive/ubuntu/steamos

im using SteamOS session on my Debian build and id really like the feature for Manjaro/Arch <3

I started one at https://github.com/ProfessorKaos64/arch-aur-packages/, but it needs some work yet. When I feel satisfied, i'll see how I get that to the AUR.

I never have added something to the AUR, but I don't believe it's that difficult.


Last edited by ProfessorKaos64 on 27 Jul 2016 at 4:04 am UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.