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