The day has come – a prospective customer has asked us about integrating SilverLining and Triton with VulkanSceneGraph! It’s time for us to get serious about our path to Vulkan support.
In the short term, we’d like to remind people that it’s possible to use extensions to Vulkan that allow interoperability between Vulkan and OpenGL. This is how X-Plane 11.5 integrated our SkyMaxx Pro plugin for example; they exposed a real OpenGL context for us to draw into, and managed the synchronization between it and their Vulkan environment. This approach offers an incremental migration approach for systems that are currently built in OpenGL. However, there is no built-in support for doing this in VulkanSceneGraph – and driver support for Vulkan/OpenGL interop is inconsistent at best.
We did however have the forethought to refactor both SilverLining and Triton awhile ago to make them easier to integrate with Vulkan when the time came. We followed the recommendations in NVidia’s “OpenGL Like Vulkan” document to make sure our underlying architecture would be compatible with the Vulkan way of doing things.
So, at this point I can announce that an effort to implement a native Vulkan renderer for SilverLining has kicked off, with the end goal of producing a sample application for VulkanSceneGraph that takes its vkInstance and vkDevice, and feeds back our own command buffers for drawing the sky and clouds. It’s too soon to say how long this might take, or if it’s even feasible – but we’re pretty sure it’s at least possible. Our implementation won’t be tied to VulkanSceneGraph; if you want to integrate with some other engine, you’ll be able to. But I’m guessing VSG is what most of our customers will be interested in.
We’ll continue to support our OpenGL and DirectX renderers of course, but we know customers who are building new systems will be looking toward Vulkan for the best performance. It’s the way of the future, after all.
Stay tuned for further updates!