我目前正在为 iPad 游戏开发几个着色器,似乎 Apple 的 GLSL 编译器没有进行任何优化(或很少)。我可以在着色器中移动一条线并将我的 FPS 从 30 降低到 24,但我真的不知道为什么会发生这种情况。
是否有人对以下内容有任何参考:
- 从 GLSL 指令生成哪些 PowerVR 指令?
- PowerVR 指令的时序是什么?
- PowerVR535 中有哪些类型的并行处理单元,如何利用它们?
谢谢,特里斯坦
Imagination Technologies 最近为其 PVRUniSCo 编译器和 PVRUniSCoEditor 交互式着色器编辑器添加了 Mac 支持。这些可以作为 PowerVR SDK 的一部分免费下载。该编译器支持 PowerVR SGX 53x 系列以及 iPad 2 中的 540 系列。不幸的是,该编辑器作为一个笨重的 X11 应用程序运行,但至少现在可以工作。
编辑器为您逐行估计整个顶点或片段着色器所需的 GPU 周期数,以及所需总周期的更准确的最佳和最坏情况估计。
我一直在使用它来分析我的 iOS 着色器,它已被证明在查找热点方面非常有用:
该文档应该可以帮助您优化着色器以获得最佳性能。苹果也应该提供类似的信息。