Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_NV_compute_shader_derivatives - device extension
VK_NV_compute_shader_derivatives
- Name String
VK_NV_compute_shader_derivatives
- Extension Type
- Device extension
- Registered Extension Number
- 202
- Revision
- 1
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- VK_KHR_get_physical_device_properties2
- Contact
Other Extension Metadata
- Last Modified Date
- 2018-07-19
- IP Status
- No known IP claims.
- Interactions and External Dependencies
- This extension requires SPV_NV_compute_shader_derivatives
- This extension provides API support for GL_NV_compute_shader_derivatives
- Contributors
- Pat Brown, NVIDIA
Description
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 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 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 Structures
Extending
PhysicalDeviceFeatures2
,DeviceCreateInfo
:
New Enum Constants
New SPIR-V Capability
Issues
- 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
See Also
PhysicalDeviceComputeShaderDerivativesFeaturesNV
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- data PhysicalDeviceComputeShaderDerivativesFeaturesNV = PhysicalDeviceComputeShaderDerivativesFeaturesNV {}
- type NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION = 1
- pattern NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION :: forall a. Integral a => a
- type NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME = "VK_NV_compute_shader_derivatives"
- pattern NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
data PhysicalDeviceComputeShaderDerivativesFeaturesNV Source #
VkPhysicalDeviceComputeShaderDerivativesFeaturesNV - Structure describing compute shader derivative features that can be supported by an implementation
Members
This structure describes the following features:
Description
See Quad shader scope for more information.
If the VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures
.
structure is included in the pNext
chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2
,
it is filled in to indicate whether each corresponding feature is
supported. VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures
.
can also be used in the pNext
chain of
DeviceCreateInfo
to selectively enable these
features.
Valid Usage (Implicit)
See Also
Instances
pattern NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION :: forall a. Integral a => a Source #
type NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME = "VK_NV_compute_shader_derivatives" Source #
pattern NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #