gpt4 book ai didi

xcode - 显示 MTKView 的当前帧率

转载 作者:行者123 更新时间:2023-12-02 11:20:54 25 4
gpt4 key购买 nike

我知道在 SceneKit 中,您可以在 SKView 的一侧启用横幅查看实时帧速率和其他有用的调试信息。但是 MTKView 呢? ?我似乎没有找到这样的属性来启用,或者我如何查询当前的帧速率。 (因为我正在渲染帧速率为 0.5fps 左右的东西)

最佳答案

我不认为你有简单的标志。因为您在创建命令缓冲区时控制了完整的渲染管道,所以 Metal 无法知道在哪里注入(inject)带有一些自定义文本的渲染 channel 。

您可以在管道中注入(inject)自己的渲染 channel (基于 var showDebugInformation = true 之类的标志),但这听起来有点工作。

我可能会在 draw 中手动监控帧时间。方法并在每次绘制时更新一个标签。粗略的轮廓可能如下所示:

var previousFrameAtTime: Date
let lastFrameTime = CurrentValueSubject<TimeInterval, Never>(.infinity)

func draw(in view: MTKView) {

lastFrameTime.send(Date().timeIntervalSince(previousFrameAtTime))
previousFrameAtTime = Date()

// ...
}

然后你可以在你的 View 中观察这个值,如下所示:

import Combine

class MyViewController: UIViewController {

let label = UILabel()
var cancellables: [AnyCancellable] = []

func subscribeToFrameTime() {
renderer.lastFrameTime
.sink { label.text = "\($0 * 1000) ms." }
.store(in: &cancellables)
}
}

关于xcode - 显示 MTKView 的当前帧率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55289377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com