首页 > 解决方案 > MTLCcommandBuffer.commit() 在哪个线程上操作?

问题描述

使用金属,我正在绘制 YUV420 图像。

一个问题是,当 MTLCcommandBuffer.commit() 时,Pinch 或 Pan 等手势动作会变慢。

commit() 内部在哪个线程上运行?我想知道它是在主线程上工作还是在单独的线程上工作。

如果它在主线程上工作,有没有办法在单独的线程上操作它?


@objc func pinchAction(_ sender: UIPinchGestureRecognizer) {
    // this method called slowly
}

let commandBuffer: MTLCommandBuffer = (commandQueue?.makeCommandBuffer())!

func draw(in view: MTKView) {
    // do something...

    commandBuffer.present(view.currentDrawable!)
    commandBuffer.commit()
}

标签: iosswiftgraphicsmetal

解决方案


推荐阅读