Class VkQueueFamilyProperties
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.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.NativeResourceStructure providing information about a queue family.Description
The value returned in
minImageTransferGranularityhas a unit of compressed texel blocks for images having a block-compressed format, and a unit of texels otherwise.Possible values of
minImageTransferGranularityare:(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, andzmembers of aVkOffset3Dparameter must always be zero. - The
width,height, anddepthmembers of aVkExtent3Dparameter must always match the width, height, and depth of the image subresource corresponding to the parameter, respectively.
- The
(Ax, Ay, Az)whereAx,Ay, andAzare all integer powers of two. In this case the following restrictions apply to all image transfer operations:x,y, andzof aVkOffset3Dparameter must be integer multiples ofAx,Ay, andAz, respectively.widthof aVkExtent3Dparameter must be an integer multiple ofAx, or elsex + widthmust equal the width of the image subresource corresponding to the parameter.heightof aVkExtent3Dparameter must be an integer multiple ofAy, or elsey + heightmust equal the height of the image subresource corresponding to the parameter.depthof aVkExtent3Dparameter must be an integer multiple ofAz, or elsez + depthmust 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)inminImageTransferGranularity, 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, thusminImageTransferGranularityfor 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,GetPhysicalDeviceQueueFamilyPropertiesMember documentation
queueFlags– a bitmask ofVkQueueFlagBitsindicating 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 viavkCmdWriteTimestamp. 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;VkExtent3DminImageTransferGranularity; }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classVkQueueFamilyProperties.BufferAn array ofVkQueueFamilyPropertiesstructs.
-
Field Summary
Fields Modifier and Type Field Description static intALIGNOFThe struct alignment in bytes.static intMINIMAGETRANSFERGRANULARITY
QUEUECOUNT
QUEUEFLAGSThe struct member offsets.static intSIZEOFThe struct size in bytes.static intTIMESTAMPVALIDBITSThe struct member offsets.
-
Constructor Summary
Constructors Constructor Description VkQueueFamilyProperties(java.nio.ByteBuffer container)Creates aVkQueueFamilyPropertiesinstance at the current position of the specifiedByteBuffercontainer.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static VkQueueFamilyPropertiescalloc()Returns a newVkQueueFamilyPropertiesinstance allocated withmemCalloc.static VkQueueFamilyProperties.Buffercalloc(int capacity)Returns a newVkQueueFamilyProperties.Bufferinstance allocated withmemCalloc.static VkQueueFamilyPropertiescallocStack()Returns a newVkQueueFamilyPropertiesinstance allocated on the thread-localMemoryStackand initializes all its bits to zero.static VkQueueFamilyProperties.BuffercallocStack(int capacity)Returns a newVkQueueFamilyProperties.Bufferinstance allocated on the thread-localMemoryStackand initializes all its bits to zero.static VkQueueFamilyProperties.BuffercallocStack(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkQueueFamilyProperties.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkQueueFamilyPropertiescallocStack(org.lwjgl.system.MemoryStack stack)Returns a newVkQueueFamilyPropertiesinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkQueueFamilyPropertiescreate()Returns a newVkQueueFamilyPropertiesinstance allocated withBufferUtils.static VkQueueFamilyProperties.Buffercreate(int capacity)Returns a newVkQueueFamilyProperties.Bufferinstance allocated withBufferUtils.static VkQueueFamilyPropertiescreate(long address)Returns a newVkQueueFamilyPropertiesinstance for the specified memory address.static VkQueueFamilyProperties.Buffercreate(long address, int capacity)Create aVkQueueFamilyProperties.Bufferinstance at the specified memory.static VkQueueFamilyPropertiescreateSafe(long address)static VkQueueFamilyProperties.BuffercreateSafe(long address, int capacity)static VkQueueFamilyPropertiesmalloc()Returns a newVkQueueFamilyPropertiesinstance allocated withmemAlloc.static VkQueueFamilyProperties.Buffermalloc(int capacity)Returns a newVkQueueFamilyProperties.Bufferinstance allocated withmemAlloc.static VkQueueFamilyPropertiesmallocStack()Returns a newVkQueueFamilyPropertiesinstance allocated on the thread-localMemoryStack.static VkQueueFamilyProperties.BuffermallocStack(int capacity)Returns a newVkQueueFamilyProperties.Bufferinstance allocated on the thread-localMemoryStack.static VkQueueFamilyProperties.BuffermallocStack(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkQueueFamilyProperties.Bufferinstance allocated on the specifiedMemoryStack.static VkQueueFamilyPropertiesmallocStack(org.lwjgl.system.MemoryStack stack)Returns a newVkQueueFamilyPropertiesinstance allocated on the specifiedMemoryStack.VkExtent3DminImageTransferGranularity()Returns aVkExtent3Dview of theminImageTransferGranularityfield.static VkExtent3DnminImageTransferGranularity(long struct)Unsafe version ofminImageTransferGranularity().static intnqueueCount(long struct)Unsafe version ofqueueCount().static intnqueueFlags(long struct)Unsafe version ofqueueFlags().static intntimestampValidBits(long struct)Unsafe version oftimestampValidBits().intqueueCount()Returns the value of thequeueCountfield.intqueueFlags()Returns the value of thequeueFlagsfield.intsizeof()inttimestampValidBits()Returns the value of thetimestampValidBitsfield.
-
-
-
Constructor Detail
-
VkQueueFamilyProperties
public VkQueueFamilyProperties(java.nio.ByteBuffer container)
Creates aVkQueueFamilyPropertiesinstance at the current position of the specifiedByteBuffercontainer. 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:
sizeofin classorg.lwjgl.system.Struct
-
queueFlags
public int queueFlags()
Returns the value of thequeueFlagsfield.
-
queueCount
public int queueCount()
Returns the value of thequeueCountfield.
-
timestampValidBits
public int timestampValidBits()
Returns the value of thetimestampValidBitsfield.
-
minImageTransferGranularity
public VkExtent3D minImageTransferGranularity()
Returns aVkExtent3Dview of theminImageTransferGranularityfield.
-
malloc
public static VkQueueFamilyProperties malloc()
Returns a newVkQueueFamilyPropertiesinstance allocated withmemAlloc. The instance must be explicitly freed.
-
calloc
public static VkQueueFamilyProperties calloc()
Returns a newVkQueueFamilyPropertiesinstance allocated withmemCalloc. The instance must be explicitly freed.
-
create
public static VkQueueFamilyProperties create()
Returns a newVkQueueFamilyPropertiesinstance allocated withBufferUtils.
-
create
public static VkQueueFamilyProperties create(long address)
Returns a newVkQueueFamilyPropertiesinstance for the specified memory address.
-
createSafe
@Nullable public static VkQueueFamilyProperties createSafe(long address)
-
malloc
public static VkQueueFamilyProperties.Buffer malloc(int capacity)
Returns a newVkQueueFamilyProperties.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
public static VkQueueFamilyProperties.Buffer calloc(int capacity)
Returns a newVkQueueFamilyProperties.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
public static VkQueueFamilyProperties.Buffer create(int capacity)
Returns a newVkQueueFamilyProperties.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
public static VkQueueFamilyProperties.Buffer create(long address, int capacity)
Create aVkQueueFamilyProperties.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
@Nullable public static VkQueueFamilyProperties.Buffer createSafe(long address, int capacity)
-
mallocStack
public static VkQueueFamilyProperties mallocStack()
Returns a newVkQueueFamilyPropertiesinstance allocated on the thread-localMemoryStack.
-
callocStack
public static VkQueueFamilyProperties callocStack()
Returns a newVkQueueFamilyPropertiesinstance allocated on the thread-localMemoryStackand initializes all its bits to zero.
-
mallocStack
public static VkQueueFamilyProperties mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkQueueFamilyPropertiesinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
callocStack
public static VkQueueFamilyProperties callocStack(org.lwjgl.system.MemoryStack stack)
Returns a newVkQueueFamilyPropertiesinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
mallocStack
public static VkQueueFamilyProperties.Buffer mallocStack(int capacity)
Returns a newVkQueueFamilyProperties.Bufferinstance allocated on the thread-localMemoryStack.- Parameters:
capacity- the buffer capacity
-
callocStack
public static VkQueueFamilyProperties.Buffer callocStack(int capacity)
Returns a newVkQueueFamilyProperties.Bufferinstance allocated on the thread-localMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacity
-
mallocStack
public static VkQueueFamilyProperties.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkQueueFamilyProperties.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
callocStack
public static VkQueueFamilyProperties.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkQueueFamilyProperties.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
nqueueFlags
public static int nqueueFlags(long struct)
Unsafe version ofqueueFlags().
-
nqueueCount
public static int nqueueCount(long struct)
Unsafe version ofqueueCount().
-
ntimestampValidBits
public static int ntimestampValidBits(long struct)
Unsafe version oftimestampValidBits().
-
nminImageTransferGranularity
public static VkExtent3D nminImageTransferGranularity(long struct)
Unsafe version ofminImageTransferGranularity().
-
-