tp::PhysicalDevice class

Represents a read-only interface for the physical device for identification and querying its properties and capabilities.

Public functions

auto getMemoryLocationInfo(MemoryLocation location) const -> MemoryLocationInfo
Returns the details of the given memory location and what Vulkan memory types and heaps it maps to.
auto getQueueTypeInfo(QueueType type) const -> QueueTypeInfo
Returns the details of a particular queue type and what Vulkan queue family it maps to.
auto isExtensionAvailable(const char* extension) const -> bool
Returns true when the device extension is available on the device and can be enabled.
auto queryFormatCapabilities(Format format) const -> FormatCapabilities
Returns the capabilities for the given tp::Format.
auto querySurfaceCapabilitiesKHR(VkSurfaceKHR vkSurface) const -> SurfaceCapabilities
Returns the capabilities of the device relating to the given VkSurfaceKHR Vulkan handle.
auto vkGetPhysicalDeviceHandle() const -> VkPhysicalDeviceHandle
Returns the associated Vulkan VkPhysicalDevice handle.
template<typename T>
auto vkQueryFeatures() const -> const T&
Queries the device for features defined in the Vulkan feature structure given as the template argument, for example VkPhysicalDeviceFeatures.
template<typename T>
auto vkQueryProperties() const -> const T&
Queries the device for properties defined in the Vulkan property structure given as the template argument, for example VkPhysicalDeviceProperties.

Public variables

Version apiVersion
The highest Vulkan API version that the device implements.
Version driverVersion
The driver version number.
const char* name
The human readable name of the device.
std::byte pipelineCacheUUID
A universally unique identifier for the device. Can be used for identifying pipeline caches as they can only be used with a particular device.
DeviceType type
The type of the device, hinting at its performance characteristics.
DeviceVendor vendor
The device vendor, if identified. Otherwise, see vendorID.
uint32_t vendorID
The device vendor ID.

Function documentation

template<typename T>
const T& tp::PhysicalDevice::vkQueryFeatures() const

Queries the device for features defined in the Vulkan feature structure given as the template argument, for example VkPhysicalDeviceFeatures.

template<typename T>
const T& tp::PhysicalDevice::vkQueryProperties() const

Queries the device for properties defined in the Vulkan property structure given as the template argument, for example VkPhysicalDeviceProperties.