图形学笔记 -- GPU OpenGL ES 应用性能优化

Kunth 大神说过的“过早的优化是万恶之源 + 寻找真正的瓶颈”。

GLSL optimizer based on Mesa's GLSL compiler. Used in Unity for mobile shader optimization. glsl-optimizer

能在 CPU 完成的,尽量不要在 GPU 里面完成,比如投影矩阵。from 传入 vertex shader 后,每个流水单元会计算投影矩阵,导致大量重复的计算(有多少个顶点就有多少次重复的计算)。 Vertex Shader 里面的代码,每个顶点都要执行一次。 Pixel Shader 里面的代码,每个像素都要执行一次。Compute Shader 简介


示意图
CPU 与 GPU 之间的数据传输速度为整个系统的瓶颈

GPU 工作原理
很喜欢这张图

删除调试信息

  • 尽量不要调用 glGetError() ,如果需要,每帧不要超过一次,因为它需要占用较多的时间。

避免调用阻塞图形管道的函数

  • glReadPixels()
  • glCopyTexImage()
  • glTexSubImage()

Refs


参考资料快照
参考资料快照

本文短链接:
If you have any questions or feedback, please reach out .