Vulkan-Docs/doc/specs/vulkan/man/vkGetPhysicalDeviceProperti...

85 lines
3.6 KiB
Plaintext

vkGetPhysicalDeviceProperties(3)
================================
Name
----
vkGetPhysicalDeviceProperties - Returns properties of a physical device.
C Specification
---------------
include::../protos/vkGetPhysicalDeviceProperties.txt[]
Parameters
----------
pname:physicalDevice::
A handle to the physical device.
pname:pProperties::
A pointer to a structure that will be written with the device properties.
Description
-----------
fname:vkGetPhysicalDeviceProperties returns the properties of the physical device specified in
pname:physicalDevice in the structure pointed to by pname:pProperties. pname:pProperties points
to an instance of the slink:VkPhysicalDeviceProperties structure, the definition of which
is:
include::../structs/VkPhysicalDeviceProperties.txt[]
The data returned in the pname:pProperties structure contains information about the physical
device and the driver associated with it.
The pname:apiVersion member of slink:VkPhysicalDeviceProperties indicates the API version
supported by the physical device. Minor revisions of the API are backward compatible whereas
major versions of the API may break compatibility. The API version is represented as a 32-bit
field where bits 31 - 22 represent the major version, bits 21 - 12 represent the minor version,
and bits 11 - 0 represent the patch version.
The pname:driverVersion member represents the vendor-specific version of the driver used to
enable the device.
The pname:vendorID and pname:deviceID members contain the PCI vendor and device identifiers,
respectively. Note that if the device is not physcially a PCI-compliant device, then the
values of pname:vendorID and pname:deviceID are platform dependent and may not be values assigned
by the PCI-SIG.
The pname:deviceType member indicates the type of device represented by pname:physicalDevice.
pname:deviceType is a member of the elink:VkPhysicalDeviceType enumeration, the definition of
which is:
include::../enums/VkPhysicalDeviceType.txt[]
When pname:deviceType is ename:VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU, then the device is typically
one embedded in or tightly coupled with the host CPU that is running the application. When
pname:deviceType is ename:VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU, then the device is typically
a separate physical device connected to the host CPU via a slower interlink such as PCI-Express.
If pname:deviceType is ename:VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU, then the device is potentially
emulated (such a stub device or debugger endpoint), a virtual node in a virtualization environment or
otherwise does not fit either category. If the device is running entirely on the CPU, then
pname:deviceType will be ename:VK_PHYSICAL_DEVICE_TYPE_CPU. If the device type is unknown or does
not fit any of these types, then pname:deviceType may be ename:VK_PHYSICAL_DEVICE_TYPE_OTHER.
The pname:deviceName member of pname:pProperties contains a vendor-supplied human-readable name
for the device encoded as a UTF-8 string which is up to ename:VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
characters long, including a null-terminator.
pname:pipelineCacheUUID is an array, of size ename:VK_UUID_SIZE, containing 8-bit values that represent
a universally unique signature that identifies the hardware and driver combination.
pname:limits is an instance of the slink:VkPhysicalDeviceLimits structure which contains limits
on the functionality provided by the device. The definition of slink:VkPhysicalDeviceLimits is:
include::../structs/VkPhysicalDeviceLimits.txt[]
include::../validity/protos/vkGetPhysicalDeviceProperties.txt[]
See Also
--------
flink:vkGetPhysicalDeviceFeatures, flink:vkGetPhysicalDeviceProperties
include::footer.txt[]