NaCl GL错误:GL_INVALID_OPERATION

时间:2013-10-30 19:05:45

标签: opengl-es-2.0 google-nativeclient

我正在移植一个在不同平台(Windows,iOS,Playbook,BB10,Android)上完美运行的游戏引擎到NaCl

2d渲染正确,但有些3d对象没有显示或渲染真的很奇怪,我得到以下con

[.PPAPIContext]GL ERROR :GL_INVALID_FRAMEBUFFER_OPERATION : BackTexture::AllocateStorage: <- error from previous GL command (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: stride not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: offset not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glDrawElements: attempt to access out of range vertices in attribute 0 (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: stride not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: offset not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: stride not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: offset not valid for type (index):1
[.PPAPIContext]GL ERROR :GL_INVALID_OPERATION : glVertexAttribPointer: stride not valid for type 

它无限期地重复。

同样,相同的渲染代码用于不同的平台,它工作得很好。移植到NaCl时是否需要特别考虑?关于我应该关注什么的想法尝试找到问题? 据我所知,着色器0(顶点着色器)存在问题,实际上某些对象的顶点遍布整个地方。

谢谢! :)

1 个答案:

答案 0 :(得分:2)

出于安全原因,Chrome会验证许多其他驱动程序可能没有的GL操作。这有点工作,但您可以尝试使用http://cs.chromium.org搜索Chromium代码库以查找错误消息。

这是我发现的:

要对此进行调试,我会缩小对glDrawElementsglVertexAttribPointer的调用范围,并尝试查找哪一个失败,然后我添加一些printf调用以查看正在传递的值。

祝你好运!