On-Screen Rendering 在屏渲染
意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行的
Off——Screen Rendering 离屏渲染
意为离屏渲染,指的是GPU在当前屏幕缓冲区外新开辟一个缓冲区进行渲染操作
当我们设置某一些UI视图的图层属性,指令为位于合成之前,不能直接显示的时候,那么就触发了离屏渲染。典型的比如说,我们设置视图的圆角属性,包括一些蒙层、阴影等等
什么场景触发?
- 设置圆角。maskToBounds 同时设置
- 图层蒙版
- 阴影
- 光栅化
为何要避免离屏渲染?
在触发离屏渲染的时候,会增加GPU的工作量,而增加GPU的工作量很可能会导致GPU和CPU的工作总耗时超出了16.7ms,即屏幕的FPS小于60,从而导致UI的掉帧或卡顿,所以要避免离屏渲染。