簡體   English   中英

關於如何處理 vulkan 隊列家族的問題

[英]Questions about how to handle vulkan queue families

我正在關注這個 tut https://vulkan-tutorial.com/Drawing_a_triangle/Presentation/Window_surface

當我閱讀本文時,我有一些問題。 關於隊列家庭

下面的代碼是

檢查具有呈現給您的窗口表面的能力的隊列系列

VkBool32 presentSupport = false;
vkGetPhysicalDeviceSurfaceSupportKHR(device, i, surface, &presentSupport);

if (presentSupport) {
    indices.presentFamily = i;
}

這篇文章有這句話。

請注意,這些最終很可能最終成為同一個隊列系列,但在整個程序中,我們會將它們視為單獨的隊列以實現統一的方法

  1. 為什么將它們視為統一方法的單獨隊列?

您可以添加邏輯以明確首選支持同一隊列中的繪圖和演示的物理設備,以提高性能。

  1. 添加邏輯以明確首選支持同一隊列中的繪圖和演示的物理設備。 為什么要提高性能?

為什么將它們視為統一方法的單獨隊列?

教程的重點是指導,通常使用盡可能清晰和直接的代碼。 為特殊情況添加一堆邏輯,該場景只會使示例代碼變得模糊不清。 這對於本系列的早期教程尤其重要。

為什么要提高性能?

如果您知道您將與渲染圖像出現在同一隊列中,那么您大概可以使用不同的同步選項或不為轉移交換鏈圖像的所有權添加障礙。

但這可能不會有什么大不了的。

  1. 為什么將它們視為統一方法的單獨隊列?

因為 Vulkan API 在技術上允許這種可能性。 雖然它很晦澀。

我認為出於教程的目的,您可以檢查GRAPHICS隊列系列是否支持存在,否則就終止。 但這是教程作者的選擇。 問他,而不是一般社區。

  1. 添加邏輯以明確首選支持同一隊列中的繪圖和演示的物理設備。 為什么要提高性能?

為什么不提高性能? :p

兩個隊列家族意味着一個VkSemaphore和隊列所有權轉移或VK_SHARING_MODE_CONCURRENT 單一隊列不需要那個,所以性能可能稍微好一點。

再說一次,這只是理論上的討論,因為幾乎每個驅動程序都支持GRAPHICS隊列系列。 將有兩個GRAPHICS隊列系列的驅動程序,其中只有一個支持演示文稿是更加模糊的\\理論上的可能性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM