【发布时间】:2020-12-04 21:16:48
【问题描述】:
VkInstance 是程序的一个实例
VkPhysicalDevice 表示物理设备。因此,如果我有一个 Intel HD Graphics 和一个 GTX 1660,那么每个都有一个 VkPhysicalDevice
QueueFamily,现在,将是一个有助于从 GPU 发送和接收东西的队列。队列有很多,一个用于从内存中传输数据,另一个用于处理计算命令等。
VkDevice 是与队列族关联的 VkPhysicalDevice。对于同一个 VkPhysicalDevice,我们可以有多个 VkDevices 是有道理的。我们可能会同时将 GPU 用于很多事情,比如解码视频和渲染 3D 场景。我想这就是它的用途。
我们需要一个VkSurfaceKHR 来显示内容,因为 Vulkan 与设备无关,所以我们需要向它传递一个窗口是有意义的。
现在是 SwapChain 的概念。我无法将它与 Queue(来自 QueueFamily)区分开来。队列不是从 GPU 发送和接收图像的结构吗?为什么不简单地使用队列在VkSurfaceKHR 上呈现图像?
还有帧缓冲区的概念。对我来说,帧缓冲区是显示在屏幕上的渲染图像,所以它是SwapChain 的图像。
【问题讨论】: