Class VulkanPhysicalDevice¶
Defined in File vulkan_physical_device.h
Nested Relationships¶
Nested Types¶
Inheritance Relationships¶
Base Type¶
public portal::renderer::PhysicalDevice(Class PhysicalDevice)
Class Documentation¶
-
class VulkanPhysicalDevice : public portal::renderer::PhysicalDevice¶
Vulkan physical device (GPU) wrapper with capabilities and feature queries.
Wraps vk::raii::PhysicalDevice and caches properties, features, memory properties, queue families, and supported extensions at construction time. Provides queries for GPU capabilities needed during device creation and resource allocation.
Public Types
-
using Features = vk::StructureChain<vk::PhysicalDeviceFeatures2, vk::PhysicalDeviceVulkan11Features, vk::PhysicalDeviceVulkan12Features, vk::PhysicalDeviceVulkan13Features, vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT>¶
Feature chain including Vulkan 1.1, 1.2, 1.3, and extended dynamic state features.
Public Functions
-
explicit VulkanPhysicalDevice(vk::raii::PhysicalDevice &&physical_device)¶
Constructs physical device wrapper and caches capabilities.
- Parameters:
physical_device – Physical device handle (moved into this object)
-
vk::Format find_depth_format() const¶
Finds a supported depth format from common depth formats.
- Returns:
Supported depth format (e.g., D32_SFLOAT, D24_UNORM_S8_UINT)
-
virtual DriverVersion get_driver_version() const override¶
Gets driver version.
-
virtual bool is_extension_supported(std::string_view extensions_name) const override¶
Checks if extension is supported.
- Parameters:
extensions_name – Extension name to check
- Returns:
True if supported
-
virtual bool supports_present(Surface &surface, uint32_t queue_family_index) const override¶
Checks if queue family supports presentation to surface.
- Parameters:
surface – The surface
queue_family_index – Queue family index to check
- Returns:
True if presentation is supported
-
vk::FormatProperties get_format_properties(vk::Format format) const¶
Gets format properties.
- Parameters:
format – The format to query
- Returns:
Format properties
-
inline const vk::raii::PhysicalDevice &get_handle() const¶
Gets the physical device handle.
-
vk::PhysicalDeviceFeatures get_features() const¶
Gets device features.
-
inline vk::PhysicalDeviceProperties get_properties() const¶
Gets device properties.
-
inline vk::PhysicalDeviceMemoryProperties get_memory_properties() const¶
Gets memory properties.
-
const std::vector<vk::QueueFamilyProperties> &get_queue_family_properties() const¶
Gets queue family properties.
-
QueueFamilyIndices get_queue_family_indices(vk::QueueFlags queue_flags) const¶
Gets queue family indices for requested queue types.
-
struct QueueFamilyIndices
Queue family indices for different queue types.
Public Members
-
int32_t graphics = -1
-
int32_t compute = -1
-
int32_t transfer = -1
-
int32_t graphics = -1
-
using Features = vk::StructureChain<vk::PhysicalDeviceFeatures2, vk::PhysicalDeviceVulkan11Features, vk::PhysicalDeviceVulkan12Features, vk::PhysicalDeviceVulkan13Features, vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT>¶