内容提要
Vulkan®工作组发布了VK_KHR_pipeline_binary扩展,允许应用程序直接管理管道缓存,绕过VkPipelineCache机制。该扩展提供了对二进制数据和缓存所需信息的访问,并与应用程序自己的缓存机制集成。VK_KHR_pipeline_binary扩展为高级需求提供了解决方案,但不需要这些功能的应用程序可以继续使用VkPipelineCache对象。该扩展还提供了一些属性,如pipelineBinaryInternalCache和pipelineBinaryPrefersInternalCache,以优化内部缓存的使用。
Q&A
VK_KHR_pipeline_binary扩展的主要功能是什么?
VK_KHR_pipeline_binary扩展允许应用程序直接管理管道缓存,绕过VkPipelineCache机制,并提供对二进制数据和缓存信息的访问。
为什么VK_KHR_pipeline_binary扩展被引入?
该扩展是为了提供更高级的控制权,解决VkPipelineCache对象在缓存大小和修剪受限情况下的使用难题。
应用程序如何与VK_KHR_pipeline_binary扩展集成自己的缓存机制?
应用程序可以使用vkCreatePipelineBinariesKHR()和vkGetPipelineBinaryDataKHR()管理生成的二进制blob,并通过vkGetPipelineKeyKHR()生成与缓存关联的密钥。
VK_KHR_pipeline_binary扩展提供了哪些优化属性?
扩展提供了pipelineBinaryInternalCache和pipelineBinaryPrefersInternalCache等属性,以优化内部缓存的使用。
VK_KHR_pipeline_binary扩展如何提高应用程序性能?
该扩展允许应用程序异步创建二进制对象,避免管道创建过程中的微卡顿,并允许在不同管道之间共享blob,从而提高性能。
使用VK_KHR_pipeline_binary扩展的应用程序是否仍然可以使用VkPipelineCache?
是的,不需要新扩展高级功能的应用程序可以继续使用VkPipelineCache对象,以实现简单性和优化的实现。