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