Vulkan-Docs/appendices/VK_NV_compute_shader_derivatives.txt
Jon Leech 22a5a1459f Change log for October 6, 2019 Vulkan 1.1.124 spec update:
* Update release number to 124.

Github Issues:

  * Fix Makefile SPECREMARK macro to work when not building in a git tree
    (public issue 992).
  * Ignore pname:aspectMask for unused attachments in
    slink:VkSubpassDescription2KHR valid usage statements (public pull
    request 1028).
  * Minor markup / spelling fixes (public pull requests 1035, 1045).

Internal Issues:

  * Fix markup in Valid Usage statement for slink:VkCreateFramebuffer
    (internal issue 1823).
  * Add a new <<synchronization-signal-operation-order, _signal operation
    order_>> section to the synchronization chapter which describes in
    detail the ordering guarantees provided by the API between fence and
    semaphore signal operations (internal merge request 3368).
  * Move generated `appendix/meta/` files into the Makefile GENERATED
    directory (internal merge request 3381).

New Extensions

  * `<<VK_KHR_shader_clock>>`
  * `<<VK_KHR_timeline_semaphore>>`
2019-10-06 12:42:12 -07:00

69 lines
1.8 KiB
Plaintext

include::{generated}/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
{spirv}/NV/SPV_NV_compute_shader_derivatives.html[`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
* <<spirvenv-capabilities-table-computederivatives-quads,ComputeDerivativeGroupQuadsNV>>
* <<spirvenv-capabilities-table-computederivatives-linear,ComputeDerivativeGroupLinearNV>>
=== 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