diff options
| author | Clément Sibille <clements@lisible.xyz> | 2025-03-15 18:54:37 +0100 | 
|---|---|---|
| committer | Clément Sibille <clements@lisible.xyz> | 2025-03-15 18:54:37 +0100 | 
| commit | fda04f7e30149c493c202d2bdb0668d7147f85ea (patch) | |
| tree | adc6c4c91747f2b5400d9cd5ef4a302fc088d26e | |
| parent | 1adcfe6082aba2bf993319691e677082287090e5 (diff) | |
| -rw-r--r-- | meson.build | 14 | ||||
| -rw-r--r-- | src/main.c | 12 | 
2 files changed, 20 insertions, 6 deletions
diff --git a/meson.build b/meson.build index ebfbfff..931a5e4 100644 --- a/meson.build +++ b/meson.build @@ -2,10 +2,22 @@ project('vkguide', 'c', default_options: ['c_std=c17', 'warning_level=3'])  cc = meson.get_compiler('c')  sdl3_dep = dependency('SDL3') + +if host_machine.system() == 'darwin' +moltenvk_library_path = '/Users/clements/dev/VulkanSDK/1.4.309.0/macOS/lib' +moltenvk_include_path = '/Users/clements/dev/VulkanSDK/1.4.309.0/macOS/include' +vulkan_dep = declare_dependency( +  link_args: ['-L' + moltenvk_library_path, '-lvulkan'], +  include_directories: include_directories(moltenvk_include_path) +) +else  vulkan_dep = dependency('vulkan') +endif  executable(    'vkguide',    ['src/main.c'], -  dependencies: [sdl3_dep, vulkan_dep] +  build_rpath: moltenvk_library_path, +  install_rpath: moltenvk_library_path, +  dependencies: [sdl3_dep, vulkan_dep],  ) @@ -64,7 +64,7 @@ bool vulkan_renderer_create_instance(struct vulkan_renderer *renderer) {        .applicationVersion = VK_MAKE_VERSION(1, 0, 0),        .pEngineName = "None",        .engineVersion = VK_MAKE_VERSION(1, 0, 0), -      .apiVersion = VK_API_VERSION_1_0}; +      .apiVersion = VK_API_VERSION_1_2};    const char *requested_extensions[MAX_EXTENSION_COUNT] = {0};    uint32_t requested_extension_count = 0; @@ -153,7 +153,8 @@ bool vulkan_renderer_create_instance(struct vulkan_renderer *renderer) {        .enabledExtensionCount = requested_extension_count,        .ppEnabledExtensionNames = requested_extensions,        .enabledLayerCount = enabled_layer_count, -      .ppEnabledLayerNames = enabled_layers}; +      .ppEnabledLayerNames = enabled_layers, +      .flags = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR};    if (renderer->enable_validation_layers) {      instance_create_info.pNext =          (VkDebugUtilsMessengerCreateInfoEXT *)&debug_create_info; @@ -301,8 +302,8 @@ bool device_supports_requested_extensions(VkPhysicalDevice device,    return true;  } -#define MAX_SWAPCHAIN_SURFACE_FORMAT_COUNT 10 -#define MAX_SWAPCHAIN_SURFACE_PRESENT_MODE_COUNT 10 +#define MAX_SWAPCHAIN_SURFACE_FORMAT_COUNT 64 +#define MAX_SWAPCHAIN_SURFACE_PRESENT_MODE_COUNT 64  struct swapchain_support_details {    VkSurfaceCapabilitiesKHR capabilities; @@ -358,7 +359,8 @@ bool is_device_suitable(VkPhysicalDevice device, VkSurfaceKHR surface,           extensions_supported && swapchain_adequate;  } -static const char *required_extensions[] = {VK_KHR_SWAPCHAIN_EXTENSION_NAME}; +static const char *required_extensions[] = {VK_KHR_SWAPCHAIN_EXTENSION_NAME, +                                            "VK_KHR_portability_subset"};  static uint32_t required_extension_count =      sizeof(required_extensions) / sizeof(const char *);  | 
