MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Core::VKDevice Class Reference

Manages Vulkan physical device selection and logical device creation. More...

#include <VKDevice.hpp>

+ Collaboration diagram for MayaFlux::Core::VKDevice:

Public Member Functions

 VKDevice ()=default
 
 ~VKDevice ()
 
 VKDevice (const VKDevice &)=delete
 
VKDeviceoperator= (const VKDevice &)=delete
 
 VKDevice (VKDevice &&) noexcept
 
VKDeviceoperator= (VKDevice &&) noexcept
 
bool initialize (vk::Instance instance, vk::SurfaceKHR temp_surface, const GraphicsBackendInfo &backend_info)
 Initialize device (pick physical device and create logical device)
 
void cleanup ()
 Cleanup device resources.
 
vk::PhysicalDevice get_physical_device () const
 Get physical device handle.
 
vk::Device get_device () const
 Get logical device handle.
 
vk::Queue get_graphics_queue () const
 Get graphics queue.
 
vk::Queue get_compute_queue () const
 Get compute queue (may be same as graphics)
 
vk::Queue get_transfer_queue () const
 Get transfer queue (may be same as graphics)
 
const QueueFamilyIndicesget_queue_families () const
 Get queue family indices.
 
bool update_presentation_queue (vk::SurfaceKHR surface)
 Update presentation queue family for a specific surface.
 
void wait_idle () const
 Wait for the device to become idle.
 
void query_supported_extensions ()
 Query and log supported device extensions.
 

Private Member Functions

bool pick_physical_device (vk::Instance instance, vk::SurfaceKHR temp_surface)
 Pick a suitable physical device (GPU)
 
QueueFamilyIndices find_queue_families (vk::PhysicalDevice device, vk::SurfaceKHR surface=nullptr)
 Find queue families on the given physical device.
 
bool create_logical_device (vk::Instance instance, const GraphicsBackendInfo &backend_info)
 Create the logical device and retrieve queue handles.
 

Private Attributes

vk::PhysicalDevice m_physical_device
 Selected physical device (GPU)
 
vk::Device m_logical_device
 Logical device handle.
 
vk::Queue m_graphics_queue
 Graphics queue handle.
 
vk::Queue m_compute_queue
 Compute queue handle.
 
vk::Queue m_transfer_queue
 Transfer queue handle.
 
QueueFamilyIndices m_queue_families
 Indices of required queue families.
 
bool m_presentation_initialized = false
 

Detailed Description

Manages Vulkan physical device selection and logical device creation.

Handles GPU selection and creates the logical device interface for executing commands.

Definition at line 32 of file VKDevice.hpp.


The documentation for this class was generated from the following files: