Compare commits

..

No commits in common. "6395c6b95cf0cd435c4d84c9b4a5471aefc12c97" and "658595e0c57215050aa84c5be114fd3d599e308f" have entirely different histories.

3 changed files with 14 additions and 11 deletions

View file

@ -1,3 +1,4 @@
# noinspection SpellCheckingInspection
Checks: > Checks: >
*, *,
-ctad-maybe-unsupported, -ctad-maybe-unsupported,

4
.clangd Normal file
View file

@ -0,0 +1,4 @@
Diagnostics:
Suppress: >
-Wmissing-template-arg-list-after-template-kw,
-Wctad-maybe-unsupported

View file

@ -7,9 +7,6 @@
#include <set> #include <set>
#include <stdexcept> #include <stdexcept>
#ifdef __APPLE__
#define VK_ENABLE_BETA_EXTENSIONS
#endif
#define VULKAN_HPP_NO_CONSTRUCTORS #define VULKAN_HPP_NO_CONSTRUCTORS
#include <vulkan/vulkan.hpp> #include <vulkan/vulkan.hpp>
@ -88,22 +85,20 @@ class VulkanApp {
fn createInstance() -> void { fn createInstance() -> void {
if (enableValidationLayers && !checkValidationLayerSupport()) if (enableValidationLayers && !checkValidationLayerSupport())
throw std::runtime_error("Validation layers requested, but not available!"); throw std::runtime_error("validation layers requested, but not available!");
vk::ApplicationInfo appInfo { .pApplicationName = "Hello Triangle", vk::ApplicationInfo appInfo { .pApplicationName = "Hello Triangle",
.applicationVersion = 1, .applicationVersion = 1,
.pEngineName = "No Engine", .pEngineName = "No Engine",
.engineVersion = 1, .engineVersion = 1,
.apiVersion = vk::ApiVersion10 }; .apiVersion = VK_API_VERSION_1_0 };
// Retrieve extensions using custom function // Retrieve extensions using custom function
std::vector<const char*> extensions = getRequiredExtensions(); std::vector<const char*> extensions = getRequiredExtensions();
// Enable the portability extension and set flags // Enable the portability extension and set flags
extensions.push_back(vk::KHRPortabilityEnumerationExtensionName); extensions.push_back("VK_KHR_portability_enumeration");
#if VK_HEADER_VERSION < 110 extensions.push_back("VK_KHR_get_physical_device_properties2");
extensions.push_back(vk::KHRGetPhysicalDeviceProperties2ExtensionName);
#endif
vk::InstanceCreateInfo createInfo { vk::InstanceCreateInfo createInfo {
.flags = vk::InstanceCreateFlagBits::eEnumeratePortabilityKHR, .flags = vk::InstanceCreateFlagBits::eEnumeratePortabilityKHR,
@ -192,10 +187,13 @@ class VulkanApp {
vk::PhysicalDeviceFeatures deviceFeatures; vk::PhysicalDeviceFeatures deviceFeatures;
#ifdef __APPLE__ #ifdef __APPLE__
// Add the portability subset extension
std::vector<const char*> deviceExtensions = { "VK_KHR_portability_subset" };
vk::DeviceCreateInfo createInfo { .queueCreateInfoCount = static_cast<u32>(queueCreateInfos.size()), vk::DeviceCreateInfo createInfo { .queueCreateInfoCount = static_cast<u32>(queueCreateInfos.size()),
.pQueueCreateInfos = queueCreateInfos.data(), .pQueueCreateInfos = queueCreateInfos.data(),
.enabledExtensionCount = 1, .enabledExtensionCount = static_cast<u32>(deviceExtensions.size()),
.ppEnabledExtensionNames = { vk::KHRPortabilitySubsetExtensionName }, .ppEnabledExtensionNames = deviceExtensions.data(),
.pEnabledFeatures = &deviceFeatures }; .pEnabledFeatures = &deviceFeatures };
#else #else
vk::DeviceCreateInfo createInfo { .queueCreateInfoCount = static_cast<u32>(queueCreateInfos.size()), vk::DeviceCreateInfo createInfo { .queueCreateInfoCount = static_cast<u32>(queueCreateInfos.size()),