关于如何处理vulkan queue family的问题
Questions about how to handle vulkan queue families
我正在听这篇文章 https://vulkan-tutorial.com/Drawing_a_triangle/Presentation/Window_surface
当我读到这篇文章时,我有一些问题。关于队列系列
下面的代码是
检查是否有能力向您的 window 表面呈现的队列系列
VkBool32 presentSupport = false;
vkGetPhysicalDeviceSurfaceSupportKHR(device, i, surface, &presentSupport);
if (presentSupport) {
indices.presentFamily = i;
}
本文有这句话
Note that it's very likely that these end up being the same queue family after all, but throughout the program we will treat them as if they were separate queues for a uniform approach
- 为什么将它们视为统一方法的独立队列?
you could add logic to explicitly prefer a physical device that supports drawing and presentation in the same queue for improved performance.
- 添加逻辑以明确首选支持同一队列中的绘图和演示的物理设备。为什么要提高性能?
why treat them as if they were separate queues for a uniform approach?
教程的重点是指导,通常使用尽可能清晰直接的代码。为特殊情况添加一堆逻辑只会混淆示例代码。这对于本系列的早期教程尤其重要。
why improve performance ?
假设您可以使用不同的同步选项或者不添加障碍来转移交换链图像的所有权,如果您知道您将呈现在与渲染图像相同的队列中。
但这可能不是什么大问题。
- why treat them as if they were separate queues for a uniform approach?
因为 Vulkan API 在技术上允许这种可能性。虽然很晦涩
我认为出于教程的目的,您可以检查 GRAPHICS
队列系列是否支持存在,否则终止。但这是教程作者的选择。问他,不是一般社区。
- add logic to explicitly prefer a physical device that supports drawing and presentation in the same queue. why improve performance?
为什么不提高性能? :p
两个队列系列意味着 VkSemaphore
和队列所有权转移或 VK_SHARING_MODE_CONCURRENT
。单一队列不需要那个,所以性能可能稍微好一些。
再一次,这只是一个理论上的讨论,因为几乎每个驱动程序都支持 GRAPHICS
队列系列。而驱动程序将有两个 GRAPHICS
队列系列,其中只有一个支持演示文稿的可能性更大 obscure\theoretical。
我正在听这篇文章 https://vulkan-tutorial.com/Drawing_a_triangle/Presentation/Window_surface
当我读到这篇文章时,我有一些问题。关于队列系列
下面的代码是
检查是否有能力向您的 window 表面呈现的队列系列
VkBool32 presentSupport = false;
vkGetPhysicalDeviceSurfaceSupportKHR(device, i, surface, &presentSupport);
if (presentSupport) {
indices.presentFamily = i;
}
本文有这句话
Note that it's very likely that these end up being the same queue family after all, but throughout the program we will treat them as if they were separate queues for a uniform approach
- 为什么将它们视为统一方法的独立队列?
you could add logic to explicitly prefer a physical device that supports drawing and presentation in the same queue for improved performance.
- 添加逻辑以明确首选支持同一队列中的绘图和演示的物理设备。为什么要提高性能?
why treat them as if they were separate queues for a uniform approach?
教程的重点是指导,通常使用尽可能清晰直接的代码。为特殊情况添加一堆逻辑只会混淆示例代码。这对于本系列的早期教程尤其重要。
why improve performance ?
假设您可以使用不同的同步选项或者不添加障碍来转移交换链图像的所有权,如果您知道您将呈现在与渲染图像相同的队列中。
但这可能不是什么大问题。
- why treat them as if they were separate queues for a uniform approach?
因为 Vulkan API 在技术上允许这种可能性。虽然很晦涩
我认为出于教程的目的,您可以检查 GRAPHICS
队列系列是否支持存在,否则终止。但这是教程作者的选择。问他,不是一般社区。
- add logic to explicitly prefer a physical device that supports drawing and presentation in the same queue. why improve performance?
为什么不提高性能? :p
两个队列系列意味着 VkSemaphore
和队列所有权转移或 VK_SHARING_MODE_CONCURRENT
。单一队列不需要那个,所以性能可能稍微好一些。
再一次,这只是一个理论上的讨论,因为几乎每个驱动程序都支持 GRAPHICS
队列系列。而驱动程序将有两个 GRAPHICS
队列系列,其中只有一个支持演示文稿的可能性更大 obscure\theoretical。