Class VkQueueFamilyProperties

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

public class VkQueueFamilyProperties extends org.lwjgl.system.Struct<VkQueueFamilyProperties> 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) specifies 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

Layout


 struct VkQueueFamilyProperties {
     VkQueueFlags queueFlags();
     uint32_t queueCount();
     uint32_t timestampValidBits();
     VkExtent3D minImageTransferGranularity();
 }
  • Field Details

    • SIZEOF

      public static final int SIZEOF
      The struct size in bytes.
    • ALIGNOF

      public static final int ALIGNOF
      The struct alignment in bytes.
    • QUEUEFLAGS

      public static final int QUEUEFLAGS
      The struct member offsets.
    • QUEUECOUNT

      public static final int QUEUECOUNT
      The struct member offsets.
    • TIMESTAMPVALIDBITS

      public static final int TIMESTAMPVALIDBITS
      The struct member offsets.
    • MINIMAGETRANSFERGRANULARITY

      public static final int MINIMAGETRANSFERGRANULARITY
      The struct member offsets.
  • Constructor Details

    • VkQueueFamilyProperties

      public VkQueueFamilyProperties(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 Details