附加OpenGL Profiler时,挂在presentFrameBuffer上的GPUImageView

时间:2016-05-21 23:04:04

标签: macos opengl gpuimage

我已经在powershell -NoProfile -encodedCommand JABzAGgAZQBsAGwAIAA9ACAAbgBlAHcALQBvAGIAagBlAGMAdAAgAC0AYwBvAG0AIABzAGgAZQBsAGwALgBhAHAAcABsAGkAYwBhAHQAaQBvAG4ADQAKACQAegBpAHAAIAA9ACAAJABzAGgAZQBsAGwALgBOAGEAbQBlAFMAcABhAGMAZQAoABwgQwA6AFwAaABvAHcAdABvAGcAZQBlAGsAcwBpAHQAZQAuAHoAaQBwAB0gKQANAAoAZgBvAHIAZQBhAGMAaAAoACQAaQB0AGUAbQAgAGkAbgAgACQAegBpAHAALgBpAHQAZQBtAHMAKAApACkADQAKAHsADQAKACQAcwBoAGUAbABsAC4ATgBhAG0AZQBzAHAAYQBjAGUAKAAcIEMAOgBcAHQAZQBtAHAAXABoAG8AdwB0AG8AZwBlAGUAawAdICkALgBjAG8AcAB5AGgAZQByAGUAKAAkAGkAdABlAG0AKQANAAoAfQA= github页面上提交了一个问题,但我想我会看到这里是否有人有解决方法或更好地了解问题的原因。

我在OS X应用程序中有一个由GPUImage提供的GPUImageView。如果我在更新时附加GPUImageRawDataInput并启用跟踪,则处理会卡在OpenGL Profiler中(特别是在[NSOpenGLContext flushBuffer]中)。对于一个简单的测试用例,我只有一个带有按钮的视图控制器和类__psynch_mutexwait的自定义视图以及控制器中的以下代码:

GPUImageView

关于为什么只有在连接了探查器时才会挂起的任何想法?谢谢!

我正在使用2012年中期的macbook pro,OS X 10.11.4。

2 个答案:

答案 0 :(得分:1)

我刚刚在我的“简单”测试案例中发现了一个错误,它解决了我的问题。它指出了人们在OS X应用程序中使用GPUImage可能遇到的其他问题的潜在解决方案,因此我将其作为解决方案发布在此处。

如果您使用Interface Builder将GPUImageView放在NSView内,请确保关闭父视图的Core Animation Layer,除非您明确需要它并知道您在做什么(它默认开启。)

答案 1 :(得分:0)

我刚遇到这个问题 - 不是用GPUImage而是试图使用OpenGL Profiler跟踪我的应用程序。我的解决方案是从使用/authors的子类切换到使用$AUTHORID的子类,并使用NSOpenGLView作为其层。在更改之后,我可以使用分析器跟踪而不会挂起。