我有一个基于OpenGL ES 2.0的应用程序。它可以在iPhone/iPad模拟器、真机和使用Imgtec的模拟器库(即PVRVframe)的Windows上编译并运行。
在该应用程序中,我有一个特定的绘制调用,导致目标上没有像素被写入,尽管我可以查询的所有状态看起来都很合理(视口、深度测试/模板测试/剔除/混合关闭、帧缓冲区完整等),而且据我所知,我正在提交合理的顶点数据。
目前我需要的是一种类似于Pix/GPAD的工具,让我能够步进场景并查看我无法直接从OpenGL查询的状态,以便于调试问题的draw call(例如实际的顶点/索引缓冲区内容)。
PVRTrace和OSX instruments都没有捕获足够的状态来调试这种问题。特别是,它们不会捕获顶点/索引缓冲区或纹理数据(OSX instruments也不会捕获着色器源代码)。
以前在Stack Overflow上解决这类问题的答案是gDEBugger,但现在已经更新到版本5.8,并且是免费的,这很好,但不再支持OpenGL ES 2(在Windows下,通过EGL没有ES2可渲染配置;在OSX下,无法将调试器附加到运行在模拟器或真实设备上的应用程序中),这就不太好了。
我是否忽略了一些明显的东西?我的选择有哪些?其他人如何调试他们的场景?