为什么我不能指定交换链的确切图像数量,但只能指定minImageCount?

时间:2018-04-18 07:19:01

标签: vulkan

VkSwapchainCreateInfoKHR的文档让我感到困惑:

  

minImageCount是最小的可呈现图像数量   应用需求。实现将创建交换链   至少有那么多图像,否则它将无法创建   swapchain。

这会导致一些问题,即我无法在代码中使用固定大小的数组,因为我不知道运行时的确切数量。为什么做出这个决定并且有没有办法强制要求的行为?

1 个答案:

答案 0 :(得分:2)

这种方法允许硬件供应商/驱动程序开发人员以更灵活的方式实现表示引擎。演示文稿取决于操作系统,每个操作系统都有自己的程序,负责在屏幕上显示图像。有依赖于操作系统的扩展允许可呈现的表面创建,但Vulkan本身是一个多平台API,VkSwapchainKHR对象也适用于所有操作系统。此外,由驱动程序创建的交换链图像的数量不仅取决于OS,还取决于在交换链创建期间指定的其他参数(例如,当前模式)。因此,有必要在管理可呈现图像的数量方面具有这种灵活性。