http://triptohell.info/moodles/junk/onedraw.zip my crappy attempt at loading quake content with both vulkan and gl.
feel free to compare them (if you've actually got some vulkan drivers installed...).
either renderer humiliates regular quake engines. much of this is because it lacks particles, sound, and hud. for instance, bigass1.dem just averaged 5692fps on my machine - but note that this is a terrible test case as its normally the particle system that crushes engines with that demo.
it supports bsp2, and can connect to nq servers. it has some support for 666, but not much.
it has no 2d display. the framerate is calculated each second and displayed in the window title.
it understands -basedir and -game to select gamedirs.
+map loads a map in a mapviewer mode type thing, you can press 0/9 to add/remove ents to stress its mdl rendering. its fairly happy with large entity counts.
+connect foo:26000 to connect to nq servers
+connect demo:demo2.dem to play eg demo2. the average framerate for the entire demo will be displayed at the end of the demo via stdout. note that playback is real time, without a timedemo feature. timedemo is kinda silly when demos would be over in 0.2 secs.
f10 will release the mouse
f1-f5 changes how it calculates which world surfaces are visible (all 5 methods are only supported in the bindless version, the other two only support 2 methods).
the name comes from how the gl-bindless build renders the entire world in a single glDrawElements call. note that this only works on nvidia gpus, on amd gpus the bindless build only supports the multidrawindirect methods.
mdl rendering uses multidrawindirect to draw up to 512 entities in a single multidraw call, each with a different model, frame, etc.
the vulkan renderer is untested on amd, and depends on win32 code.
I tried to get vsync working, but nvidia's drivers seem to ignore it.
I probably should have added some barriers or something, so there might be some issues from that, but oh well.
my interpolation code is terrible.
the included exes(including makefile) were built with cygwin's version of mingw (for native win32). you'll need to fix stuff up if you want to use a different compiler.
I've a version of fte with a vulkan renderer too now, but fte has a lot more twiddles that make things slow-going (like rtlights, post processing, user-specified shaders, etc).
fun times... *cough*