0

我有一个小型跨平台引擎,可以在 Android 和 Windows 上运行我的 OpenGL ES 2.0 游戏。要在 Windows 上运行它,我使用的是 PowerVR 模拟器(只是链接到项目的库)。这一切都很好。

现在我想调试它并在任何 OpenGL 调试器中进行检查。我尝试过英特尔 GPA、AMD CodeXL、gDebugger、glslDevil。但没有一个人能够做到。在英特尔 GPA 的情况下,它没有找到正在运行的游戏。在其他情况下,它开始了游戏,但未能暂停或稍后执行任何操作。

我不知道是不是因为它是 OpenGL ES 而不是 OpenGL。但是我认为 PowerVR 仿真必须像将 OpenGL ES 转换为 OpenGL 一样工作?

我的问题是:

  • 是否有任何(实用程序)方法可以在 Windows 上调试 OpenGL ES 2.0 程序?
  • 或者有没有比 PowerVR 更好的仿真库来强制应用看起来像其他工具的 OpenGL(而不是 OpenGL ES)?

我正在做这一切,因为在 Android 设备上没有一个调试器适合我。我正在使用三星 Galaxy Tab(这是 Tegra GPU)进行开发,但 Nvida 的 PerfHUD ES 目前不支持它(而且我也不满足只有 3.1 的 Android 4.0 或更高版本)

  • 有什么方法可以在具有 Android 版本 3.1 并且是三星 Galaxy Tab 设备的 Android 设备上调试 OpenGL ES?

谢谢

4

2 回答 2

1

你是对的 - PVRVFrame 将 OpenGL ES 调用转换为主机 OpenGL 调用。这就是为什么 gDEBugger 之类的工具会捕获模拟器发出的 OpenGL API 调用,而不是您实际提交的调用。

PowerVR SDK 包含一个名为 PVRTrace 的 OpenGL ES/EGL API 记录工具,它具有您正在寻找的所有功能。PVRTrace 记录库可用于记录在 Windows 和 Linux 上使用 PVRVFrame 的应用程序。SDK 还包括适用于 Android 和 Linux 设备的录制库。

PVRTraceGUI(适用于 Windows、OSX 和 Linux 的分析工具)可用于查看和检查您记录的数据。它还有一个图像分析小部件,可让您逐步完成录制中的绘制调用和一些其他方便的功能,例如像素分析饼图,它突出显示渲染中最昂贵的片段着色器,以便您知道着色器优化的重点.

还有一个 PVRTrace 独立播放工具,可让您在任何受支持的操作系统(包括 Windows 和 Android)上重播录音。

您可以在此处的 Imagination 网站上找到该工具的概述,并可以通过 PowerVR SDK 安装程序下载 PVRTrace,可在此处获得

于 2013-06-24T01:01:25.010 回答
0

正如你所说,我经常使用 PowerVR VFrame 转换器在 Windows 上调试 OpenGL ES,它将 OpenGL ES 调用转换为 OpenGL。我认为这是最好的解决方案。VFrame 有一些步进和跟踪功能,但我主要使用 MSVC++ 的调试功能。

如果您在 android 上使用 GLSurfaceView,它也具有 OpenGL ES 跟踪功能。我还建议使用 X86 AVD 而不是 ARM 或信任任何一台设备上的驱动程序。这篇文章详细解释:

http://software.intel.com/en-us/articles/porting-opengl-games-to-android-on-intel-atom-processors-part-1

于 2013-06-23T00:27:44.983 回答