Vulkan Getting Another Extension To Help With DXVK/Direct3D Performance
Last month Vulkan picked up an unofficial Vulkan transform feedback extension solely to help out efforts like DXVK that map Direct3D or other graphics APIs on top of Vulkan. Separately, another Vulkan extension is in the works to also help out DXVK and D3D-over-Vulkan-like use-cases and can assist in better performance.
This new extension is VK_EXT_derivative_group_quad and allows for a Vulkan driver to advertise its derivative semantics in a manner that's similar to Direct3D. There are differences between OpenGL/Vulkan and Direct3D discard operations with the Khronos APIs assuming derivatives are undefined after discard operations while Direct3D assumes them to be well-defined.
Currently DXVK doesn't discard shaders directly and that can lead to poor performance with more work being carried out than necessary while this extension when drivers advertise derivative groups are sub-group quads could lead to more efficient behavior. The Intel driver has an initial implementation of this new extension that has yet to be published in a Vulkan spec update. Once the extension is firmed up, an updated DXVK will be necessary to utilize this efficiency optimization.
This new extension is VK_EXT_derivative_group_quad and allows for a Vulkan driver to advertise its derivative semantics in a manner that's similar to Direct3D. There are differences between OpenGL/Vulkan and Direct3D discard operations with the Khronos APIs assuming derivatives are undefined after discard operations while Direct3D assumes them to be well-defined.
Currently DXVK doesn't discard shaders directly and that can lead to poor performance with more work being carried out than necessary while this extension when drivers advertise derivative groups are sub-group quads could lead to more efficient behavior. The Intel driver has an initial implementation of this new extension that has yet to be published in a Vulkan spec update. Once the extension is firmed up, an updated DXVK will be necessary to utilize this efficiency optimization.
30 Comments