mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
1 parent
f9bf58f8b0
commit
928cdea420
2 files changed
+13
-1
No files matched your search
@@ -133,6 +133,7 @@ VkResult VulkanContext::CreateInstance(const CreateInfo &info) {
|
||||
|
||||
if (!IsInstanceExtensionAvailable(VK_KHR_SURFACE_EXTENSION_NAME)) {
|
||||
// Cannot create a Vulkan display without VK_KHR_SURFACE_EXTENSION.
|
||||
// Technically we could allow this for headless builds, but meh.
|
||||
init_error_ = "Vulkan not loaded - no surface extension";
|
||||
return VK_ERROR_INITIALIZATION_FAILED;
|
||||
}
|
||||
@@ -185,6 +186,11 @@ VkResult VulkanContext::CreateInstance(const CreateInfo &info) {
|
||||
}
|
||||
}
|
||||
|
||||
if (IsInstanceExtensionAvailable(VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME)) {
|
||||
instance_extensions_enabled_.push_back(VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME);
|
||||
extensionsLookup_.KHR_get_surface_capabilities2 = true;
|
||||
}
|
||||
|
||||
// Uncomment to test GPU backend fallback
|
||||
// abort();
|
||||
|
||||
@@ -670,9 +676,11 @@ VkResult VulkanContext::CreateDevice(int physical_device) {
|
||||
}
|
||||
|
||||
extensionsLookup_.EXT_provoking_vertex = EnableDeviceExtension(VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, 0);
|
||||
if (extensionsLookup_.KHR_get_surface_capabilities2) {
|
||||
#ifdef VK_EXT_full_screen_exclusive
|
||||
extensionsLookup_.EXT_full_screen_exclusive = EnableDeviceExtension(VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, 0);
|
||||
extensionsLookup_.EXT_full_screen_exclusive = EnableDeviceExtension(VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME, 0);
|
||||
#endif
|
||||
}
|
||||
extensionsLookup_.KHR_present_mode_fifo_latest_ready = EnableDeviceExtension(VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME, 0);
|
||||
if (!extensionsLookup_.KHR_present_mode_fifo_latest_ready) {
|
||||
// Enable the EXT extension instead if available, it's equivalent (was promoted).
|
||||
|
||||
@@ -251,7 +251,11 @@ extern PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE;
|
||||
|
||||
// For fast extension-enabled checks.
|
||||
struct VulkanExtensions {
|
||||
// Instance extensions
|
||||
bool KHR_get_surface_capabilities2;
|
||||
bool EXT_debug_utils;
|
||||
|
||||
// Device extensions
|
||||
bool KHR_maintenance1; // required for KHR_create_renderpass2
|
||||
bool KHR_maintenance2;
|
||||
bool KHR_maintenance3;
|
||||
|
||||
Reference in new issue
Block a user