VR on MacOS is another story though. While OpenVR does work on Mac (only just), it appears that OpenVR and Vulkan is not currently supported, as one of the OpenVR function calls required to initialise appears to not be implemented on the Mac build of OpenVR. Fortunately it seems Valve is working on it, or at the very least this is not only one of the few issues that they have assigned to someone, they did it very quickly.
Meanwhile, while VR does work on Windows and Linux, it does not work well. This is no reflection on OpenVR or Vulkan, rather a reflection on my taking the absolute quickest method to get it working. There is currently flickering on my test setup where the OpenVR Vulkan Example has none. I believe this is because of the synchronisation method I'm using,
vkQueueWaitIdle()
is possibly not the best method available, which comes as no surprise. I plan on smoothing out a lot of the wrinkles in its design before taking on that issue though. Having got this far, I've developed a quite good picture in my head of how all the pieces of Vulkan fit together, and plan to make use of this in writing sane texture and mesh handling code, possibly even getting FontStash working on Vulkan, which will all be very useful in the next major phase of this project, the voxels.The mesh in this image is the LPS Head - here seen with only the lambertian texture map (no bump map).