In terms of tangible additions to Vulkan, this includes subgroup operations (“enable highly-efficient sharing and manipulation of data between multiple tasks running in parallel on a GPU”), protected content support (“enables applications to perform rendering and display operations using resources that they cannot access or copy - for secure playback and display of protected multimedia content”), and existing extensions being integrated into the core. These extensions include multi-GPU support, advanced compute, multiview, cross-process/cross-API sharing, HLSL support, and YCbCr support. Multi-GPU support especially sticks out to us, but check the slides above for more detailed explanations of each feature. The SPIR-V shader language 1.3 update is intended to increase flexibility.
The other part of this update is strengthening the Vulkan ecosystem with improved developer tools and a public feedback forum. As Anandtech points out in their detailed breakdown of the update, DX12 is controlled and developed completely by Microsoft, which has significant internal development resources. Vulkan is developed by a consortium, and therefore relies on cooperation between developers. One step the Khronos Group has taken to smooth things out is simply setting up a Github page where developers can raise issues and suggest features. Another step is new developer tools packaged with the LunarG SDK, including VLF, Device Simulation Layer, and Assistant Layer.
Hopefully we see more games making proper use of both Vulkan and DirectX 12, as the onus continues to be on developers.
- Patrick Lathan