简体   繁体   English

Xcode 8.3.2中的“捕获GPU帧”问题

[英]“Capture GPU Frame” issues in Xcode 8.3.2

I am using Xcode, V-8.3.2. 我使用的是Xcode,V-8.3.2。 I have got 2 devices: 我有2台设备:

  1. iPhone 6. (iOS 10.3.2) iPhone 6.(iOS 10.3.2)

  2. iPhone 7. (iOS 10.3.2) iPhone 7.(iOS 10.3.2)

I am trying to profile GPU usage for OpenGLES 3.0 based app (C++) I am working on. 我正在尝试分析基于OpenGLES 3.0的应用程序(C ++)的GPU使用情况。 The first device, when I press "Capture GPU Frame" , tries to perform the capture, then after a few seconds Xcode pops up the following notifications: 当我按下“捕获GPU帧”时,第一个设备尝试执行捕获,然后在几秒钟后Xcode弹出以下通知:

Replayer terminated unexpectedly with error code 5.Please report the frame capture file then file a radar Replayer意外终止,错误代码为5.请报告帧捕获文件,然后提交雷达

Timed out (5) 超时(5)

When I try to debug the same app on the second device, The "Capture GPU frame" menu is disabled (non clickable). 当我尝试在第二个设备上调试相同的应用程序时,“捕获GPU框架”菜单被禁用(不可点击)。 Also no "FPS" gauge is shown in the debug panel on the left in the Xcode window. 在Xcode窗口的左侧调试面板中也没有显示“FPS”指示器。 This one I solved with restart of the Mac. 这个我通过重启Mac解决了。

The app runs fine, no crashes. 该应用程序运行良好,没有崩溃。 Before I upgraded to the latest Xcode, the GPU frame capture worked fine for the first device. 在我升级到最新的Xcode之前,GPU帧捕获在第一个设备上运行良好。 The iPhone 7 - I have no idea, because I didn't have this one before. iPhone 7 - 我不知道,因为我以前没有这个。 I tried to read possible solution to the first problem on Apple Developer forums . 我试图在Apple Developer论坛上阅读第一个问题的可能解决方案。 Quite a few people reported that "timed out(5)" capture error, but I found no solution. 不少人报告说“超时(5)”捕获错误,但我发现没有解决方案。 Some people suggest to downgrade to iOS prior to 10.3. 有人建议在10.3之前降级到iOS。 I tried to reset the device to factory settings, and it doesn't reset to the iOS version older than 10.3.2, which is the newest one. 我尝试将设备重置为出厂设置,并且它不会重置为早于10.3.2的iOS版本,这是最新版本。

I have seen this issue with Xcode 10.2 and an iPhone SE (iOS 12.2) when executing compute kernels. 在执行计算内核时,我已经看到了Xcode 10.2和iPhone SE(iOS 12.2)的这个问题。

In my case, the issue was only related to single pass compute kernels, when tested with running video frames, the Frame Debugger works normally. 在我的例子中,问题只与单通计算内核有关,当运行视频帧测试时,帧调试器正常工作。

Unfortunately, I don't have a fix but I did stumble on a work around for my configuration: If I press the Home Button on the phone during the capture process, Xcode will enter the frame debugger as expected. 不幸的是,我没有修复,但我偶然发现我的配置:如果我在捕获过程中按下手机上的主页按钮,Xcode将按预期进入帧调试器。

This only works if I press Home while Xcode displays 这仅在我在Xcode显示时按Home时才有效

"Capturing GPU Frame: 1 command buffer captured". “捕获GPU帧:捕获1个命令缓冲区”。

If I press Home while Xcode displays 如果我在Xcode显示时按Home

"Capturing GPU Frame: Replaying Frame", “捕获GPU帧:重放帧”,

then I still get the behaviour described in the OP. 然后我仍然得到OP中描述的行为。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM