233{
234 if (this != &other) {
247
248 other.m_physical_device = VK_NULL_HANDLE;
249 other.m_logical_device = VK_NULL_HANDLE;
250 other.m_graphics_queue = VK_NULL_HANDLE;
251 other.m_compute_queue = VK_NULL_HANDLE;
252 other.m_transfer_queue = VK_NULL_HANDLE;
253 }
254 return *this;
255}
std::array< uint8_t, VK_UUID_SIZE > m_device_uuid
Selected device UUID.
void cleanup()
Cleanup device resources.
bool m_supports_mesh_shaders
Whether the device supports mesh shaders.
vk::PhysicalDevice m_physical_device
Selected physical device (GPU)
vk::Queue m_compute_queue
Compute queue handle.
vk::Queue m_transfer_queue
Transfer queue handle.
vk::Device m_logical_device
Logical device handle.
bool m_graphics_presents
Graphics family passed the surfaceless presentation probe.
std::unordered_map< uint32_t, vk::Queue > m_present_queues
One queue per presentation-capable family.
std::string m_device_name
Selected device name, cached for logging.
vk::Queue m_graphics_queue
Graphics queue handle.
QueueFamilyIndices m_queue_families
Indices of required queue families.