Open
Description
Environment
- macOS on M1
- Vulkan SDK 1.3.280
- GLFW
- MoltenVK
- Xcode project
Issue
Getting error: Cocoa: Vulkan instance missing VK_EXT_metal_surface extension
during window surface creation, despite the extension being properly enabled.
RendererEngine/Tetragrama/EditorWindow.cpp
Lines 415 to 425 in 09456d4
What I've Tried
- Enabled
VK_EXT_metal_surface
extension - confirmed present in extension list - Added required macOS-specific extensions:
- VK_KHR_portability_enumeration
- VK_KHR_get_physical_device_properties2
- Set proper instance creation flags for macOS
- Verified library linking and loading order
- Removed potential conflict with
VK_MVK_macos_surface
Output (with extension list printed)
❯ ./Result.Darwin.x64.Debug/Tetragrama/Debug/zEngineEditor --projectConfigFile "/Users/Programming/GitRepo/RendererEngine/test/projectConfig.json"
Thread 0, Frame 0:
vkCreateInstance(pCreateInfo, pAllocator, pInstance) returns VkResult VK_SUCCESS (0):
pCreateInfo: const VkInstanceCreateInfo* = 0x16d161c40:
sType: VkStructureType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO (1)
pNext: const void* = NULL
flags: VkInstanceCreateFlags = 1 (VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR)
pApplicationInfo: const VkApplicationInfo* = 0x16d165ed0:
sType: VkStructureType = VK_STRUCTURE_TYPE_APPLICATION_INFO (0)
pNext: const void* = NULL
pApplicationName: const char* = "Tetragrama"
applicationVersion: uint32_t = 1
pEngineName: const char* = "ZEngine"
engineVersion: uint32_t = 1
apiVersion: uint32_t = 4206592
enabledLayerCount: uint32_t = 4
ppEnabledLayerNames: const char* const* = 0x6000031b92a0
ppEnabledLayerNames[0]: const char* const = "VK_LAYER_LUNARG_screenshot"
ppEnabledLayerNames[1]: const char* const = "VK_LAYER_KHRONOS_validation"
ppEnabledLayerNames[2]: const char* const = "VK_LAYER_LUNARG_api_dump"
ppEnabledLayerNames[3]: const char* const = "VK_LAYER_KHRONOS_synchronization2"
enabledExtensionCount: uint32_t = 6
ppEnabledExtensionNames: const char* const* = 0x6000024b0800
ppEnabledExtensionNames[0]: const char* const = "VK_EXT_debug_report"
ppEnabledExtensionNames[1]: const char* const = "VK_EXT_debug_utils"
ppEnabledExtensionNames[2]: const char* const = "VK_KHR_surface"
ppEnabledExtensionNames[3]: const char* const = "VK_EXT_metal_surface"
ppEnabledExtensionNames[4]: const char* const = "VK_KHR_portability_enumeration"
ppEnabledExtensionNames[5]: const char* const = "VK_KHR_get_physical_device_properties2"
pNext: const void* = NULL
pAllocator: const VkAllocationCallbacks* = NULL
pInstance: VkInstance* = 0x131813200
Thread 0, Frame 0:
vkEnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices) returns VkResult VK_SUCCESS (0):
instance: VkInstance = 0x131813200
pPhysicalDeviceCount: uint32_t* = 1
pPhysicalDevices: VkPhysicalDevice* = NULL
Thread 0, Frame 0:
vkEnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices) returns VkResult VK_SUCCESS (0):
instance: VkInstance = 0x131813200
pPhysicalDeviceCount: uint32_t* = 1
pPhysicalDevices: VkPhysicalDevice* = 0x6000033bc560
pPhysicalDevices[0]: VkPhysicalDevice = 0x6000031e0000
Thread 0, Frame 0:
vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) returns void:
physicalDevice: VkPhysicalDevice = 0x6000031e0000
pQueueFamilyPropertyCount: uint32_t* = 4
pQueueFamilyProperties: VkQueueFamilyProperties* = NULL
Thread 0, Frame 0:
vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties) returns void:
physicalDevice: VkPhysicalDevice = 0x6000031e0000
pQueueFamilyPropertyCount: uint32_t* = 4
pQueueFamilyProperties: VkQueueFamilyProperties* = 0x6000015aaa00
pQueueFamilyProperties[0]: VkQueueFamilyProperties = 0x6000015aaa00:
queueFlags: VkQueueFlags = 7 (VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT | VK_QUEUE_TRANSFER_BIT)
queueCount: uint32_t = 1
timestampValidBits: uint32_t = 64
minImageTransferGranularity: VkExtent3D = 0x6000015aaa0c:
width: uint32_t = 1
height: uint32_t = 1
depth: uint32_t = 1
pQueueFamilyProperties[1]: VkQueueFamilyProperties = 0x6000015aaa18:
queueFlags: VkQueueFlags = 7 (VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT | VK_QUEUE_TRANSFER_BIT)
queueCount: uint32_t = 1
timestampValidBits: uint32_t = 64
minImageTransferGranularity: VkExtent3D = 0x6000015aaa24:
width: uint32_t = 1
height: uint32_t = 1
depth: uint32_t = 1
pQueueFamilyProperties[2]: VkQueueFamilyProperties = 0x6000015aaa30:
queueFlags: VkQueueFlags = 7 (VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT | VK_QUEUE_TRANSFER_BIT)
queueCount: uint32_t = 1
timestampValidBits: uint32_t = 64
minImageTransferGranularity: VkExtent3D = 0x6000015aaa3c:
width: uint32_t = 1
height: uint32_t = 1
depth: uint32_t = 1
pQueueFamilyProperties[3]: VkQueueFamilyProperties = 0x6000015aaa48:
queueFlags: VkQueueFlags = 7 (VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT | VK_QUEUE_TRANSFER_BIT)
queueCount: uint32_t = 1
timestampValidBits: uint32_t = 64
minImageTransferGranularity: VkExtent3D = 0x6000015aaa54:
width: uint32_t = 1
height: uint32_t = 1
depth: uint32_t = 1
Active instance extensions:
VK_KHR_device_group_creation
VK_KHR_external_fence_capabilities
VK_KHR_external_memory_capabilities
VK_KHR_external_semaphore_capabilities
VK_KHR_get_physical_device_properties2
VK_KHR_get_surface_capabilities2
VK_KHR_surface
VK_EXT_debug_report
VK_EXT_debug_utils
VK_EXT_headless_surface
VK_EXT_layer_settings
VK_EXT_metal_surface
VK_EXT_surface_maintenance1
VK_EXT_swapchain_colorspace
VK_MVK_macos_surface
VK_KHR_portability_enumeration
VK_LUNARG_direct_driver_loading
Thread 0, Frame 0:
vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger) returns VkResult VK_SUCCESS (0):
instance: VkInstance = 0x131813200
pCreateInfo: const VkDebugUtilsMessengerCreateInfoEXT* = 0x16d165b68:
sType: VkStructureType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT (1000128004)
pNext: const void* = NULL
flags: VkDebugUtilsMessengerCreateFlagsEXT = 0
messageSeverity: VkDebugUtilsMessageSeverityFlagsEXT = 4369 (VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT)
messageType: VkDebugUtilsMessageTypeFlagsEXT = 7 (VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT)
pfnUserCallback: PFN_vkDebugUtilsMessengerCallbackEXT = 1
pUserData: void* = NULL
pAllocator: const VkAllocationCallbacks* = NULL
pMessenger: VkDebugUtilsMessengerEXT* = 0x6000033bc650
Metadata
Metadata
Assignees
Projects
Status
In Progress