Class VkDeviceQueueInfo2
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
Description
The queue returned by vkGetDeviceQueue2 must have the same flags value from this structure as that used at device creation time in a VkDeviceQueueCreateInfo structure.
Note
Normally, if you create both protected-capable and non-protected-capable queues with the same family, they are treated as separate lists of queues and queueIndex is relative to the start of the list of queues specified by both queueFamilyIndex and flags. However, for historical reasons, some implementations may exhibit different behavior. These divergent implementations instead concatenate the lists of queues and treat queueIndex as relative to the start of the first list of queues with the given queueFamilyIndex. This only matters in cases where an application has created both protected-capable and non-protected-capable queues from the same queue family.
For such divergent implementations, the maximum value of queueIndex is equal to the sum of VkDeviceQueueCreateInfo::queueCount minus one, for all VkDeviceQueueCreateInfo structures that share a common queueFamilyIndex.
Such implementations will return NULL for either the protected or unprotected queues when calling vkGetDeviceQueue2 with queueIndex in the range zero to VkDeviceQueueCreateInfo::queueCount minus one. In cases where these implementations returned NULL, the corresponding queues are instead located in the extended range described in the preceding two paragraphs.
This behavior will not be observed on any driver that has passed Vulkan conformance test suite version 1.3.3.0, or any subsequent version. This information can be found by querying VkPhysicalDeviceDriverProperties::conformanceVersion.
Valid Usage
queueFamilyIndexmust be one of the queue family indices specified whendevicewas created, via theVkDeviceQueueCreateInfostructureflagsmust be equal toVkDeviceQueueCreateInfo::flagsfor aVkDeviceQueueCreateInfostructure for the queue family indicated byqueueFamilyIndexwhendevicewas createdqueueIndexmust be less thanVkDeviceQueueCreateInfo::queueCountfor the corresponding queue family and flags indicated byqueueFamilyIndexandflagswhendevicewas created
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_DEVICE_QUEUE_INFO_2pNextmust beNULLflagsmust be a valid combination ofVkDeviceQueueCreateFlagBitsvalues
See Also
Layout
struct VkDeviceQueueInfo2 {
VkStructureType sType();
void const * pNext();
VkDeviceQueueCreateFlags flags();
uint32_t queueFamilyIndex();
uint32_t queueIndex();
}-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.static final intThe struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionVkDeviceQueueInfo2(ByteBuffer container) Creates aVkDeviceQueueInfo2instance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionstatic VkDeviceQueueInfo2calloc()Returns a newVkDeviceQueueInfo2instance allocated withmemCalloc.static VkDeviceQueueInfo2.Buffercalloc(int capacity) Returns a newVkDeviceQueueInfo2.Bufferinstance allocated withmemCalloc.static VkDeviceQueueInfo2.Buffercalloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkDeviceQueueInfo2.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkDeviceQueueInfo2calloc(org.lwjgl.system.MemoryStack stack) Returns a newVkDeviceQueueInfo2instance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkDeviceQueueInfo2Deprecated.static VkDeviceQueueInfo2.BuffercallocStack(int capacity) Deprecated.static VkDeviceQueueInfo2.BuffercallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.static VkDeviceQueueInfo2callocStack(org.lwjgl.system.MemoryStack stack) Deprecated.static VkDeviceQueueInfo2create()Returns a newVkDeviceQueueInfo2instance allocated withBufferUtils.static VkDeviceQueueInfo2.Buffercreate(int capacity) Returns a newVkDeviceQueueInfo2.Bufferinstance allocated withBufferUtils.static VkDeviceQueueInfo2create(long address) Returns a newVkDeviceQueueInfo2instance for the specified memory address.static VkDeviceQueueInfo2.Buffercreate(long address, int capacity) Create aVkDeviceQueueInfo2.Bufferinstance at the specified memory.static @Nullable VkDeviceQueueInfo2createSafe(long address) static @Nullable VkDeviceQueueInfo2.BuffercreateSafe(long address, int capacity) intflags()aVkDeviceQueueCreateFlagsvalue indicating the flags used to create the device queue.flags(int value) Sets the specified value to theflags()field.static VkDeviceQueueInfo2malloc()Returns a newVkDeviceQueueInfo2instance allocated withmemAlloc.static VkDeviceQueueInfo2.Buffermalloc(int capacity) Returns a newVkDeviceQueueInfo2.Bufferinstance allocated withmemAlloc.static VkDeviceQueueInfo2.Buffermalloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkDeviceQueueInfo2.Bufferinstance allocated on the specifiedMemoryStack.static VkDeviceQueueInfo2malloc(org.lwjgl.system.MemoryStack stack) Returns a newVkDeviceQueueInfo2instance allocated on the specifiedMemoryStack.static VkDeviceQueueInfo2Deprecated.static VkDeviceQueueInfo2.BuffermallocStack(int capacity) Deprecated.static VkDeviceQueueInfo2.BuffermallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.static VkDeviceQueueInfo2mallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.static intnflags(long struct) Unsafe version offlags().static voidnflags(long struct, int value) Unsafe version offlags.static longnpNext(long struct) Unsafe version ofpNext().static voidnpNext(long struct, long value) Unsafe version ofpNext.static intnqueueFamilyIndex(long struct) Unsafe version ofqueueFamilyIndex().static voidnqueueFamilyIndex(long struct, int value) Unsafe version ofqueueFamilyIndex.static intnqueueIndex(long struct) Unsafe version ofqueueIndex().static voidnqueueIndex(long struct, int value) Unsafe version ofqueueIndex.static intnsType(long struct) Unsafe version ofsType().static voidnsType(long struct, int value) Unsafe version ofsType.longpNext()NULLor a pointer to a structure extending this structure.pNext(long value) Sets the specified value to thepNext()field.intthe index of the queue family to which the queue belongs.queueFamilyIndex(int value) Sets the specified value to thequeueFamilyIndex()field.intthe index of the queue to retrieve from within the set of queues that share both the queue family and flags specified.queueIndex(int value) Sets the specified value to thequeueIndex()field.set(int sType, long pNext, int flags, int queueFamilyIndex, int queueIndex) Initializes this struct with the specified values.set(VkDeviceQueueInfo2 src) Copies the specified struct data to this struct.intsizeof()intsType()aVkStructureTypevalue identifying this structure.sType(int value) Sets the specified value to thesType()field.Sets theSTRUCTURE_TYPE_DEVICE_QUEUE_INFO_2value to thesType()field.Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
STYPE
public static final int STYPEThe struct member offsets. -
PNEXT
public static final int PNEXTThe struct member offsets. -
FLAGS
public static final int FLAGSThe struct member offsets. -
QUEUEFAMILYINDEX
public static final int QUEUEFAMILYINDEXThe struct member offsets. -
QUEUEINDEX
public static final int QUEUEINDEXThe struct member offsets.
-
-
Constructor Details
-
VkDeviceQueueInfo2
Creates aVkDeviceQueueInfo2instance 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 Details
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<VkDeviceQueueInfo2>
-
sType
public int sType()aVkStructureTypevalue identifying this structure. -
pNext
public long pNext()NULLor a pointer to a structure extending this structure. ThepNextchain ofVkDeviceQueueInfo2can be used to provide additional device queue parameters tovkGetDeviceQueue2. -
flags
public int flags()aVkDeviceQueueCreateFlagsvalue indicating the flags used to create the device queue. -
queueFamilyIndex
public int queueFamilyIndex()the index of the queue family to which the queue belongs. -
queueIndex
public int queueIndex()the index of the queue to retrieve from within the set of queues that share both the queue family and flags specified. -
sType
Sets the specified value to thesType()field. -
sType$Default
Sets theSTRUCTURE_TYPE_DEVICE_QUEUE_INFO_2value to thesType()field. -
pNext
Sets the specified value to thepNext()field. -
flags
Sets the specified value to theflags()field. -
queueFamilyIndex
Sets the specified value to thequeueFamilyIndex()field. -
queueIndex
Sets the specified value to thequeueIndex()field. -
set
public VkDeviceQueueInfo2 set(int sType, long pNext, int flags, int queueFamilyIndex, int queueIndex) Initializes this struct with the specified values. -
set
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
Returns a newVkDeviceQueueInfo2instance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkDeviceQueueInfo2instance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkDeviceQueueInfo2instance allocated withBufferUtils. -
create
Returns a newVkDeviceQueueInfo2instance for the specified memory address. -
createSafe
-
malloc
Returns a newVkDeviceQueueInfo2.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkDeviceQueueInfo2.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkDeviceQueueInfo2.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkDeviceQueueInfo2.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
-
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
mallocStack
@Deprecated public static VkDeviceQueueInfo2.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(int, MemoryStack)instead. -
callocStack
@Deprecated public static VkDeviceQueueInfo2.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
malloc
Returns a newVkDeviceQueueInfo2instance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkDeviceQueueInfo2instance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
Returns a newVkDeviceQueueInfo2.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
Returns a newVkDeviceQueueInfo2.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
nsType
public static int nsType(long struct) Unsafe version ofsType(). -
npNext
public static long npNext(long struct) Unsafe version ofpNext(). -
nflags
public static int nflags(long struct) Unsafe version offlags(). -
nqueueFamilyIndex
public static int nqueueFamilyIndex(long struct) Unsafe version ofqueueFamilyIndex(). -
nqueueIndex
public static int nqueueIndex(long struct) Unsafe version ofqueueIndex(). -
nsType
public static void nsType(long struct, int value) Unsafe version ofsType. -
npNext
public static void npNext(long struct, long value) Unsafe version ofpNext. -
nflags
public static void nflags(long struct, int value) Unsafe version offlags. -
nqueueFamilyIndex
public static void nqueueFamilyIndex(long struct, int value) Unsafe version ofqueueFamilyIndex. -
nqueueIndex
public static void nqueueIndex(long struct, int value) Unsafe version ofqueueIndex.
-