Skip to content

Releases: janhsimon/openxr-vulkan-example

OpenXR Vulkan Example v1.2.0

27 Aug 11:01
Compare
Choose a tag to compare

Changelog:

  • Updated OpenXR to v1.1.38. Note that API v1.0.38 is used for compatibility with some OpenXR runtimes.
  • Adopted the XR_KHR_vulkan_enable2 OpenXR extension and replaced the outdated XR_KHR_vulkan_enable extension with it.
  • Fixed how OpenXR frames that do not have the shouldRender flag set are handled. This fixes an issue where no rendering occurs when using the OpenXR-Vk-D3D12 interoperability layer.
  • Added missing OpenXR swapchain image usage flags. This stops some validation errors from showing up.
  • Fixed and optimized Vulkan render synchronization.
  • Fixed resolution of Vulkan swapchain when it gets recreated.
  • Added debug object names to a number of critical Vulkan resources when running in debug mode: draw and present queue(s), render pass, OpenXR swapchain images and command buffers. This makes it easier to tell application-owned and OpenXR runtime-owned resources apart and assists in debugging.
  • Improved error detection and handling.

Thanks to @katz1 for reporting the OpenXR and Vulkan issues.

OpenXR Vulkan Example v1.1.0

02 Jan 17:58
Compare
Choose a tag to compare

Changelog:

  • Added a basic fly mode to demonstrate input handling. Hit the select button to fly in the direction of the controller.
  • Added MSAA support to get rid of jagged edges. Up to 4x MSAA will be used if the GPU supports it.
  • Fixed some general issues with how OpenXR was used. This stops some validation errors from showing up on specific systems.
  • Fixed the size of the Vulkan descriptor pool.
  • Fixed a portability issue that came from using strncpy_s(). This function is not available everywhere. Now the fully portable memcpy() is used instead.

Thanks to @ChristophHaag for reporting the OpenXR and Vulkan issues.

OpenXR Vulkan Example v1.0.0

17 Dec 20:57
Compare
Choose a tag to compare

This is the first release of the OpenXR Vulkan Example! 🎉

It features a basic framework that exemplifies how OpenXR and Vulkan can be set up and used together for a typical XR application. It creates a scene from several OBJ model files, renders into the headset, displays a resizable mirror view on the desktop and even supports controller input. The code is written and structured to be easy to understand and follow. At the same time, several key techniques are employed that enable high performance, such as multiview rendering, a combined and staged vertex and index buffer, and a single uniform buffer.

The goal of the project and this release is to provide a great starting point for future XR developers that want to use OpenXR and Vulkan, but struggle to get started because of the large amount of initial obstacles these APIs put in the way. Fork the repository and get going with the fun parts of XR development immediately, or use the code as a reference for improving your existing projects. Either way, I hope this comes in useful, and have fun!