definition - Vulkan 术语中的 "presentation engine"到底是什么?

标签 definition vulkan

根据this Khronos presentation ,“演示引擎”是:

The platform’s compositor or display engine


根据specs :

The presentation engine is an abstraction for the platform’s compositor or display engine.

The presentation engine may be synchronous or asynchronous with respect to the application and/or logical device.

Some implementations may use the device’s graphics queue or dedicated presentation hardware to perform presentation.


这两个来源都表明,在大多数情况下,表示引擎是平台的软件实体(“抽象”)(它本身就是一个软件层:OS+window 系统)。
谷歌搜索“窗口合成器显示引擎”为我提供了这个维基百科结果,这似乎相关:https://en.wikipedia.org/wiki/Compositing_window_manager
那基本上是关于“演示引擎”的文章吗?例如,对于 Windows,表示引擎可以是 Desktop Windows Manager,对于 GNU/Linux 系统,它可以是 Compiz,等等?还是“演示引擎”是合成管理器和其他一些东西的组合?

最佳答案

Vulkan 中的演示引擎是一个外部组件,它管理和接受您在 Vulkan 中制作的渲染图像(大概),以便向用户演示。

从另一个 POV,它是界面给你的任何东西。这是vkAcquireNextImageKHR , vkQueuePresentKHR等,在 VK_KHR_swapchain 的情况下延期。可以进行其他扩展,因为出现了根本不同的表示引擎(例如 VK_KHR_display_swapchain )。
VK_KHR_swapchain , 需要 VK_KHR_surface ,专门用于 VK_KHR_win32_surface , VK_KHR_xlib_surface等等。所以你可以打赌那些是驱动程序在下面交谈的 API。 IE。它与 Win32 API(又名 Windows API)对话,可能与 GDI 组件(但可能与 DXGI 交换链)对话。在 Linux 上 + VK_KHR_xlib_surface ,它将与 X 服务器对话。等等......这不可避免地必须落入窗口管理器(如 DWM 或 Compiz)的手中。

关于definition - Vulkan 术语中的 "presentation engine"到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51451808/

相关文章:

c++ - "multiple definition of..."模板函数的完全特化错误

c++ - 在类模板中定义一个静态数组

cuda - 在 CUDA 中,什么是内存合并,它是如何实现的?

C++ 类原型(prototype)无法正常工作?

c++ - 在结构中使用 Vulkan 唯一句柄会导致 "implicitly deleted"错误

Vulkan 无设备内存报告主机可见

c++ - 为什么允许在多个 cpp 文件中重新定义类

c++ - 创建 Vulkan 实例导致访问冲突

c++ - 如何在 Vulkan 中获取下一帧呈现时间

c++ - 在 renderPass 中更新 VkDescriptorSet