【问题标题】:Is it possible to debug shaders in Android OpenGL ES 2?是否可以在 Android OpenGL ES 2 中调试着色器?
【发布时间】:2017-04-30 21:21:12
【问题描述】:

是否可以在使用 OpenGL-ES 2 的 Android 应用程序中调试着色器(片段和顶点)?

由于我们只传递一个带有代码的字符串和一堆用句柄替换的变量,因此找到需要进行的适当更改非常繁琐。

  • 是否可以写入Android Log,如Log.d()

  • 是否可以使用断点并检查着色器计算中的当前值?

我根本不习惯用笔写代码,这就是在着色器文本代码中编码的感觉。

【问题讨论】:

    标签: android opengl-es shader fragment-shader vertex-shader


    【解决方案1】:

    这是一个老问题,但由于它首先出现在搜索中并且可以扩展旧答案,所以我留下了一个替代答案:

    虽然无法像在 Java 或 Kotlin 上那样进行打印或调试,但这并不意味着它不能被调试。 used to be a tool on the now deprecated Android Monitor 让您逐帧查看 GPU 执行的跟踪,其中包括检查调用和几何。

    目前官方的 GPU 调试器是 Android GPU Inspector,它具有一些有用的性能指标,并且将在未来的更新中逐帧调试。

    如果 Android GPU Inspector 没有您需要的功能,您可以使用供应商特定的调试器,具体取决于您的设备(Mali 图形调试器、Snapdragon 调试器等)

    【讨论】:

      【解决方案2】:

      没有。请记住,GPU 将执行每个程序数百万次(每个顶点一次,每个片段一次),通常有数百个线程同时运行,因此任何“连接调试器”的概念几乎都是不可能的。

      【讨论】:

      • 这就是我所害怕的,我希望至少可以单步执行一次着色器代码,看看传​​入的变量到底发生了什么。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多