Class VkDeviceGroupDeviceCreateInfo

  • All Implemented Interfaces:
    java.lang.AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer
    Direct Known Subclasses:
    VkDeviceGroupDeviceCreateInfoKHR

    public class VkDeviceGroupDeviceCreateInfo
    extends org.lwjgl.system.Struct
    implements org.lwjgl.system.NativeResource
    Create a logical device from multiple physical devices.
    Description

    The elements of the pPhysicalDevices array are an ordered list of the physical devices that the logical device represents. These must be a subset of a single device group, and need not be in the same order as they were enumerated. The order of the physical devices in the pPhysicalDevices array determines the device index of each physical device, with element i being assigned a device index of i. Certain commands and structures refer to one or more physical devices by using device indices or device masks formed using device indices.

    A logical device created without using VkDeviceGroupDeviceCreateInfo, or with physicalDeviceCount equal to zero, is equivalent to a physicalDeviceCount of one and pPhysicalDevices pointing to the physicalDevice parameter to CreateDevice. In particular, the device index of that physical device is zero.

    Valid Usage
    • Each element of pPhysicalDevices must be unique
    • All elements of pPhysicalDevices must be in the same device group as enumerated by EnumeratePhysicalDeviceGroups
    • If physicalDeviceCount is not 0, the physicalDevice parameter of CreateDevice must be an element of pPhysicalDevices.
    Valid Usage (Implicit)

    Member documentation

    • sType – the type of this structure.
    • pNextNULL or a pointer to an extension-specific structure.
    • physicalDeviceCount – the number of elements in the pPhysicalDevices array.
    • pPhysicalDevices – an array of physical device handles belonging to the same device group.

    Layout

    
     struct VkDeviceGroupDeviceCreateInfo {
         VkStructureType sType;
         void const * pNext;
         uint32_t physicalDeviceCount;
         VkPhysicalDevice const * pPhysicalDevices;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • STYPE, PNEXT, PHYSICALDEVICECOUNT, PPHYSICALDEVICES

        The struct member offsets.
    • Constructor Detail

      • VkDeviceGroupDeviceCreateInfo

        public VkDeviceGroupDeviceCreateInfo​(java.nio.ByteBuffer container)
        Creates a VkDeviceGroupDeviceCreateInfo 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()
        Specified by:
        sizeof in class org.lwjgl.system.Struct
      • sType

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

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

        public int physicalDeviceCount()
        Returns the value of the physicalDeviceCount field.
      • pPhysicalDevices

        @Nullable
        public org.lwjgl.PointerBuffer pPhysicalDevices()
        Returns a PointerBuffer view of the data pointed to by the pPhysicalDevices field.
      • pPhysicalDevices

        public VkDeviceGroupDeviceCreateInfo pPhysicalDevices​(@Nullable
                                                              org.lwjgl.PointerBuffer value)
        Sets the address of the specified PointerBuffer to the pPhysicalDevices field.
      • set

        public VkDeviceGroupDeviceCreateInfo set​(int sType,
                                                 long pNext,
                                                 @Nullable
                                                 org.lwjgl.PointerBuffer pPhysicalDevices)
        Initializes this struct with the specified values.
      • malloc

        public static VkDeviceGroupDeviceCreateInfo malloc()
        Returns a new VkDeviceGroupDeviceCreateInfo instance allocated with memAlloc. The instance must be explicitly freed.
      • calloc

        public static VkDeviceGroupDeviceCreateInfo calloc()
        Returns a new VkDeviceGroupDeviceCreateInfo instance allocated with memCalloc. The instance must be explicitly freed.
      • create

        public static VkDeviceGroupDeviceCreateInfo create​(long address)
        Returns a new VkDeviceGroupDeviceCreateInfo instance for the specified memory address.
      • mallocStack

        public static VkDeviceGroupDeviceCreateInfo mallocStack()
        Returns a new VkDeviceGroupDeviceCreateInfo instance allocated on the thread-local MemoryStack.
      • callocStack

        public static VkDeviceGroupDeviceCreateInfo callocStack()
        Returns a new VkDeviceGroupDeviceCreateInfo instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
      • mallocStack

        public static VkDeviceGroupDeviceCreateInfo mallocStack​(org.lwjgl.system.MemoryStack stack)
        Returns a new VkDeviceGroupDeviceCreateInfo instance allocated on the specified MemoryStack.
        Parameters:
        stack - the stack from which to allocate
      • callocStack

        public static VkDeviceGroupDeviceCreateInfo callocStack​(org.lwjgl.system.MemoryStack stack)
        Returns a new VkDeviceGroupDeviceCreateInfo instance allocated on the specified MemoryStack and initializes all its bits to zero.
        Parameters:
        stack - the stack from which to allocate
      • nsType

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

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

        public static int nphysicalDeviceCount​(long struct)
        Unsafe version of physicalDeviceCount().
      • npPhysicalDevices

        @Nullable
        public static org.lwjgl.PointerBuffer npPhysicalDevices​(long struct)
        Unsafe version of pPhysicalDevices.
      • 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.
      • nphysicalDeviceCount

        public static void nphysicalDeviceCount​(long struct,
                                                int value)
        Sets the specified value to the physicalDeviceCount field of the specified struct.
      • npPhysicalDevices

        public static void npPhysicalDevices​(long struct,
                                             @Nullable
                                             org.lwjgl.PointerBuffer value)
        Unsafe version of pPhysicalDevices.
      • validate

        public static void validate​(long struct)
        Validates pointer members that should not be NULL.
        Parameters:
        struct - the struct to validate
      • validate

        public static void validate​(long array,
                                    int count)
        Calls validate(long) for each struct contained in the specified struct array.
        Parameters:
        array - the struct array to validate
        count - the number of structs in array