2016-11-19 44 views

回答

6

OpenGL也沒有「有一個像素緩衝區對象」。什麼OpenGL有內存,又名:buffer objects。緩衝區對象的用途之一是作爲pixel transfer operations的源/目標;當與緩衝對象一起使用時,它們是can execute asynchronously。這樣做通常被稱爲「像素緩衝區對象」,它不是一個特殊的對象。它只是使用OpenGL分配的內存來執行將圖像數據異步複製到緩衝區對象之外的操作。

OpenGL需要一個特殊的系統,因爲它本質上是一個同步API。相比之下,在Vulkan中幾乎沒有是同步的。所以Vulkan不需要一個特殊的系統來完成它。

vkCmdCopyImageToBuffer是Vulkan命令,因爲它以vkCmd開頭。因此,它不會立即執行;這些命令存儲在Vulkan命令緩衝區中,由GPU異步執行。

Vulkan沒有用於執行異步像素副本的特殊系統,因爲Vulkan操作默認爲異步。與OpenGL不同的是,它不會試圖將它隱藏起來。