mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-25 12:35:11 +00:00
* 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>>`
69 lines
1.8 KiB
Plaintext
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
|