vulkan-3.15: 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

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

VK_NV_compute_shader_derivatives, 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 #