Class VkPhysicalDeviceProperties
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
Description
Note
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.
Note
The encoding of driverVersion is implementation-defined. It may not use the same encoding as apiVersion. Applications should follow information from the vendor on how to extract the version information from driverVersion.
On implementations that claim support for the Roadmap 2022 profile, the major and minor version expressed by apiVersion must be at least Vulkan 1.3.
The vendorID and deviceID fields are provided to allow applications to adapt to device characteristics that are not adequately exposed by other Vulkan queries.
Note
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.
Note
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 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 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).
Note
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.
See Also
VkPhysicalDeviceLimits, VkPhysicalDeviceProperties2, VkPhysicalDeviceSparseProperties, GetPhysicalDeviceProperties
Layout
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();
}-
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 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.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
ConstructorsConstructorDescriptionVkPhysicalDeviceProperties(ByteBuffer container) Creates aVkPhysicalDevicePropertiesinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionintthe version of Vulkan supported by the device, encoded as described in Version Numbers.static VkPhysicalDevicePropertiescalloc()Returns a newVkPhysicalDevicePropertiesinstance allocated withmemCalloc.calloc(int capacity) Returns a newVkPhysicalDeviceProperties.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkPhysicalDeviceProperties.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkPhysicalDevicePropertiescalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkPhysicalDevicePropertiesinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkPhysicalDevicePropertiesDeprecated.callocStack(int capacity) Deprecated.callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.static VkPhysicalDevicePropertiescallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.static VkPhysicalDevicePropertiescreate()Returns a newVkPhysicalDevicePropertiesinstance allocated withBufferUtils.create(int capacity) Returns a newVkPhysicalDeviceProperties.Bufferinstance allocated withBufferUtils.static VkPhysicalDevicePropertiescreate(long address) Returns a newVkPhysicalDevicePropertiesinstance for the specified memory address.create(long address, int capacity) Create aVkPhysicalDeviceProperties.Bufferinstance at the specified memory.static @Nullable VkPhysicalDevicePropertiescreateSafe(long address) static @Nullable VkPhysicalDeviceProperties.BuffercreateSafe(long address, int capacity) intdeviceID()a unique identifier for the physical device among devices available from the vendor.an array ofMAX_PHYSICAL_DEVICE_NAME_SIZEcharcontaining a null-terminated UTF-8 string which is the name of the device.an array ofMAX_PHYSICAL_DEVICE_NAME_SIZEcharcontaining a null-terminated UTF-8 string which is the name of the device.intaVkPhysicalDeviceTypespecifying the type of device.intthe vendor-specified version of the driver.limits()theVkPhysicalDeviceLimitsstructure specifying device-specific limits of the physical device.static VkPhysicalDevicePropertiesmalloc()Returns a newVkPhysicalDevicePropertiesinstance allocated withmemAlloc.malloc(int capacity) Returns a newVkPhysicalDeviceProperties.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkPhysicalDeviceProperties.Bufferinstance allocated on the specifiedMemoryStack.static VkPhysicalDevicePropertiesmalloc(org.lwjgl.system.MemoryStack stack) Returns a newVkPhysicalDevicePropertiesinstance allocated on the specifiedMemoryStack.static VkPhysicalDevicePropertiesDeprecated.mallocStack(int capacity) Deprecated.mallocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.static VkPhysicalDevicePropertiesmallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.static intnapiVersion(long struct) Unsafe version ofapiVersion().static intndeviceID(long struct) Unsafe version ofdeviceID().static ByteBufferndeviceName(long struct) Unsafe version ofdeviceName().static StringndeviceNameString(long struct) Unsafe version ofdeviceNameString().static intndeviceType(long struct) Unsafe version ofdeviceType().static intndriverVersion(long struct) Unsafe version ofdriverVersion().static VkPhysicalDeviceLimitsnlimits(long struct) Unsafe version oflimits().static ByteBuffernpipelineCacheUUID(long struct) Unsafe version ofpipelineCacheUUID().static bytenpipelineCacheUUID(long struct, int index) Unsafe version ofpipelineCacheUUID.nsparseProperties(long struct) Unsafe version ofsparseProperties().static intnvendorID(long struct) Unsafe version ofvendorID().an array ofUUID_SIZEuint8_tvalues representing a universally unique identifier for the device.bytepipelineCacheUUID(int index) an array ofUUID_SIZEuint8_tvalues representing a universally unique identifier for the device.intsizeof()theVkPhysicalDeviceSparsePropertiesstructure specifying various sparse related properties of the physical device.intvendorID()a unique identifier for the vendor (see below) of the physical device.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. -
APIVERSION
public static final int APIVERSIONThe struct member offsets. -
DRIVERVERSION
public static final int DRIVERVERSIONThe struct member offsets. -
VENDORID
public static final int VENDORIDThe struct member offsets. -
DEVICEID
public static final int DEVICEIDThe struct member offsets. -
DEVICETYPE
public static final int DEVICETYPEThe struct member offsets. -
DEVICENAME
public static final int DEVICENAMEThe struct member offsets. -
PIPELINECACHEUUID
public static final int PIPELINECACHEUUIDThe struct member offsets. -
LIMITS
public static final int LIMITSThe struct member offsets. -
SPARSEPROPERTIES
public static final int SPARSEPROPERTIESThe struct member offsets.
-
-
Constructor Details
-
VkPhysicalDeviceProperties
Creates aVkPhysicalDevicePropertiesinstance 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<VkPhysicalDeviceProperties>
-
apiVersion
public int apiVersion()the version of Vulkan supported by the device, encoded as described in Version Numbers. -
driverVersion
public int driverVersion()the vendor-specified version of the driver. -
vendorID
public int vendorID()a unique identifier for the vendor (see below) of the physical device. -
deviceID
public int deviceID()a unique identifier for the physical device among devices available from the vendor. -
deviceType
public int deviceType()aVkPhysicalDeviceTypespecifying the type of device. -
deviceName
an array ofMAX_PHYSICAL_DEVICE_NAME_SIZEcharcontaining a null-terminated UTF-8 string which is the name of the device. -
deviceNameString
an array ofMAX_PHYSICAL_DEVICE_NAME_SIZEcharcontaining a null-terminated UTF-8 string which is the name of the device. -
pipelineCacheUUID
an array ofUUID_SIZEuint8_tvalues representing a universally unique identifier for the device. -
pipelineCacheUUID
public byte pipelineCacheUUID(int index) an array ofUUID_SIZEuint8_tvalues representing a universally unique identifier for the device. -
limits
theVkPhysicalDeviceLimitsstructure specifying device-specific limits of the physical device. See Limits for details. -
sparseProperties
theVkPhysicalDeviceSparsePropertiesstructure specifying various sparse related properties of the physical device. See Sparse Properties for details. -
malloc
Returns a newVkPhysicalDevicePropertiesinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newVkPhysicalDevicePropertiesinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newVkPhysicalDevicePropertiesinstance allocated withBufferUtils. -
create
Returns a newVkPhysicalDevicePropertiesinstance for the specified memory address. -
createSafe
-
malloc
Returns a newVkPhysicalDeviceProperties.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newVkPhysicalDeviceProperties.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newVkPhysicalDeviceProperties.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aVkPhysicalDeviceProperties.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 public static VkPhysicalDeviceProperties mallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
@Deprecated public static VkPhysicalDeviceProperties callocStack(org.lwjgl.system.MemoryStack stack) 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 VkPhysicalDeviceProperties.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 VkPhysicalDeviceProperties.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack) Deprecated.Deprecated for removal in 3.4.0. Usecalloc(int, MemoryStack)instead. -
malloc
Returns a newVkPhysicalDevicePropertiesinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newVkPhysicalDevicePropertiesinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkPhysicalDeviceProperties.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkPhysicalDeviceProperties.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
public static VkPhysicalDeviceProperties.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newVkPhysicalDeviceProperties.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
napiVersion
public static int napiVersion(long struct) Unsafe version ofapiVersion(). -
ndriverVersion
public static int ndriverVersion(long struct) Unsafe version ofdriverVersion(). -
nvendorID
public static int nvendorID(long struct) Unsafe version ofvendorID(). -
ndeviceID
public static int ndeviceID(long struct) Unsafe version ofdeviceID(). -
ndeviceType
public static int ndeviceType(long struct) Unsafe version ofdeviceType(). -
ndeviceName
Unsafe version ofdeviceName(). -
ndeviceNameString
Unsafe version ofdeviceNameString(). -
npipelineCacheUUID
Unsafe version ofpipelineCacheUUID(). -
npipelineCacheUUID
public static byte npipelineCacheUUID(long struct, int index) Unsafe version ofpipelineCacheUUID. -
nlimits
Unsafe version oflimits(). -
nsparseProperties
Unsafe version ofsparseProperties().
-