macOSのVulkanで"vk::createInstanceUnique: ErrorIncompatibleDriver"というエラーが出る (Vulkan SDK 1.3.216.0以降)

2 min 258 words
Suzuki Shun Placeholder text describing the default author's avatar.

Categories: posts

macのVulkan (というかMoltenVK) でvk::createInstanceUniqueを実行時にErrorIncompatibleDriverというエラーが出るようになった. (vulkan.hppを使用)

そういえば, 古いバージョンのSDKでは普通に動いていたはずなのでリリースノートをあさると, それらしきことが書いてあった.

This release of the Vulkan Loader for macOS will require the addition of the VK_KHR_portability_enumaration extension. This is easily added, and without it, you will not see a valid driver when using MoltenVK. Details and example code can be found in the macOS Getting Started Guide.

というわけで, macOS Getting Started Guideに従って,

  • vk::DeviceCreateInfoで指定するDevice extensionsにVK_KHR_portability_subsetを追加
  • vk::InstanceCreateInfoで指定するInstance extensionsにVK_KHR_portability_enumerationを追加
  • vk::InstanceCreateInfoで指定するInstance flagにvk::InstanceCreateFlagBits::eEnumeratePortabilityKHRを追加

以上三点で治った.

ちなみに, Validation layersを有効にすると, 一番上エラーに関しては警告を出してくれたが, 下二つに関してはとくに何も表示されなかった.