【问题标题】:Enabling GPU Frame Capture启用 GPU 帧捕获
【发布时间】:2019-05-20 13:50:52
【问题描述】:

我正在尝试构建一个 Metal 计算应用程序。我写了我的第一个内核,现在我想看看它是计算着色器的输出。但是,XCode 中禁用了“GPU 帧捕获”选项。 我正在使用 XCode 9.2。我已经在我正在运行的方案中启用了 GPU 帧捕获。 关于为什么会发生这种情况的任何提示?

【问题讨论】:

  • 由于您实际上并没有呈现帧,Xcode 不知道什么构成了“帧”。您将必须添加程序化的开始和结束范围标记。您可以为此使用MTLCaptureManagerMTLCaptureScope
  • FWIW:我在这方面从未真正取得过成功。我能让 GPU Frame Capture 用于计算内核的唯一方法是同时使用 Metal 进行一些图形处理(例如显示 AVCapture 的预览层)。
  • @KenThomases 我厌倦了这样做。没用。不知何故,isCapturing 每次都是假的。我使用的是startCaptureWithDevicestopCapture。不过,我并没有制作MTLCaptureScope。我刚收到sharedCaptureManager 并调用了 startCapture。
  • @MatthijsHollemans 显然我也在使用 Metal APIs 进行一些渲染的应用程序中编写代码。但是那里没有使用计算的输出,这可能就是我无法捕获帧的原因。
  • 您可以尝试在创建MTLCommandBuffer 之前设置断点,然后编辑断点并选择添加操作-> 捕获GPU 帧。请注意,它往往只在第二次计算调度后才起作用......

标签: xcode macos gpu metal


【解决方案1】:

显然您无法在 XCode 9.2 上调试计算着色器。我迁移到 Xcode 10.2,并且能够使用 GPU 帧捕获来调试我的计算内核。

P.S 我不确定这是否是记录在案的限制,但这就是我所经历的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-27
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    相关资源
    最近更新 更多