Safe Haskell | None |
---|---|
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
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
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
The members of the PhysicalDeviceComputeShaderDerivativesFeaturesNV
structure describe the following features:
Description
See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-quad chapter for more information.
If the PhysicalDeviceComputeShaderDerivativesFeaturesNV
structure is
included in the pNext
chain of
PhysicalDeviceFeatures2
,
it is filled with values indicating whether each feature is supported.
PhysicalDeviceComputeShaderDerivativesFeaturesNV
can also be
included in the pNext
chain of DeviceCreateInfo
to enable 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 #