Fix a few compiler warnings and startup/validation issues at runtime (#1193)

* Add error recovery to trianglevulkan13 and fix missing "override" compiler warnings

* Look for vkGetPhysicalDeviceFormatProperties2KHR in hostimagecopy example

* Enable fragmentStoresAndAtomics feature to avoid VVL warning in subpasses example
This commit is contained in:
SRSaunders 2025-03-09 07:48:00 -04:00 committed by GitHub
parent 02ed0eebb3
commit d14be3b787
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 11 additions and 1 deletions

View file

@ -419,7 +419,7 @@ public:
// Get the function pointers required host image copies // Get the function pointers required host image copies
vkCopyMemoryToImageEXT = reinterpret_cast<PFN_vkCopyMemoryToImageEXT>(vkGetDeviceProcAddr(device, "vkCopyMemoryToImageEXT")); vkCopyMemoryToImageEXT = reinterpret_cast<PFN_vkCopyMemoryToImageEXT>(vkGetDeviceProcAddr(device, "vkCopyMemoryToImageEXT"));
vkTransitionImageLayoutEXT = reinterpret_cast<PFN_vkTransitionImageLayoutEXT>(vkGetDeviceProcAddr(device, "vkTransitionImageLayoutEXT")); vkTransitionImageLayoutEXT = reinterpret_cast<PFN_vkTransitionImageLayoutEXT>(vkGetDeviceProcAddr(device, "vkTransitionImageLayoutEXT"));
vkGetPhysicalDeviceFormatProperties2 = reinterpret_cast<PFN_vkGetPhysicalDeviceFormatProperties2>(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties2")); vkGetPhysicalDeviceFormatProperties2 = reinterpret_cast<PFN_vkGetPhysicalDeviceFormatProperties2>(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties2KHR"));
loadAssets(); loadAssets();
loadTexture(); loadTexture();

View file

@ -99,6 +99,8 @@ public:
camera.setRotation(glm::vec3(0.5f, 210.05f, 0.0f)); camera.setRotation(glm::vec3(0.5f, 210.05f, 0.0f));
camera.setPerspective(60.0f, (float)width / (float)height, 0.1f, 256.0f); camera.setPerspective(60.0f, (float)width / (float)height, 0.1f, 256.0f);
ui.subpass = 2; ui.subpass = 2;
enabledFeatures.fragmentStoresAndAtomics = VK_TRUE;
} }
~VulkanExample() ~VulkanExample()

View file

@ -140,6 +140,14 @@ public:
} }
} }
virtual void getEnabledFeatures() override
{
// Vulkan 1.3 device support is required for this example
if (deviceProperties.apiVersion < VK_API_VERSION_1_3) {
vks::tools::exitFatal("Selected GPU does not support support Vulkan 1.3", VK_ERROR_INCOMPATIBLE_DRIVER);
}
}
// This function is used to request a device memory type that supports all the property flags we request (e.g. device local, host visible) // This function is used to request a device memory type that supports all the property flags we request (e.g. device local, host visible)
// Upon success it will return the index of the memory type that fits our requested memory properties // Upon success it will return the index of the memory type that fits our requested memory properties
// This is necessary as implementations can offer an arbitrary number of memory types with different memory properties // This is necessary as implementations can offer an arbitrary number of memory types with different memory properties