Raises an error if 1: There is no Vulkan device 2: physicalDeviceIndex exceeds the device limit
This commit is contained in:
parent
4f7c15b112
commit
429f3aaacf
1 changed files with 19 additions and 0 deletions
|
|
@ -287,6 +287,25 @@ Manager::createDevice(const std::vector<uint32_t>& familyQueueIndices,
|
|||
}
|
||||
|
||||
this->mFreeDevice = true;
|
||||
|
||||
// Getting an integer that says how many vuklan devices we have
|
||||
uint32_t deviceCount = 0;
|
||||
vkEnumeratePhysicalDevices(*(this->mInstance), &deviceCount, nullptr);
|
||||
|
||||
// This means there are no devices at all
|
||||
if (deviceCount == 0) {
|
||||
throw std::runtime_error("Failed to find GPUs with Vulkan support! "
|
||||
"Maybe you haven't installed vulkan drivers?");
|
||||
}
|
||||
|
||||
// This means that we're exceeding our device limit, for
|
||||
// example if we have 2 devices, just physicalDeviceIndex
|
||||
// 0 and 1 are acceptable. Hence, physicalDeviceIndex should
|
||||
// always be less than deviceCount, else we raise an error
|
||||
if ( !(deviceCount > physicalDeviceIndex) ) {
|
||||
throw std::runtime_error("There is no such physical index or device, "
|
||||
"please use your existing device");
|
||||
}
|
||||
|
||||
std::vector<vk::PhysicalDevice> physicalDevices =
|
||||
this->mInstance->enumeratePhysicalDevices();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue