Vulkan 交换链对 window 系统默认帧缓冲区的作用
What Vulkan swapchain does to the window system default framebuffer
我对 vulkan 表面及其与交换链和 window 系统的关系几乎没有混淆。据我了解,VkSurface 是 window 的抽象,而 VkSwapchain 是我们可以在此 window 上呈现的帧缓冲区集合。但就我而言,X11 window 系统会在创建 window 的同时创建默认帧缓冲区。那么当我们创建交换链时这个默认帧缓冲区会发生什么?它包含在交换链中还是已删除?或者也许交换链是 window 系统已经创建的帧缓冲区的包装器?
IIRC 没有“默认帧缓冲区”。交换链只创建您要求的像素图数量,并且对于 Present X 扩展,它类似于 Vulkan 对其进行抽象的方式。你随意展示它们中的任何一个,当图像变得“空闲”并且你可以再次使用时,X 会给你一个事件。您可以在 mesa driver source code.
中查找这些内容
我对 vulkan 表面及其与交换链和 window 系统的关系几乎没有混淆。据我了解,VkSurface 是 window 的抽象,而 VkSwapchain 是我们可以在此 window 上呈现的帧缓冲区集合。但就我而言,X11 window 系统会在创建 window 的同时创建默认帧缓冲区。那么当我们创建交换链时这个默认帧缓冲区会发生什么?它包含在交换链中还是已删除?或者也许交换链是 window 系统已经创建的帧缓冲区的包装器?
IIRC 没有“默认帧缓冲区”。交换链只创建您要求的像素图数量,并且对于 Present X 扩展,它类似于 Vulkan 对其进行抽象的方式。你随意展示它们中的任何一个,当图像变得“空闲”并且你可以再次使用时,X 会给你一个事件。您可以在 mesa driver source code.
中查找这些内容