Metal - 命令设定 - MTLCommand队列

用于组织命令缓冲区以供GPU执行的队列

宣言

protocol MTLCommandQueue

概述

一个MTLDevice对象队列MTLCommandQueue命令缓冲区的一个有序列表来执行。命令队列时线程安全的,并允许同时编码多个未完成过的命令缓冲区。

您没有定义完成此协议的类,要创建名命令队列,请调用对象的makeCommandQueue 或 调用设备MTLDevice的makeCommandQueue(maxCommandBufferCount:)方法。 方法返回的队列限制了未完成的命令缓冲区的数量。通常,您会在应用启动时创建一个或多个命令队列,然后在应用的整个生命周期中完成保留这些队列。

要渲染图像或执行计算操作,请使用命令队列创建一个或多个命令缓冲区对象,然后将命令编码到这些对象中并将它们提交到队列中,有两种创建MTLCommandBuffer对象的方法: makeCommandBuffer 和 makeCommandBufferWithUnretainedRefefences().在大多数 情况下,您使用该方法,因为该方法创建了一个命令缓冲区,该缓冲区对metal完成在命令缓冲区中编码的命令所需的所有对象具有强大的引用。在极少数情况下,可以使用makeCommandBufferWithUnretainedReferences()方法创建一个命令缓冲区,该缓冲区不保留对这项对象的强引用。在这种情况下,您有责任使这些对象保持活动状态,直到命令缓冲区编码的命令执行完毕。

你可能感兴趣的:(Metal - 命令设定 - MTLCommand队列)