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