Move VulkanRenderDriver::_pick_device to RenderDevice::choose_device

This commit is contained in:
2025-03-27 15:07:24 +10:00
parent add724db70
commit 4e47c97539
5 changed files with 49 additions and 36 deletions

View File

@@ -77,7 +77,7 @@ void VulkanRenderDriver::create_device(u32 index) {
NOVA_ASSERT(!m_device);
if (index == RenderDevice::AUTO) {
index = _pick_device();
index = RenderDevice::choose_device(m_devices);
} else {
NOVA_ASSERT(index < m_devices.size());
}
@@ -241,39 +241,6 @@ void VulkanRenderDriver::_init_hardware() {
}
}
u32 VulkanRenderDriver::_pick_device() const {
NOVA_AUTO_TRACE();
u32 best_index = 0;
u32 best_score = 0;
for (u32 i = 0; i < m_devices.size(); i++) {
u32 score = 0;
switch (m_devices[i].type) {
case RenderDevice::Type::DISCRETE:
score += 4;
break;
case RenderDevice::Type::INTEGRATED:
score += 3;
break;
case RenderDevice::Type::VIRTUAL:
score += 2;
break;
case RenderDevice::Type::CPU:
score += 1;
break;
default:
break;
}
if (score > best_score) {
best_index = i;
best_score = score;
}
}
return best_index;
}
void VulkanRenderDriver::_check_device_extensions() {
NOVA_AUTO_TRACE();