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