翻譯自蘋果開發(fā)者中心,實際上蘋果官方并沒有第幾課這種說法,只是譯者方便大家按順序閱讀而設(shè),不必過于糾結(jié)。查看原文
Metal中的基本概念
Metal同時為圖像和并行數(shù)據(jù)計算工作提供了獨特的編程語言及接口。它使得用戶可以更加有效率地統(tǒng)一執(zhí)行圖像處理和計算任務(wù)——在不需要使用彼此獨立的API和著色器語言的前提下。
Metal框架提供如下功能:
-
低占用的接口。Metal的一個設(shè)計目標(biāo)就是淘汰諸如含蓄狀態(tài)檢查之類的“隱式”性能瓶頸。用戶可以通過GPU高效多線程的異步行為并行地控制命令緩存區(qū)的創(chuàng)建和提交。
想要了解更多有關(guān)Metal的命令提交模塊,參考命令的組織和執(zhí)行模型。 -
內(nèi)存和資源管理。在Metal框架中使用緩沖區(qū)和紋理對象便意味著要申請使用顯存。紋理對象具有特定的像素格式,并且被用于紋理圖像和附掛物中。
想要了解更多有關(guān)Metal內(nèi)存對象的內(nèi)容,參考資源對象:緩沖區(qū)和紋理。 -
對圖像和計算操作的統(tǒng)一支持。Metal對圖像和計算操作使用相同的數(shù)據(jù)結(jié)構(gòu)和資源(如緩沖區(qū)、紋理和指令隊列)。此外,Metal著色器語言同時支持圖像和計算函數(shù)。Metal框架可以讓資源在運行時接口、圖像著色器和計算函數(shù)之間共享。
想要獲知更多使用Metal來渲染圖像或并行數(shù)據(jù)運算操作的知識,參考 圖像渲染:渲染指令編碼及并行數(shù)據(jù)計算處理:計算指令編碼。 -
預(yù)編譯著色器。Metal的著色器可以在編譯期間獨立于應(yīng)用代碼被編譯,在之后程序運行的時候被加載進(jìn)去。這種工作流可以幫助寫出更好的代碼,對著色器代碼的調(diào)試也更加容易。(Metal也支持在運行期間對著色器代碼進(jìn)行編譯。)
要想了解更多在Metal框架里使用Metal著色器的知識,請參考方法和庫。如果想了解更多關(guān)于Metal著色器語言本身的細(xì)節(jié),參考Metal著色器語言指南。
Metal應(yīng)用程序不能在后臺執(zhí)行Metal指令,意圖進(jìn)行這種行為的Metal應(yīng)用程序?qū)⒈粡?qiáng)制關(guān)閉。