是否有可能在使用OpenGL-ES 2的Android应用程序中调试着色器(片段和顶点)?
由于我们只传递带有代码和一堆变量的String来替换句柄,因此找到需要进行的正确更改非常繁琐。
是否可以写入Android日志,如Log.d()
是否可以使用断点并检查着色器计算中的当前值?
我根本不习惯用笔编写代码,这就是在着色器文本代码中编码的感觉。
答案 0 :(得分:2)
没有。请记住,GPU将执行每个程序数百万次(每个顶点一次,每个片段一次),通常有数百个线程同时运行,因此任何“连接调试器”的概念都是不可能的。
答案 1 :(得分:2)
这是一个老问题,但由于它首先出现在搜索中并且可以扩展旧答案,我将留下一个替代答案:
虽然像我们在 Java 或 Kotlin 上所做的那样打印或调试是不可能的,但这并不意味着它不能被调试。 used to be a tool on the now deprecated Android Monitor 可让您逐帧查看 GPU 执行的跟踪,其中包括检查调用和几何。
目前官方的 GPU 调试器是 Android GPU Inspector,它具有一些有用的性能指标,并将在未来的更新中逐帧调试。
如果 Android GPU Inspector 没有您需要的东西,您可以根据您的设备使用供应商特定的调试器(Mali Graphics Debugger、Snapdragon Debugger 等)