微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swapchain minImageCount 和 VK_PRESENT_MODE_IMMEDIATE_KHR 如何相互关联?

如何解决Swapchain minImageCount 和 VK_PRESENT_MODE_IMMEDIATE_KHR 如何相互关联?

如果我们按照我的理解分配 error_data,我们有一个缓冲区,并且图像会立即呈现在表面上, 但同时 VkSwapchainCreateInfoKHR.presentMode = VK_PRESENT_MODE_IMMEDIATE_KHR; 在我的 GTX 1070 上。
SwapChainDetails.surfaceCapabilities.minImageCount = 2; 是否意味着缓冲区的最小数量应该是 2 ?
它是如何工作的?

解决方法

他们根本没有关系。您有多少缓冲区与它们的显示方式无关。

立即呈现意味着,当您呈现图像时,它会立即显示。如标准所述:

呈现引擎不会等待垂直消隐期来更新当前图像

如果演示引擎只允许您使用一张交换链图像,那么这意味着获取必须等到图像完成显示。这会使立即演示变得毫无意义。

现在,您可能认为获取这样的图像应该立即发生。但这意味着您可以在演示引擎仍在读取图像时渲染图像,从而导致潜在的损坏。但这不是即时演示的用途。立即呈现不会改变呈现引擎和用户代码之间的所有权动态;它只会改变交换链图像的呈现方式。

写入实际呈现的图像的能力受“共享”呈现模式(VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHRVK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR)的控制。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。