Skip to content

Commit

Permalink
loader: Prevent crash from VK_KHR_display
Browse files Browse the repository at this point in the history
Previously, we assumed that the extension VK_KHR_display would be
available on all systems. This appears to no longer be the case. If we
get two ICDs, one which supports the extension and one which does not,
we used to get a crash if trying to call any function from the
extension on the physical device which did not support it. This solves
that crash
  • Loading branch information
lenny-lunarg committed Apr 27, 2021
1 parent d0f1abe commit d4ef0ad
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions loader/wsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1620,9 +1620,8 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayPropertiesKHR(
}

if (NULL == icd_term->dispatch.GetPhysicalDeviceDisplayPropertiesKHR) {
loader_log(ptr_instance, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
"ICD for selected physical device is not exporting vkGetPhysicalDeviceDisplayPropertiesKHR!\n");
assert(false && "loader: null GetPhysicalDeviceDisplayPropertiesKHR ICD pointer");
*pPropertyCount = 0;
return VK_SUCCESS;
}

return icd_term->dispatch.GetPhysicalDeviceDisplayPropertiesKHR(phys_dev_term->phys_dev, pPropertyCount, pProperties);
Expand Down Expand Up @@ -1651,9 +1650,8 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayPlanePropertie
}

if (NULL == icd_term->dispatch.GetPhysicalDeviceDisplayPlanePropertiesKHR) {
loader_log(ptr_instance, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
"ICD for selected physical device is not exporting vkGetPhysicalDeviceDisplayPlanePropertiesKHR!\n");
assert(false && "loader: null GetPhysicalDeviceDisplayPlanePropertiesKHR ICD pointer");
*pPropertyCount = 0;
return VK_SUCCESS;
}

return icd_term->dispatch.GetPhysicalDeviceDisplayPlanePropertiesKHR(phys_dev_term->phys_dev, pPropertyCount, pProperties);
Expand Down

0 comments on commit d4ef0ad

Please sign in to comment.