關于Metal編程指南
Metal框架支持GPU加速的高級3D圖形渲染和數據并行計算工作負載。Metal提供了一個現代化和流線型的API,用于對圖形和計算命令的組織,處理和提交進行細粒度,低級別的控制,以及管理這些命令的相關數據和資源。Metal的主要目標是最小化執行GPU工作負載所產生的CPU開銷。
前言
本文檔描述了Metal的基本概念:命令提交模型,內存管理模型,以及獨立編譯的代碼用于圖形著色器和數據并行計算功能。該文檔然后詳細介紹如何使用Metal API編寫應用程序。
以下章節可以找到更多細節:
- Metal概念簡要介紹了Metal的主要特點。
- 命令組織和執行模型說明如何創建和提交命令到GPU執行。
- 資源對象:緩沖區和紋理討論了設備內存的管理,包括表示GPU內存分配的緩沖區和紋理對象。
- 功能和庫描述了Metal著色語言代碼如何在Metal應用程序中顯示,以及Metal著色語言代碼如何加載到GPU并由GPU執行。
- 圖形渲染:渲染命令編碼器描述如何渲染3D圖形,包括如何在多個線程之間分配圖形操作。
- 數據并行計算處理:Compute Command Encoder解釋了如何執行數據并行處理。
- 緩沖區和紋理操作:Blit Command Encoder描述如何在紋理和緩沖區之間復制數據。
- Metal工具列出了可用于幫助您自定義和改進開發工作流的工具。
- Metal功能集表列出了每個Metal功能集的功能可用性,實施限制和像素格式功能。
- OS 9和OS X 10.11中的新功能總結了iOS 9和OS X 10.11中引入的新功能。
- iOS 10,tvOS 10和OS X 10.12中的新功能總結了iOS 10,tvOS 10和OS X 10.12中引入的新功能。
- Tessellation描述了用于細分補丁的Metal鑲嵌管道,包括使用計算內核,鑲嵌器和后鑲嵌頂點函數。
- 資源堆描述了如何從堆中分配資源,它們之間的別名,并用柵欄跟蹤它們。
學習這個的所需條件
您應該熟悉Objective-C語言,并熟練使用OpenGL,Op??enCL或類似的API進行編程。
你也可以查閱下面的資料
該Metal框架參考是文檔的集合,描述了Metal框架的接口。
所述Metal著色語言規范是一個文檔,指定該Metal著色語言,這是用來寫圖形著色器或用于通過Metal應用程式compute函數。
此外,Apple開發人員庫中還提供了使用Metal的幾個示例代碼項目。