ReturnGuiltyForHardware重新启动

ReturnGuiltyForHardware重新启动

我发现了有关该错误的更多详细信息。
似乎与gpus_ReturnGuiltyForHardwareRestart信息有关。
在google之后,似乎关于此bug的信息非常有限。
您是否曾经遇到过这个问题,并且知道如何解决?

我认为有必要更新有关崩溃的发现。

似乎上述崩溃与子视图无关,因为在我禁用了处理子视图的所有行之后,崩溃仍然发生。

相关代码如下,

{

    float scissor_x = _xMin;
    float scissor_y = _yMin;
    float scissor_w = _xAdd;
    float scissor_h = _yAdd;
    glEnable(GL_SCISSOR_TEST);
    glScissor(scissor_x, scissor_y, scissor_w, scissor_h);
    computeXY();//process some computation.

    glDisable(GL_SCISSOR_TEST);
    drawImage();//render the result computed above to the screen.

    _xAdd++;
    _yAdd++;

    _xAdd = (_xAdd > 300) ? 100 : _xAdd;
    _yAdd = (_yAdd > 300) ? 100 : _yAdd;

}

上面列出的行将在每个帧期间被调用。我不知道使用glscissor()是否有一些要求。如果_xAdd的值_yAdd设置为不变,则程序成功运行。但是,如果在每一帧中都更改了它们,程序肯定会在几步后崩溃。

我真的对此感到困惑。

这是调试器的输出,
(lldb) bt
* thread #1: tid = 0x7262e, 0x337bc94a    libGPUSupportMercury.dylib`gpus_ReturnGuiltyForHardwareRestart + 10, queue = 'com.apple.main-  thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x1)
frame #0: 0x337bc94a libGPUSupportMercury.dylib`gpus_ReturnGuiltyForHardwareRestart + 10

最佳答案

我已经解决了这个问题。调用gl_scissor()时,必须确保像素/纹理元素,参与以下计算自己的有效值。因此,在我使用gl_scissor()之前,我将初始化所有FBO缓冲区,使所有像素或纹理元素都具有有效值。

谢谢。

关于ios - gpus_ReturnGuiltyForHardware重新启动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22877492/

10-11 17:06