Vulkan 簡介
Vulkan是一個用于圖形和計算設(shè)備的編程接口。Vulkan設(shè)備通常由一個處理器和一定數(shù)量的固定功能硬件模塊組成,用于加速圖形和計算操作。通常,設(shè)備中的處理器是高度線程化的,所以在極大程度上Vulkan里的計算模型是基于并行計算的。Vulkan還可以訪問運行應(yīng)用程序的主處理器上的共享或非共享內(nèi)存。Vulkan也會給開發(fā)人員提供這個內(nèi)存。
Vulkan是個顯式的API,也就是說,幾乎所有的事情你都需要親自負責。驅(qū)動程序是一個軟件,用于接收API調(diào)用傳遞過來的指令和數(shù)據(jù),并將它們進行轉(zhuǎn)換,使得硬件可以理解。在老的API(例如OpenGL)里,驅(qū)動程序會跟蹤大量對象的狀態(tài),自動管理內(nèi)存和同步,以及在程序運行時檢查錯誤。這對開發(fā)人員非常友好,但是在應(yīng)用程序經(jīng)過調(diào)試并且正確運行時,會消耗寶貴的CPU性能。Vulkan解決這個問題的方式是,將狀態(tài)跟蹤、同步和內(nèi)存管理交給了應(yīng)用程序開發(fā)人員,同時將正確性檢查交給各個層進行代理,而要想使用這些層必須手動啟用。這些層在正常情況下不會在應(yīng)用程序里執(zhí)行。
由于這些原因,Vulkan難以使用,并且在一定程度上很不穩(wěn)定。你需要做大量的工作來保證Vulkan運行正常,并且API的錯誤使用經(jīng)常會導(dǎo)致圖形錯亂甚至程序崩潰,而在傳統(tǒng)的圖形API里你通常會提前收到用于幫助解決問題的錯誤消息。以此為代價,Vulkan提供了對設(shè)備的更多控制、清晰的線程模型以及比傳統(tǒng)API高得多的性能。
另外,Vulkan不僅僅被設(shè)計成圖形API,它還用作異構(gòu)設(shè)備,例如圖形處理單元(Graphics Processing Unit,GPU)、數(shù)字信號處理器(Digital Signal Processor,DSP)和固定功能硬件。功能可以粗略地劃分為幾類。Vulkan的當前版本定義了傳輸類別——用于復(fù)制數(shù)據(jù);計算類別——用于運行著色器進行計算工作;圖形類別——包括光柵化、圖元裝配、混合、深度和模板測試,以及圖形程序員所熟悉的其他功能。
Vulkan設(shè)備對每個分類的支持都是可選的,甚至可以根本不支持圖形。因此,將圖像顯示到適配器設(shè)備上的API(這個過程叫作展示)不但是可選擇的功能,而且是擴展功能,而不是核心API。
Vulkan 特征
同 OpenGL? 一樣,Vulkan? 也由 Khronos 集團開發(fā)。它是 AMD Mantle 的后續(xù)版本,繼承了前者強大的低開銷架構(gòu),使軟件開發(fā)人員能夠全面獲取 Radeon? GPU 與多核 CPU 的性能、效率和功能。
相對于 OpenGL,Vulkan? 大幅降低了CPU 在提供重要特性、性能和影像質(zhì)量時的“API 開銷” (CPU 在分析游戲的硬件需求時所執(zhí)行的后臺工作),而且可以使用通常通過 OpenGL 無法訪問的 GPU 硬件特性。
獨特的跨 OS 支持
Vulkan? 能夠支持深入硬件底層的控制,為 Windows? 7、Windows? 8.1、Windows? 10 和 Linux? 帶來更快的性能和更高的影像質(zhì)量。Vulkan?API 還提供超高的 OS 兼容性、渲染特性和硬件效率。
自動兼容 GCN 架構(gòu)
目前只有基于GCN架構(gòu) 的Radeon?顯卡擁有強大的“異步計算”功能,使顯卡得以并行處理3D幾何圖形與計算工作量。例如,當游戲需要同時計算復(fù)雜照明與渲染人物時,這種功能就找到了用武之地。這些任務(wù)并不需要在Radeon? 顯卡上串行運行,因此可以節(jié)約時間、提升整體幀速率?,F(xiàn)在,設(shè)計Vulkan應(yīng)用的游戲開發(fā)者可以在所有近期版本的Windows和Linux系統(tǒng)中利用這種獨特硬件特性。
-
接口
+關(guān)注
關(guān)注
33文章
8611瀏覽量
151252 -
API
+關(guān)注
關(guān)注
2文章
1502瀏覽量
62080
發(fā)布評論請先 登錄
相關(guān)推薦
評論