|
MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
|
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 | |
| VKDevice & | operator= (const VKDevice &)=delete |
| VKDevice (VKDevice &&) noexcept | |
| VKDevice & | operator= (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 QueueFamilyIndices & | get_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 |
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.