【发布时间】:2020-05-13 00:31:40
【问题描述】:
vkCreateDevice 验证失败,因为包含的扩展的依赖项也未包含在内。但是,此依赖项已升级到 Vulkan 1.1,这就是我正在使用的版本。如果我尝试包含依赖项,系统会抱怨扩展程序不可用,这是没有意义的。我想了解这种失败是否合法。
我正在尝试包含外部内存 Android 硬件缓冲区扩展:https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer。我在设备扩展名中包含以下元素:
- VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME
- VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME
- VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME
我从验证中得到以下错误:
ERROR: (INSTANCE 0x0) [Validation] [ VUID-vkCreateDevice-ppEnabledExtensionNames-01387 ] Object: VK_NULL_HANDLE (Type = 1) | Missing extension required by the device extension VK_ANDROID_external_memory_android_hardware_buffer: VK_KHR_external_memory. The Vulkan spec states: All required extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list. (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkCreateDevice-ppEnabledExtensionNames-01387)
ERROR: (INSTANCE 0x0) [Validation] [ VUID-vkCreateDevice-ppEnabledExtensionNames-01387 ] Object: VK_NULL_HANDLE (Type = 1) | Missing extensions required by the device extension VK_KHR_sampler_ycbcr_conversion: VK_KHR_maintenance1, VK_KHR_bind_memory2, VK_KHR_get_memory_requirements2, VK_KHR_get_physical_device_properties2. The Vulkan spec states: All required extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list. (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkCreateDevice-ppEnabledExtensionNames-01387)
ERROR: (INSTANCE 0x0) [Validation] [ VUID-vkCreateDevice-ppEnabledExtensionNames-01387 ] Object: VK_NULL_HANDLE (Type = 1) | Missing extension required by the device extension VK_EXT_queue_family_foreign: VK_KHR_external_memory. The Vulkan spec states: All required extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list. (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-vkCreateDevice-ppEnabledExtensionNames-01387)
VK_KHR_external_memory 已升级到 1.1,当我查询 vkEnumerateInstanceVersion 时,我得到一个 1.1 版本。如果我添加 VK_KHR_external_memory 它反过来请求 VK_KHR_external_memory_capabilities,当我添加 VK_KHR_external_memory_capabilities 系统抱怨扩展不可用,虽然它也被提升到 1.1。
【问题讨论】:
-
好点@NicolBolas。将我的评论移至答案部分。
标签: vulkan