Class VkPhysicalDeviceSubgroupProperties

  • All Implemented Interfaces:

    public class VkPhysicalDeviceSubgroupProperties
    extends Struct
    Structure describing subgroup support for an implementation.
    Valid Usage (Implicit)

    If the VkPhysicalDeviceSubgroupProperties structure is included in the pNext chain of VkPhysicalDeviceProperties2, it is filled with the implementation-dependent limits.

    Member documentation

    • sType – the type of this structure.
    • pNextNULL or a pointer to an extension-specific structure.
    • subgroupSize – the number of invocations in each subgroup. This will match any SubgroupSize decorated variable used in any shader module created on this device. subgroupSize is at least 1 if any of the physical device’s queues support QUEUE_GRAPHICS_BIT or QUEUE_COMPUTE_BIT.
    • supportedStages – a bitfield of VkShaderStageFlagBits describing the shader stages that subgroup operations are supported in. supportedStages will have the SHADER_STAGE_COMPUTE_BIT bit set if any of the physical device’s queues support QUEUE_COMPUTE_BIT.
    • supportedOperations – a bitmask of VkSubgroupFeatureFlagBits specifying the sets of subgroup operations supported on this device. supportedOperations will have the SUBGROUP_FEATURE_BASIC_BIT bit set if any of the physical device’s queues support QUEUE_GRAPHICS_BIT or QUEUE_COMPUTE_BIT.
    • quadOperationsInAllStages – a boolean that specifies whether quad subgroup operations are available in all stages, or are restricted to fragment and compute stages.


     struct VkPhysicalDeviceSubgroupProperties {
         VkStructureType sType;
         void * pNext;
         uint32_t subgroupSize;
         VkShaderStageFlags supportedStages;
         VkSubgroupFeatureFlags supportedOperations;
         VkBool32 quadOperationsInAllStages;
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.

        The struct member offsets.
    • Constructor Detail

      • VkPhysicalDeviceSubgroupProperties

        public VkPhysicalDeviceSubgroupProperties​(java.nio.ByteBuffer container)
        Creates a VkPhysicalDeviceSubgroupProperties instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

        The created instance holds a strong reference to the container object.

    • Method Detail

      • sizeof

        public int sizeof()
        Description copied from class: Struct
        Returns sizeof(struct).
        Specified by:
        sizeof in class Struct
      • sType

        public int sType()
        Returns the value of the sType field.
      • pNext

        public long pNext()
        Returns the value of the pNext field.
      • subgroupSize

        public int subgroupSize()
        Returns the value of the subgroupSize field.
      • supportedStages

        public int supportedStages()
        Returns the value of the supportedStages field.
      • supportedOperations

        public int supportedOperations()
        Returns the value of the supportedOperations field.
      • quadOperationsInAllStages

        public boolean quadOperationsInAllStages()
        Returns the value of the quadOperationsInAllStages field.
      • nsType

        public static int nsType​(long struct)
        Unsafe version of sType().
      • npNext

        public static long npNext​(long struct)
        Unsafe version of pNext().
      • nsubgroupSize

        public static int nsubgroupSize​(long struct)
        Unsafe version of subgroupSize().
      • nsupportedStages

        public static int nsupportedStages​(long struct)
        Unsafe version of supportedStages().
      • nsupportedOperations

        public static int nsupportedOperations​(long struct)
        Unsafe version of supportedOperations().
      • nquadOperationsInAllStages

        public static int nquadOperationsInAllStages​(long struct)
        Unsafe version of quadOperationsInAllStages().
      • nsType

        public static void nsType​(long struct,
                                  int value)
        Unsafe version of sType.
      • npNext

        public static void npNext​(long struct,
                                  long value)
        Unsafe version of pNext.