include::meta/VK_NV_compute_shader_derivatives.txt[] *Last Modified Date*:: 2018-07-19 *IP Status*:: No known IP claims. *Contributors*:: - Pat Brown, NVIDIA This extension adds Vulkan support for the `SPV_NV_compute_shader_derivatives` SPIR-V extension. The SPIR-V extension provides two new execution modes, both of which allow compute shaders to use built-ins that evaluate compute derivatives explicitly or implicitly. Derivatives will be computed via differencing over a 2x2 group of shader invocations. The code:DerivativeGroupQuadsNV execution mode assembles shader invocations into 2x2 groups, where each group has x and y coordinates of the local invocation ID of the form (2m+{0,1}, 2n+{0,1}). The code:DerivativeGroupLinearNV execution mode assembles shader invocations into 2x2 groups, where each group has local invocation index values of the form 4m+{0,1,2,3}. === New Object Types None. === New Enum Constants * Extending elink:VkStructureType: ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV === New Enums None. === New Structures * slink:VkPhysicalDeviceComputeShaderDerivativesFeaturesNV === New Functions None. === New SPIR-V Capability * <> * <> === Issues (1) Should we specify that the groups of four shader invocations used for derivatives in a compute shader are the same groups of four invocations that form a "`quad`" in shader subgroups? *RESOLVED*: Yes. === Examples None. === Version History * Revision 1, 2018-07-19 (Pat Brown) - Initial draft