Class VkPhysicalDeviceProperties

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkPhysicalDeviceProperties>
org.lwjgl.vulkan.VkPhysicalDeviceProperties
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

public class VkPhysicalDeviceProperties extends org.lwjgl.system.Struct<VkPhysicalDeviceProperties> implements org.lwjgl.system.NativeResource
Structure specifying physical device properties.
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();
 }
  • Field Details

    • SIZEOF

      public static final int SIZEOF
      The struct size in bytes.
    • ALIGNOF

      public static final int ALIGNOF
      The struct alignment in bytes.
    • APIVERSION

      public static final int APIVERSION
      The struct member offsets.
    • DRIVERVERSION

      public static final int DRIVERVERSION
      The struct member offsets.
    • VENDORID

      public static final int VENDORID
      The struct member offsets.
    • DEVICEID

      public static final int DEVICEID
      The struct member offsets.
    • DEVICETYPE

      public static final int DEVICETYPE
      The struct member offsets.
    • DEVICENAME

      public static final int DEVICENAME
      The struct member offsets.
    • PIPELINECACHEUUID

      public static final int PIPELINECACHEUUID
      The struct member offsets.
    • LIMITS

      public static final int LIMITS
      The struct member offsets.
    • SPARSEPROPERTIES

      public static final int SPARSEPROPERTIES
      The struct member offsets.
  • Constructor Details

    • VkPhysicalDeviceProperties

      public VkPhysicalDeviceProperties(ByteBuffer container)
      Creates a 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.

  • Method Details