美文网首页
GPU性能优化

GPU性能优化

作者: hjm1fb | 来源:发表于2023-10-06 20:09 被阅读0次
  • 优化shader提升性能
  1. 复杂运算,如果能在c++代码里方便计算出来,就移到C++代码里计算,然后通过uniform传给shader
  2. 锐化/双边滤波等效果,可能会用到固定长度的坐标数组,这样的数组可以在顶点着色器里计算,然后通过varying参数传到Fragment着色器。因为一般情况下,顶点着色器执行的次数远远少片段着色器,所以这样做能节省性能
  3. 二维模糊卷积核请用先x后y,二次渲染的方式:Android图像处理 - 高斯模糊的原理及实现
  4. 计算量较多的fragment shader, 在不影响效果的情况下,尽量用mediump精度,以提高性能;顶点着色器一般用highp精度
  5. 减少 if else的分支: 如何在shader中避免使用if else
  6. 在可效果可接受的前提下,减少循环次数,减少计算量,减少冗余代码。比如跟透明度无关的效果,就只需要取rgb值来计算
  • 提升性能的OpenGL的组件和接口

VAO VBO EBO PBO能减少CPU和GPU的数据传输,大大提高性能
VAO在OpenGL3.0上才能用

OpenGL ES 3.0 新增的实例渲染接口,可以增强粒子动画的表现能力,以及优化传输和绘制的性能:
glVertexAttribDivisor
glDrawArraysInstanced
glBeginTransformFeedback

  • 利用GPU架构提升性能
计算向量化

利用GPU可以并行计算的特性,将
c = a1 * b1 + a2 * b2 + a3 * b3 + a4 * b4
改为
c = dot(vec4(a1, a2, a3, a4), vec4(b1,b2,b3,b4));
的形式

内存布局

GLSL里的Martix是以列主序存储,所以vector在左边,右边乘以Martix的好处是提高运算效率:矩阵:行主序、列主序、行向量、列向量

纹理采样时,逐Tile采样的话cache miss的概率会降到最低。如果做不到逐Tile,则采样时尽量用与上一个uv连续和邻近的uv数据

减少纹理占用

在制作模糊类效果时,使用1/2 RT可以利用硬件的双线性过滤来自动实现模糊计算,也大大减少了GPU内存占用和shader的计算量;能通过单通道纹理实现的功能,就不需要RGBA格式的纹理

相关文章

  • Android性能优化 - CPU/GPU篇

    Android性能优化 - UI篇Android性能优化 - CPU/GPU篇 前言 本篇主要讲解APP性能优化路...

  • 对于手游的优化

    给手游做优化,无非就CPU性能优化、内存性能优化、资源优化、GPU优化、IO优化、网络优化、耗电优化这些,为此汇总...

  • IOS性能优化(多线程及GPU)(一)

    IOS性能优化(多线程及GPU) 性能优化相关知识链接 前言: 说到性能优化,这个话题挺广的,有的需要优化tabl...

  • Android UI优化

    Android性能优化 - UI篇Android性能优化 - CPU/GPU篇 一、UI层级优化 借助工具:Hie...

  • 性能优化02-布局优化

    性能优化02-布局优化 一、CPU与GPU 1、定义 为什么要了解CPU与GPU呢?因为布局绘制就是CPU与GPU...

  • UI绘制优化

    性能优化的目的不是优化项目,而是优化编码习惯。--jett CPU 与GPU工作流程 VSYNC(vertical...

  • iOS 应用性能优化

    性能优化 说起应用优化,就不得不先了解一下 CPU 与 GPU,在屏幕成像的过程中,CPU 与 GPU 起着至关重...

  • css

    gpu加速 will-change:left -> 浏览器就知道left属性会变化,从而使用gpu加速优化性能。t...

  • Unity——GPU性能优化

    从三个方面入手: 1:Fill Rate 2:GPU Memory Bandwidth 3:Vertex Proc...

  • Unity优化技巧

    CPU优化策略: 内存优化策略: GPU优化策略: 以下技巧并不是必须的,但是对于想要提升游戏性能的人来说应该还是...

网友评论

      本文标题:GPU性能优化

      本文链接:https://www.haomeiwen.com/subject/clapbdtx.html