vulkan-3.9: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_NV_compute_shader_derivatives

Description

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
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

New Enum Constants

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

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

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

Bool32, StructureType

Constructors

PhysicalDeviceComputeShaderDerivativesFeaturesNV 

Fields

  • computeDerivativeGroupQuads :: Bool

    computeDerivativeGroupQuads indicates that the implementation supports the ComputeDerivativeGroupQuadsNV SPIR-V capability.

  • computeDerivativeGroupLinear :: Bool

    computeDerivativeGroupLinear indicates that the implementation supports the ComputeDerivativeGroupLinearNV SPIR-V capability.

Instances

Instances details
Eq PhysicalDeviceComputeShaderDerivativesFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_compute_shader_derivatives

Show PhysicalDeviceComputeShaderDerivativesFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_compute_shader_derivatives

Storable PhysicalDeviceComputeShaderDerivativesFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_compute_shader_derivatives

FromCStruct PhysicalDeviceComputeShaderDerivativesFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_compute_shader_derivatives

ToCStruct PhysicalDeviceComputeShaderDerivativesFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_compute_shader_derivatives

Zero PhysicalDeviceComputeShaderDerivativesFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_compute_shader_derivatives

type NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME = "VK_NV_compute_shader_derivatives" Source #