将GPU命令写入命令缓冲区的编码器
宣言
protocol MTLCommandEncoder
概述
不要自己实现此协议,相反,您可以在对象上调用方法来创建命令编码器。命令编码器对象是轻量级的对象,您需要在每次将命令发送GPU时重新创建。
有许多不同类型的命令编码器,每种都提供可以编码到缓冲区中的不同命令集。命令编码器实现特定于所创建编码器类型的协议和附件协议。表1列出了命令编码器以其实现的协议。
表1 命令编码器协议
MTLRenderCommandEncoder 图形渲染
MTLComputeCommandEncoder 计算方式
MTLBlitCommandEncoder 内存管理
MTLParallelRenderCommandEncoder 并行编码的多个图形渲染任务
当命令编码器处于活动状态时,它具有将命令附加到其命令缓冲区的专有权。完成命令编码后,调用endEncoding 方法以完成命令编码,要将其它命令写入同一命令缓冲区,请创建一个新的命令编码器。
您可以调用insetDebugSignpost(:) ,pushDebugGroup(:)和popDebugGroup()方法把调试字符串到命令缓冲区和推或弹出用于识别编码的命令的组串标记。这些方法不会更改应用程序的呈现或计算行为,xcode调试器使用它们来组织您的应用程序的渲染命令,其格式可能助于您深入了解应用程序的工作方式。