当我在调用 vkGetPhysicalDeviceFeatures 时给出要填写的扩展结构的指针时,rayTracingPipeline 标志为 1,这意味着它应该被支持,并且 VkPhysicalDeviceRayTracingPipelineFeaturesKHR 中的所有标志都设置为 1。但是,当我创建逻辑设备时,出现验证错误:
pCreateInfo->pNext 包含指向 VkPhysicalDeviceRayTracingPipelineFeaturesKHR 的指针,但是在创建 VkDevice 时,父扩展(VK_KHR_ray_tracing_pipeline)未包含在 ppEnabledExtensionNames 中。
公平地说,听起来我必须在创建逻辑设备时在启用的扩展列表中启用 VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME。所以我这样做了,但结果却出现了:
Vulkan 验证层回调:loader_validate_device_extensions:所选物理设备或启用的层不支持设备扩展 VK_KHR_ray_tracing_pipeline。
Vulkan 验证层回调:vkCreateDevice:无法验证列表中的扩展
当我使用 vkEnumerateDeviceExtensionProperties 检查扩展名时,它不在列表中。我正在使用 Radeon RX570。