[Mesa-dev] [PATCH 0/3] vulkan, anv: Add a new VK_EXT_derivative_group_quad

Jason Ekstrand jason at jlekstrand.net
Tue Nov 6 21:48:15 UTC 2018


This three-patch series includes a draft of a new Vulkan extension along
with the trivial implementation in anv.  The extension allows a driver to
advertise that derivative groups are just quads.  In other words, that
it's safe to mix non-uniform control flow and derivatives as long as the
control-flow is quad-uniform.

Having this added assumption is particularly important for implementing D3D
derivatives in Vulkan as it allows you to implement a "jumping" derivative
while still fulfilling the D3D semantics.  See patch 1 for a more detailed
analysis.

Please note that the extension is not yet shipping in the Vulkan spec and
there may be some changes made to the extension text or the structures and
enums it defines between now and when it ships.  No one should ship code
that implements or depends on this extension until it is released through
Khronos in it's final form.  The first patch of this series applies against
the public master branch of the Vulkan spec and contains no NDA'd material.
Unfortunately, due to the way the Khronos NDA and process works, I will not
be able to provide updates between now and when the final version ships.

--Jason


Jason Ekstrand (3):
  vulkan: Add an extension to specify that derivative groups are quads
  vulkan: Import the XML and headers bits for VK_EXT_derivative_group_quad
  anv: Add support for VK_EXT_derivative_group_quad

 include/vulkan/vulkan_core.h       | 13 +++++++++++++
 src/intel/vulkan/anv_device.c      |  8 ++++++++
 src/intel/vulkan/anv_extensions.py |  1 +
 src/vulkan/registry/vk.xml         | 13 ++++++++++---
 4 files changed, 32 insertions(+), 3 deletions(-)

-- 
2.19.1



More information about the mesa-dev mailing list