Class VkPhysicalDeviceSubgroupProperties

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkPhysicalDeviceSubgroupProperties>
org.lwjgl.vulkan.VkPhysicalDeviceSubgroupProperties
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

public class VkPhysicalDeviceSubgroupProperties extends org.lwjgl.system.Struct<VkPhysicalDeviceSubgroupProperties> implements org.lwjgl.system.NativeResource
Structure describing subgroup support for an implementation.
Description

If the VkPhysicalDeviceSubgroupProperties structure is included in the pNext chain of the VkPhysicalDeviceProperties2 structure passed to GetPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

If supportedOperations includes SUBGROUP_FEATURE_QUAD_BIT, or shaderSubgroupUniformControlFlow is enabled, subgroupSize must be greater than or equal to 4.

If the shaderQuadControl feature is supported, supportedOperations must include SUBGROUP_FEATURE_QUAD_BIT.

If VK_KHR_shader_subgroup_rotate is supported, and the implementation advertises support with a VkExtensionProperties::specVersion greater than or equal to 2, and shaderSubgroupRotate is supported, SUBGROUP_FEATURE_ROTATE_BIT_KHR must be returned in supportedOperations. If VK_KHR_shader_subgroup_rotate is supported, and the implementation advertises support with a VkExtensionProperties::specVersion greater than or equal to 2, and shaderSubgroupRotateClustered is supported, SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR must be returned in supportedOperations.

Note

SUBGROUP_FEATURE_ROTATE_BIT_KHR and SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR were added in version 2 of the VK_KHR_shader_subgroup_rotate extension, after the initial release, so there are implementations that do not advertise these bits. Applications should use the shaderSubgroupRotate and shaderSubgroupRotateClustered features to determine and enable support. These bits are advertised here for consistency and for future dependencies.

Valid Usage (Implicit)

Layout


 struct VkPhysicalDeviceSubgroupProperties {
     VkStructureType sType();
     void * pNext();
     uint32_t subgroupSize();
     VkShaderStageFlags supportedStages();
     VkSubgroupFeatureFlags supportedOperations();
     VkBool32 quadOperationsInAllStages();
 }