【问题标题】:PowerVR SGX535 Shader Performance (OpenGL ES 2.0)PowerVR SGX535 着色器性能 (OpenGL ES 2.0)
【发布时间】:2010-07-23 17:15:14
【问题描述】:

我目前正在为 iPad 游戏开发几个着色器,似乎 Apple 的 GLSL 编译器没有进行任何优化(或很少)。我可以在着色器中移动一行并将我的 FPS 从 30 降低到 24,但我真的不知道为什么会发生这种情况。

是否有人对以下内容有任何参考:

  • 哪些 PowerVR 指令是从 GLSL 指令生成的?
  • PowerVR 指令的时序是什么?
  • PowerVR535 中有哪些类型的并行处理单元,如何利用它们?

谢谢, 特里斯坦

【问题讨论】:

    标签: iphone ipad opengl-es glsl


    【解决方案1】:

    Imagination Technologies 最近为其 PVRUniSCo 编译器和 PVRUniSCoEditor 交互式着色器编辑器添加了 Mac 支持。这些可以是 downloaded for free 作为 PowerVR SDK 的一部分。该编译器支持 PowerVR SGX 53x 系列以及 iPad 2 中的 540 系列。不幸的是,该编辑器作为一个笨重的 X11 应用程序运行,但至少现在可以工作。

    编辑器为您逐行估算整个顶点或片段着色器所需的 GPU 周期数,以及所需总周期的更准确的最佳和最坏情况估算。

    我一直在使用它来分析我的 iOS 着色器,事实证明它在查找热点方面非常有用:

    【讨论】:

    • 很高兴知道没有什么比在我的电脑上测试时间更烦人的了。
    • 2013 年 4 月更新:最新的 PowerVR SDK 包括不需要 X11 的工具(命令行编译器和 GUI 编辑器,如 PVRShaman 和 PVRShaderEditor),并且可以在着色器代码上注释估计的循环计数。
    【解决方案2】:

    http://www.imgtec.net/factsheets/SDK/POWERVR%20SGX.OpenGL%20ES%202.0%20Application%20Development%20Recommendations.1.1f.External.pdf

    本文档应该可以帮助您优化着色器以获得最佳性能。苹果也应该提供类似的信息。

    【讨论】:

    • 感谢您的回答。不幸的是,通过进一步阅读,PowerVR 决定不发布 GLSL 编译成的实际程序集。我发现最好的办法是使用 PowerVRUniSCo 为顶点和片段着色器提供循环计数。烦人的是,这个工具只适用于 PC 和 Linux。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多