Class VkQueueFamilyProperties

  • All Implemented Interfaces:
    java.lang.AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

    public class VkQueueFamilyProperties
    extends org.lwjgl.system.Struct
    implements org.lwjgl.system.NativeResource
    Structure providing information about a queue family.
    Description

    The value returned in minImageTransferGranularity has a unit of compressed texel blocks for images having a block-compressed format, and a unit of texels otherwise.

    Possible values of minImageTransferGranularity are:

    • (0,0,0) which indicates that only whole mip levels must be transferred using the image transfer operations on the corresponding queues. In this case, the following restrictions apply to all offset and extent parameters of image transfer operations:
      • The x, y, and z members of a VkOffset3D parameter must always be zero.
      • The width, height, and depth members of a VkExtent3D parameter must always match the width, height, and depth of the image subresource corresponding to the parameter, respectively.
    • (Ax, Ay, Az) where Ax, Ay, and Az are all integer powers of two. In this case the following restrictions apply to all image transfer operations:
      • x, y, and z of a VkOffset3D parameter must be integer multiples of Ax, Ay, and Az, respectively.
      • width of a VkExtent3D parameter must be an integer multiple of Ax, or else x + width must equal the width of the image subresource corresponding to the parameter.
      • height of a VkExtent3D parameter must be an integer multiple of Ay, or else y + height must equal the height of the image subresource corresponding to the parameter.
      • depth of a VkExtent3D parameter must be an integer multiple of Az, or else z + depth must equal the depth of the image subresource corresponding to the parameter.
      • If the format of the image corresponding to the parameters is one of the block-compressed formats then for the purposes of the above calculations the granularity must be scaled up by the compressed texel block dimensions.

    Queues supporting graphics and/or compute operations must report (1,1,1) in minImageTransferGranularity, meaning that there are no additional restrictions on the granularity of image transfer operations for these queues. Other queues supporting image transfer operations are only required: to support whole mip level transfers, thus minImageTransferGranularity for queues belonging to such queue families may be (0,0,0).

    The Device Memory section describes memory properties queried from the physical device.

    For physical device feature queries see the Features chapter.

    See Also

    VkExtent3D, VkQueueFamilyProperties2, GetPhysicalDeviceQueueFamilyProperties

    Member documentation

    • queueFlags – a bitmask of VkQueueFlagBits indicating capabilities of the queues in this queue family.
    • queueCount – the unsigned integer count of queues in this queue family. Each queue family must support at least one queue.
    • timestampValidBits – the unsigned integer count of meaningful bits in the timestamps written via vkCmdWriteTimestamp. The valid range for the count is 36..64 bits, or a value of 0, indicating no support for timestamps. Bits outside the valid range are guaranteed to be zeros.
    • minImageTransferGranularity – the minimum granularity supported for image transfer operations on the queues in this queue family.

    Layout

    
     struct VkQueueFamilyProperties {
         VkQueueFlags queueFlags;
         uint32_t queueCount;
         uint32_t timestampValidBits;
         VkExtent3D minImageTransferGranularity;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • QUEUEFLAGS, QUEUECOUNT, TIMESTAMPVALIDBITS, MINIMAGETRANSFERGRANULARITY

        The struct member offsets.
    • Constructor Detail

      • VkQueueFamilyProperties

        public VkQueueFamilyProperties​(java.nio.ByteBuffer container)
        Creates a VkQueueFamilyProperties 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
      • queueFlags

        public int queueFlags()
        Returns the value of the queueFlags field.
      • queueCount

        public int queueCount()
        Returns the value of the queueCount field.
      • timestampValidBits

        public int timestampValidBits()
        Returns the value of the timestampValidBits field.
      • minImageTransferGranularity

        public VkExtent3D minImageTransferGranularity()
        Returns a VkExtent3D view of the minImageTransferGranularity field.
      • malloc

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

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

        public static VkQueueFamilyProperties create()
        Returns a new VkQueueFamilyProperties instance allocated with BufferUtils.
      • create

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

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

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

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

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

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

        public static VkQueueFamilyProperties.Buffer callocStack​(int capacity,
                                                                 org.lwjgl.system.MemoryStack stack)
        Returns a new VkQueueFamilyProperties.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.
        Parameters:
        stack - the stack from which to allocate
        capacity - the buffer capacity
      • nqueueFlags

        public static int nqueueFlags​(long struct)
        Unsafe version of queueFlags().
      • nqueueCount

        public static int nqueueCount​(long struct)
        Unsafe version of queueCount().
      • ntimestampValidBits

        public static int ntimestampValidBits​(long struct)
        Unsafe version of timestampValidBits().