public class VkPhysicalDeviceProperties
extends org.lwjgl.system.Struct
implements org.lwjgl.system.NativeResource
The value of apiVersion may be different than the version returned by EnumerateInstanceVersion; either higher or lower. In such cases, the application must not use functionality that exceeds the version of Vulkan associated with a given object. The pApiVersion parameter returned by EnumerateInstanceVersion is the version associated with a VkInstance and its children, except for a VkPhysicalDevice and its children. VkPhysicalDeviceProperties::apiVersion is the version associated with a VkPhysicalDevice and its children.
The vendorID and deviceID fields are provided to allow applications to adapt to device characteristics that are not adequately exposed by other Vulkan queries.
These may include performance profiles, hardware errata, or other characteristics.
The vendor identified by vendorID is the entity responsible for the most salient characteristics of the underlying implementation of the VkPhysicalDevice being queried.
For example, in the case of a discrete GPU implementation, this should be the GPU chipset vendor. In the case of a hardware accelerator integrated into a system-on-chip (SoC), this should be the supplier of the silicon IP used to create the accelerator.
If the vendor has a PCI vendor ID, the low 16 bits of vendorID must contain that PCI vendor ID, and the remaining bits must be set to zero. Otherwise, the value returned must be a valid Khronos vendor ID, obtained as described in the Vulkan Documentation and Extensions: Procedures and Conventions document in the section "Registering a Vendor ID with Khronos". Khronos vendor IDs are allocated starting at 0x10000, to distinguish them from the PCI vendor ID namespace. Khronos vendor IDs are symbolically defined in the VkVendorId type.
The vendor is also responsible for the value returned in deviceID. If the implementation is driven primarily by a PCI device with a PCI device ID, the low 16 bits of deviceID must contain that PCI device ID, and the remaining bits must be set to zero. Otherwise, the choice of what values to return may be dictated by operating system or platform policies - but should uniquely identify both the device version and any major configuration options (for example, core count in the case of multicore devices).
The same device ID should be used for all physical implementations of that device version and configuration. For example, all uses of a specific silicon IP GPU version and configuration should use the same device ID, even if those uses occur in different SoCs.
VkPhysicalDeviceLimits, VkPhysicalDeviceProperties2, VkPhysicalDeviceSparseProperties, GetPhysicalDeviceProperties
apiVersion – the version of Vulkan supported by the device, encoded as described in Version Numbers.driverVersion – the vendor-specified version of the driver.vendorID – a unique identifier for the vendor (see below) of the physical device.deviceID – a unique identifier for the physical device among devices available from the vendor.deviceType – a VkPhysicalDeviceType specifying the type of device.deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] – an array of MAX_PHYSICAL_DEVICE_NAME_SIZE char containing a null-terminated UTF-8 string which is the name of the device.pipelineCacheUUID[VK_UUID_SIZE] – an array of UUID_SIZE uint8_t values representing a universally unique identifier for the device.limits – the VkPhysicalDeviceLimits structure specifying device-specific limits of the physical device. See Limits for details.sparseProperties – the VkPhysicalDeviceSparseProperties structure specifying various sparse related properties of the physical device. See Sparse Properties for details.
struct VkPhysicalDeviceProperties {
uint32_t apiVersion;
uint32_t driverVersion;
uint32_t vendorID;
uint32_t deviceID;
VkPhysicalDeviceType deviceType;
char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
uint8_t pipelineCacheUUID[VK_UUID_SIZE];
VkPhysicalDeviceLimits limits;
VkPhysicalDeviceSparseProperties sparseProperties;
}| Modifier and Type | Class and Description |
|---|---|
static class |
VkPhysicalDeviceProperties.Buffer
An array of
VkPhysicalDeviceProperties structs. |
| Modifier and Type | Field and Description |
|---|---|
static int |
ALIGNOF
The struct alignment in bytes.
|
static int |
APIVERSION
The struct member offsets.
|
static int |
DEVICEID
The struct member offsets.
|
static int |
DEVICENAME
The struct member offsets.
|
static int |
DEVICETYPE
The struct member offsets.
|
static int |
DRIVERVERSION
The struct member offsets.
|
static int |
LIMITS
The struct member offsets.
|
static int |
PIPELINECACHEUUID
The struct member offsets.
|
static int |
SIZEOF
The struct size in bytes.
|
static int |
SPARSEPROPERTIES
The struct member offsets.
|
static int |
VENDORID
The struct member offsets.
|
| Constructor and Description |
|---|
VkPhysicalDeviceProperties(java.nio.ByteBuffer container)
Creates a
VkPhysicalDeviceProperties instance at the current position of the specified ByteBuffer container. |
| Modifier and Type | Method and Description |
|---|---|
int |
apiVersion()
Returns the value of the
apiVersion field. |
static VkPhysicalDeviceProperties |
calloc()
Returns a new
VkPhysicalDeviceProperties instance allocated with memCalloc. |
static VkPhysicalDeviceProperties.Buffer |
calloc(int capacity)
Returns a new
VkPhysicalDeviceProperties.Buffer instance allocated with memCalloc. |
static VkPhysicalDeviceProperties |
callocStack()
Returns a new
VkPhysicalDeviceProperties instance allocated on the thread-local MemoryStack and initializes all its bits to zero. |
static VkPhysicalDeviceProperties.Buffer |
callocStack(int capacity)
Returns a new
VkPhysicalDeviceProperties.Buffer instance allocated on the thread-local MemoryStack and initializes all its bits to zero. |
static VkPhysicalDeviceProperties.Buffer |
callocStack(int capacity,
org.lwjgl.system.MemoryStack stack)
Returns a new
VkPhysicalDeviceProperties.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero. |
static VkPhysicalDeviceProperties |
callocStack(org.lwjgl.system.MemoryStack stack)
Returns a new
VkPhysicalDeviceProperties instance allocated on the specified MemoryStack and initializes all its bits to zero. |
static VkPhysicalDeviceProperties |
create()
Returns a new
VkPhysicalDeviceProperties instance allocated with BufferUtils. |
static VkPhysicalDeviceProperties.Buffer |
create(int capacity)
Returns a new
VkPhysicalDeviceProperties.Buffer instance allocated with BufferUtils. |
static VkPhysicalDeviceProperties |
create(long address)
Returns a new
VkPhysicalDeviceProperties instance for the specified memory address. |
static VkPhysicalDeviceProperties.Buffer |
create(long address,
int capacity)
Create a
VkPhysicalDeviceProperties.Buffer instance at the specified memory. |
static VkPhysicalDeviceProperties |
createSafe(long address)
|
static VkPhysicalDeviceProperties.Buffer |
createSafe(long address,
int capacity)
|
int |
deviceID()
Returns the value of the
deviceID field. |
java.nio.ByteBuffer |
deviceName()
Returns a
ByteBuffer view of the deviceName field. |
java.lang.String |
deviceNameString()
Decodes the null-terminated string stored in the
deviceName field. |
int |
deviceType()
Returns the value of the
deviceType field. |
int |
driverVersion()
Returns the value of the
driverVersion field. |
VkPhysicalDeviceLimits |
limits()
Returns a
VkPhysicalDeviceLimits view of the limits field. |
static VkPhysicalDeviceProperties |
malloc()
Returns a new
VkPhysicalDeviceProperties instance allocated with memAlloc. |
static VkPhysicalDeviceProperties.Buffer |
malloc(int capacity)
Returns a new
VkPhysicalDeviceProperties.Buffer instance allocated with memAlloc. |
static VkPhysicalDeviceProperties |
mallocStack()
Returns a new
VkPhysicalDeviceProperties instance allocated on the thread-local MemoryStack. |
static VkPhysicalDeviceProperties.Buffer |
mallocStack(int capacity)
Returns a new
VkPhysicalDeviceProperties.Buffer instance allocated on the thread-local MemoryStack. |
static VkPhysicalDeviceProperties.Buffer |
mallocStack(int capacity,
org.lwjgl.system.MemoryStack stack)
Returns a new
VkPhysicalDeviceProperties.Buffer instance allocated on the specified MemoryStack. |
static VkPhysicalDeviceProperties |
mallocStack(org.lwjgl.system.MemoryStack stack)
Returns a new
VkPhysicalDeviceProperties instance allocated on the specified MemoryStack. |
static int |
napiVersion(long struct)
Unsafe version of
apiVersion(). |
static int |
ndeviceID(long struct)
Unsafe version of
deviceID(). |
static java.nio.ByteBuffer |
ndeviceName(long struct)
Unsafe version of
deviceName(). |
static java.lang.String |
ndeviceNameString(long struct)
Unsafe version of
deviceNameString(). |
static int |
ndeviceType(long struct)
Unsafe version of
deviceType(). |
static int |
ndriverVersion(long struct)
Unsafe version of
driverVersion(). |
static VkPhysicalDeviceLimits |
nlimits(long struct)
Unsafe version of
limits(). |
static java.nio.ByteBuffer |
npipelineCacheUUID(long struct)
Unsafe version of
pipelineCacheUUID(). |
static byte |
npipelineCacheUUID(long struct,
int index)
Unsafe version of
pipelineCacheUUID. |
static VkPhysicalDeviceSparseProperties |
nsparseProperties(long struct)
Unsafe version of
sparseProperties(). |
static int |
nvendorID(long struct)
Unsafe version of
vendorID(). |
java.nio.ByteBuffer |
pipelineCacheUUID()
Returns a
ByteBuffer view of the pipelineCacheUUID field. |
byte |
pipelineCacheUUID(int index)
Returns the value at the specified index of the
pipelineCacheUUID field. |
int |
sizeof() |
VkPhysicalDeviceSparseProperties |
sparseProperties()
Returns a
VkPhysicalDeviceSparseProperties view of the sparseProperties field. |
int |
vendorID()
Returns the value of the
vendorID field. |
public static final int SIZEOF
public static final int ALIGNOF
public static final int APIVERSION
public static final int DRIVERVERSION
public static final int VENDORID
public static final int DEVICEID
public static final int DEVICETYPE
public static final int DEVICENAME
public static final int PIPELINECACHEUUID
public static final int LIMITS
public static final int SPARSEPROPERTIES
public VkPhysicalDeviceProperties(java.nio.ByteBuffer container)
VkPhysicalDeviceProperties 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 apiVersion()
apiVersion field.public int driverVersion()
driverVersion field.public int vendorID()
vendorID field.public int deviceID()
deviceID field.public int deviceType()
deviceType field.public java.nio.ByteBuffer deviceName()
ByteBuffer view of the deviceName field.public java.lang.String deviceNameString()
deviceName field.public java.nio.ByteBuffer pipelineCacheUUID()
ByteBuffer view of the pipelineCacheUUID field.public byte pipelineCacheUUID(int index)
pipelineCacheUUID field.public VkPhysicalDeviceLimits limits()
VkPhysicalDeviceLimits view of the limits field.public VkPhysicalDeviceSparseProperties sparseProperties()
VkPhysicalDeviceSparseProperties view of the sparseProperties field.public static VkPhysicalDeviceProperties malloc()
VkPhysicalDeviceProperties instance allocated with memAlloc. The instance must be explicitly freed.public static VkPhysicalDeviceProperties calloc()
VkPhysicalDeviceProperties instance allocated with memCalloc. The instance must be explicitly freed.public static VkPhysicalDeviceProperties create()
VkPhysicalDeviceProperties instance allocated with BufferUtils.public static VkPhysicalDeviceProperties create(long address)
VkPhysicalDeviceProperties instance for the specified memory address.@Nullable public static VkPhysicalDeviceProperties createSafe(long address)
public static VkPhysicalDeviceProperties.Buffer malloc(int capacity)
VkPhysicalDeviceProperties.Buffer instance allocated with memAlloc. The instance must be explicitly freed.capacity - the buffer capacitypublic static VkPhysicalDeviceProperties.Buffer calloc(int capacity)
VkPhysicalDeviceProperties.Buffer instance allocated with memCalloc. The instance must be explicitly freed.capacity - the buffer capacitypublic static VkPhysicalDeviceProperties.Buffer create(int capacity)
VkPhysicalDeviceProperties.Buffer instance allocated with BufferUtils.capacity - the buffer capacitypublic static VkPhysicalDeviceProperties.Buffer create(long address, int capacity)
VkPhysicalDeviceProperties.Buffer instance at the specified memory.address - the memory addresscapacity - the buffer capacity@Nullable public static VkPhysicalDeviceProperties.Buffer createSafe(long address, int capacity)
public static VkPhysicalDeviceProperties mallocStack()
VkPhysicalDeviceProperties instance allocated on the thread-local MemoryStack.public static VkPhysicalDeviceProperties callocStack()
VkPhysicalDeviceProperties instance allocated on the thread-local MemoryStack and initializes all its bits to zero.public static VkPhysicalDeviceProperties mallocStack(org.lwjgl.system.MemoryStack stack)
VkPhysicalDeviceProperties instance allocated on the specified MemoryStack.stack - the stack from which to allocatepublic static VkPhysicalDeviceProperties callocStack(org.lwjgl.system.MemoryStack stack)
VkPhysicalDeviceProperties instance allocated on the specified MemoryStack and initializes all its bits to zero.stack - the stack from which to allocatepublic static VkPhysicalDeviceProperties.Buffer mallocStack(int capacity)
VkPhysicalDeviceProperties.Buffer instance allocated on the thread-local MemoryStack.capacity - the buffer capacitypublic static VkPhysicalDeviceProperties.Buffer callocStack(int capacity)
VkPhysicalDeviceProperties.Buffer instance allocated on the thread-local MemoryStack and initializes all its bits to zero.capacity - the buffer capacitypublic static VkPhysicalDeviceProperties.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
VkPhysicalDeviceProperties.Buffer instance allocated on the specified MemoryStack.stack - the stack from which to allocatecapacity - the buffer capacitypublic static VkPhysicalDeviceProperties.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
VkPhysicalDeviceProperties.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 napiVersion(long struct)
apiVersion().public static int ndriverVersion(long struct)
driverVersion().public static int nvendorID(long struct)
vendorID().public static int ndeviceID(long struct)
deviceID().public static int ndeviceType(long struct)
deviceType().public static java.nio.ByteBuffer ndeviceName(long struct)
deviceName().public static java.lang.String ndeviceNameString(long struct)
deviceNameString().public static java.nio.ByteBuffer npipelineCacheUUID(long struct)
pipelineCacheUUID().public static byte npipelineCacheUUID(long struct,
int index)
pipelineCacheUUID.public static VkPhysicalDeviceLimits nlimits(long struct)
limits().public static VkPhysicalDeviceSparseProperties nsparseProperties(long struct)
sparseProperties().Copyright LWJGL. All Rights Reserved. License terms.