public class VkPhysicalDeviceIDProperties
extends org.lwjgl.system.Struct
implements org.lwjgl.system.NativeResource
deviceUUID must be immutable for a given device across instances, processes, driver APIs, driver versions, and system reboots.
Applications can compare the driverUUID value across instance and process boundaries, and can make similar queries in external APIs to determine whether they are capable of sharing memory objects and resources using them with the device.
deviceUUID and/or driverUUID must be used to determine whether a particular external object can be shared between driver components, where such a restriction exists as defined in the compatibility table for the particular object type:
If deviceLUIDValid is FALSE, the values of deviceLUID and deviceNodeMask are undefined. If deviceLUIDValid is TRUE and Vulkan is running on the Windows operating system, the contents of deviceLUID can be cast to an LUID object and must be equal to the locally unique identifier of a IDXGIAdapter1 object that corresponds to physicalDevice. If deviceLUIDValid is TRUE, deviceNodeMask must contain exactly one bit. If Vulkan is running on an operating system that supports the Direct3D 12 API and physicalDevice corresponds to an individual device in a linked device adapter, deviceNodeMask identifies the Direct3D 12 node corresponding to physicalDevice. Otherwise, deviceNodeMask must be 1.
Although they have identical descriptions, VkPhysicalDeviceIDProperties::deviceUUID may differ from VkPhysicalDeviceProperties2::pipelineCacheUUID. The former is intended to identify and correlate devices across API and driver boundaries, while the latter is used to identify a compatible device and driver combination to use when serializing and de-serializing pipeline state.
While VkPhysicalDeviceIDProperties::deviceUUID is specified to remain consistent across driver versions and system reboots, it is not intended to be usable as a serializable persistent identifier for a device. It may change when a device is physically added to, removed from, or moved to a different connector in a system while that system is powered down. Further, there is no reasonable way to verify with conformance testing that a given device retains the same UUID in a given system across all driver versions supported in that system. While implementations should make every effort to report consistent device UUIDs across driver versions, applications should avoid relying on the persistence of this value for uses other than identifying compatible devices for external object sharing purposes.
sType must be STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIESsType – the type of this structure.pNext – NULL or a pointer to an extension-specific structure.deviceUUID[VK_UUID_SIZE] – an array of UUID_SIZE uint8_t values representing a universally unique identifier for the device.driverUUID[VK_UUID_SIZE] – an array of UUID_SIZE uint8_t values representing a universally unique identifier for the driver build in use by the device.deviceLUID[VK_LUID_SIZE] – an array of LUID_SIZE uint8_t values representing a locally unique identifier for the device.deviceNodeMask – a uint32_t bitfield identifying the node within a linked device adapter corresponding to the device.deviceLUIDValid – a boolean value that will be TRUE if deviceLUID contains a valid LUID and deviceNodeMask contains a valid node mask, and FALSE if they do not.
struct VkPhysicalDeviceIDProperties {
VkStructureType sType;
void * pNext;
uint8_t deviceUUID[VK_UUID_SIZE];
uint8_t driverUUID[VK_UUID_SIZE];
uint8_t deviceLUID[VK_LUID_SIZE];
uint32_t deviceNodeMask;
VkBool32 deviceLUIDValid;
}| Modifier and Type | Class and Description |
|---|---|
static class |
VkPhysicalDeviceIDProperties.Buffer
An array of
VkPhysicalDeviceIDProperties structs. |
| Modifier and Type | Field and Description |
|---|---|
static int |
ALIGNOF
The struct alignment in bytes.
|
static int |
DEVICELUID
The struct member offsets.
|
static int |
DEVICELUIDVALID
The struct member offsets.
|
static int |
DEVICENODEMASK
The struct member offsets.
|
static int |
DEVICEUUID
The struct member offsets.
|
static int |
DRIVERUUID
The struct member offsets.
|
static int |
PNEXT
The struct member offsets.
|
static int |
SIZEOF
The struct size in bytes.
|
static int |
STYPE
The struct member offsets.
|
| Constructor and Description |
|---|
VkPhysicalDeviceIDProperties(java.nio.ByteBuffer container)
Creates a
VkPhysicalDeviceIDProperties instance at the current position of the specified ByteBuffer container. |
| Modifier and Type | Method and Description |
|---|---|
static VkPhysicalDeviceIDProperties |
calloc()
Returns a new
VkPhysicalDeviceIDProperties instance allocated with memCalloc. |
static VkPhysicalDeviceIDProperties.Buffer |
calloc(int capacity)
Returns a new
VkPhysicalDeviceIDProperties.Buffer instance allocated with memCalloc. |
static VkPhysicalDeviceIDProperties |
callocStack()
Returns a new
VkPhysicalDeviceIDProperties instance allocated on the thread-local MemoryStack and initializes all its bits to zero. |
static VkPhysicalDeviceIDProperties.Buffer |
callocStack(int capacity)
Returns a new
VkPhysicalDeviceIDProperties.Buffer instance allocated on the thread-local MemoryStack and initializes all its bits to zero. |
static VkPhysicalDeviceIDProperties.Buffer |
callocStack(int capacity,
org.lwjgl.system.MemoryStack stack)
Returns a new
VkPhysicalDeviceIDProperties.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero. |
static VkPhysicalDeviceIDProperties |
callocStack(org.lwjgl.system.MemoryStack stack)
Returns a new
VkPhysicalDeviceIDProperties instance allocated on the specified MemoryStack and initializes all its bits to zero. |
static VkPhysicalDeviceIDProperties |
create()
Returns a new
VkPhysicalDeviceIDProperties instance allocated with BufferUtils. |
static VkPhysicalDeviceIDProperties.Buffer |
create(int capacity)
Returns a new
VkPhysicalDeviceIDProperties.Buffer instance allocated with BufferUtils. |
static VkPhysicalDeviceIDProperties |
create(long address)
Returns a new
VkPhysicalDeviceIDProperties instance for the specified memory address. |
static VkPhysicalDeviceIDProperties.Buffer |
create(long address,
int capacity)
Create a
VkPhysicalDeviceIDProperties.Buffer instance at the specified memory. |
static VkPhysicalDeviceIDProperties |
createSafe(long address)
|
static VkPhysicalDeviceIDProperties.Buffer |
createSafe(long address,
int capacity)
|
java.nio.ByteBuffer |
deviceLUID()
Returns a
ByteBuffer view of the deviceLUID field. |
byte |
deviceLUID(int index)
Returns the value at the specified index of the
deviceLUID field. |
boolean |
deviceLUIDValid()
Returns the value of the
deviceLUIDValid field. |
int |
deviceNodeMask()
Returns the value of the
deviceNodeMask field. |
java.nio.ByteBuffer |
deviceUUID()
Returns a
ByteBuffer view of the deviceUUID field. |
byte |
deviceUUID(int index)
Returns the value at the specified index of the
deviceUUID field. |
java.nio.ByteBuffer |
driverUUID()
Returns a
ByteBuffer view of the driverUUID field. |
byte |
driverUUID(int index)
Returns the value at the specified index of the
driverUUID field. |
static VkPhysicalDeviceIDProperties |
malloc()
Returns a new
VkPhysicalDeviceIDProperties instance allocated with memAlloc. |
static VkPhysicalDeviceIDProperties.Buffer |
malloc(int capacity)
Returns a new
VkPhysicalDeviceIDProperties.Buffer instance allocated with memAlloc. |
static VkPhysicalDeviceIDProperties |
mallocStack()
Returns a new
VkPhysicalDeviceIDProperties instance allocated on the thread-local MemoryStack. |
static VkPhysicalDeviceIDProperties.Buffer |
mallocStack(int capacity)
Returns a new
VkPhysicalDeviceIDProperties.Buffer instance allocated on the thread-local MemoryStack. |
static VkPhysicalDeviceIDProperties.Buffer |
mallocStack(int capacity,
org.lwjgl.system.MemoryStack stack)
Returns a new
VkPhysicalDeviceIDProperties.Buffer instance allocated on the specified MemoryStack. |
static VkPhysicalDeviceIDProperties |
mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a new
VkPhysicalDeviceIDProperties instance allocated on the specified MemoryStack. |
static java.nio.ByteBuffer |
ndeviceLUID(long struct)
Unsafe version of
deviceLUID(). |
static byte |
ndeviceLUID(long struct,
int index)
Unsafe version of
deviceLUID. |
static int |
ndeviceLUIDValid(long struct)
Unsafe version of
deviceLUIDValid(). |
static int |
ndeviceNodeMask(long struct)
Unsafe version of
deviceNodeMask(). |
static java.nio.ByteBuffer |
ndeviceUUID(long struct)
Unsafe version of
deviceUUID(). |
static byte |
ndeviceUUID(long struct,
int index)
Unsafe version of
deviceUUID. |
static java.nio.ByteBuffer |
ndriverUUID(long struct)
Unsafe version of
driverUUID(). |
static byte |
ndriverUUID(long struct,
int index)
Unsafe version of
driverUUID. |
static long |
npNext(long struct)
Unsafe version of
pNext(). |
static void |
npNext(long struct,
long value)
Unsafe version of
pNext. |
static int |
nsType(long struct)
Unsafe version of
sType(). |
static void |
nsType(long struct,
int value)
Unsafe version of
sType. |
long |
pNext()
Returns the value of the
pNext field. |
VkPhysicalDeviceIDProperties |
pNext(long value)
Sets the specified value to the
pNext field. |
VkPhysicalDeviceIDProperties |
set(int sType,
long pNext)
Initializes this struct with the specified values.
|
VkPhysicalDeviceIDProperties |
set(VkPhysicalDeviceIDProperties src)
Copies the specified struct data to this struct.
|
int |
sizeof() |
int |
sType()
Returns the value of the
sType field. |
VkPhysicalDeviceIDProperties |
sType(int value)
Sets the specified value to the
sType field. |
public static final int SIZEOF
public static final int ALIGNOF
public static final int STYPE
public static final int PNEXT
public static final int DEVICEUUID
public static final int DRIVERUUID
public static final int DEVICELUID
public static final int DEVICENODEMASK
public static final int DEVICELUIDVALID
public VkPhysicalDeviceIDProperties(java.nio.ByteBuffer container)
VkPhysicalDeviceIDProperties 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.
public int sizeof()
sizeof in class org.lwjgl.system.Structpublic int sType()
sType field.public long pNext()
pNext field.public java.nio.ByteBuffer deviceUUID()
ByteBuffer view of the deviceUUID field.public byte deviceUUID(int index)
deviceUUID field.public java.nio.ByteBuffer driverUUID()
ByteBuffer view of the driverUUID field.public byte driverUUID(int index)
driverUUID field.public java.nio.ByteBuffer deviceLUID()
ByteBuffer view of the deviceLUID field.public byte deviceLUID(int index)
deviceLUID field.public int deviceNodeMask()
deviceNodeMask field.public boolean deviceLUIDValid()
deviceLUIDValid field.public VkPhysicalDeviceIDProperties sType(int value)
sType field.public VkPhysicalDeviceIDProperties pNext(long value)
pNext field.public VkPhysicalDeviceIDProperties set(int sType, long pNext)
public VkPhysicalDeviceIDProperties set(VkPhysicalDeviceIDProperties src)
src - the source structpublic static VkPhysicalDeviceIDProperties malloc()
VkPhysicalDeviceIDProperties instance allocated with memAlloc. The instance must be explicitly freed.public static VkPhysicalDeviceIDProperties calloc()
VkPhysicalDeviceIDProperties instance allocated with memCalloc. The instance must be explicitly freed.public static VkPhysicalDeviceIDProperties create()
VkPhysicalDeviceIDProperties instance allocated with BufferUtils.public static VkPhysicalDeviceIDProperties create(long address)
VkPhysicalDeviceIDProperties instance for the specified memory address.@Nullable public static VkPhysicalDeviceIDProperties createSafe(long address)
public static VkPhysicalDeviceIDProperties.Buffer malloc(int capacity)
VkPhysicalDeviceIDProperties.Buffer instance allocated with memAlloc. The instance must be explicitly freed.capacity - the buffer capacitypublic static VkPhysicalDeviceIDProperties.Buffer calloc(int capacity)
VkPhysicalDeviceIDProperties.Buffer instance allocated with memCalloc. The instance must be explicitly freed.capacity - the buffer capacitypublic static VkPhysicalDeviceIDProperties.Buffer create(int capacity)
VkPhysicalDeviceIDProperties.Buffer instance allocated with BufferUtils.capacity - the buffer capacitypublic static VkPhysicalDeviceIDProperties.Buffer create(long address, int capacity)
VkPhysicalDeviceIDProperties.Buffer instance at the specified memory.address - the memory addresscapacity - the buffer capacity@Nullable public static VkPhysicalDeviceIDProperties.Buffer createSafe(long address, int capacity)
public static VkPhysicalDeviceIDProperties mallocStack()
VkPhysicalDeviceIDProperties instance allocated on the thread-local MemoryStack.public static VkPhysicalDeviceIDProperties callocStack()
VkPhysicalDeviceIDProperties instance allocated on the thread-local MemoryStack and initializes all its bits to zero.public static VkPhysicalDeviceIDProperties mallocStack(org.lwjgl.system.MemoryStack stack)
VkPhysicalDeviceIDProperties instance allocated on the specified MemoryStack.stack - the stack from which to allocatepublic static VkPhysicalDeviceIDProperties callocStack(org.lwjgl.system.MemoryStack stack)
VkPhysicalDeviceIDProperties instance allocated on the specified MemoryStack and initializes all its bits to zero.stack - the stack from which to allocatepublic static VkPhysicalDeviceIDProperties.Buffer mallocStack(int capacity)
VkPhysicalDeviceIDProperties.Buffer instance allocated on the thread-local MemoryStack.capacity - the buffer capacitypublic static VkPhysicalDeviceIDProperties.Buffer callocStack(int capacity)
VkPhysicalDeviceIDProperties.Buffer instance allocated on the thread-local MemoryStack and initializes all its bits to zero.capacity - the buffer capacitypublic static VkPhysicalDeviceIDProperties.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
VkPhysicalDeviceIDProperties.Buffer instance allocated on the specified MemoryStack.stack - the stack from which to allocatecapacity - the buffer capacitypublic static VkPhysicalDeviceIDProperties.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
VkPhysicalDeviceIDProperties.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.stack - the stack from which to allocatecapacity - the buffer capacitypublic static int nsType(long struct)
sType().public static long npNext(long struct)
pNext().public static java.nio.ByteBuffer ndeviceUUID(long struct)
deviceUUID().public static byte ndeviceUUID(long struct,
int index)
deviceUUID.public static java.nio.ByteBuffer ndriverUUID(long struct)
driverUUID().public static byte ndriverUUID(long struct,
int index)
driverUUID.public static java.nio.ByteBuffer ndeviceLUID(long struct)
deviceLUID().public static byte ndeviceLUID(long struct,
int index)
deviceLUID.public static int ndeviceNodeMask(long struct)
deviceNodeMask().public static int ndeviceLUIDValid(long struct)
deviceLUIDValid().public static void nsType(long struct,
int value)
sType.public static void npNext(long struct,
long value)
pNext.Copyright LWJGL. All Rights Reserved. License terms.