Metal为图形和数据并行计算工作负载提供单一的统一编程接口和语言。Metal使您能够更高效地集成图形和计算任务,而无需使用单独的API和着色器语言。
Metal框架提供以下内容:
低开销接口:Metal旨在消除“隐藏”的性能瓶颈,如隐式状态验证。您可以控制GPU的异步行为,用于高效的多线程,用于并行创建和提交命令缓冲区。有关Metal命令提交的详细信息,请参阅命令组织和执行模型。
内存和资源管理。Metal框架描述了表示GPU内存分配的缓冲区和纹理对象。纹理对象具有特定的像素格式,可用于纹理图像或附件。有关Metal内存对象的详细信息,请参阅资源对象:缓冲区和纹理。
-
集成支持图形和计算操作。Metal对于图形和计算操作都使用相同的数据结构和资源(如缓冲区,纹理和命令队列)。此外,Metal着色语言支持图形和计算功能。Metal框架使资源在运行时界面,图形着色器和计算功能之间共享。
有关使用Metal进行图形渲染或数据并行计算操作的应用程序的详细信息,请参阅图形渲染:渲染命令编码器或数据并行计算处理:计算命令编码器。
-
预编译着色器 Metal着色器可以在构建时与您的应用程序代码一起编译,然后在运行时加载。该工作流程提供了更好的代码生成以及着色器代码的调试。(Metal还支持着色器代码的运行时编译)
有关从Metal框架代码处理Metal着色器的详细信息,请参阅函数和库。有关Metal着色语言本身的详细信息,请参阅Metal着色语言指南。
Metal应用程序不能在后台执行Metal命令,并且终止尝试此操作的Metal应用程序。