MTLDevice
获取设备的GPU
MTLLibrary
Metal函数库,可以通过makeDefaultLibrary和makeLibrary(filePath:)创建
makeDefaultLibrary 用于获取当前主bundle Library
makeLibrary(filePath:) 用于获取其他bundle下的Library
MTLFunction
创建一个Metal函数,函数定义在.metal文件内,取函数的函数名(不带参数名)
MTLCommandQueue
提交Metal渲染命令队列
MTLComputePipelineState || MTLRenderPipelineState
创建管线,作用是把MTLFunction关联到Pipeline上,最终绘制的时候会根据pipeline的绘制方式和函数进行绘制
大致流程
获取到Device和Library、commandQueue之后,通过MTLFunction创建pipeline
生成commandBuffer
创建encode(可以为多个),encode内绑定数据和pipeline,设置执行方式和执行次数后使用endEncoding结束单次encode
最终将command Buffer提交上去即可,如果需要等待结果,可以使用commandBuffer.waitUntilCompleted()