1.什么是离屏渲染
- on-screen Rendering
意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行的
- off-screen Rendering
意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟了一个缓冲区进行渲染操作,通俗的说就是当我们设置某些UI图层的视图属性时候,被指定为未预合成之前,不能用于直接显示的时候,就会触发离屏渲染
2.何时离屏渲染
- 设置圆角(同时设置maskToBounds=YES)
- 图层蒙版
- 阴影
- 光栅化
3.为何需要避免离屏渲染
因为在离屏渲染的时候会触发GPU的多通道渲染管线,增加了额外的开销,可能导致CPU和GPU在当前Vsync信号到来之前(1/60s)无法完成工作,导致页面卡顿和掉帧.另外也会创建新的缓冲区,会照成上下文切换带来开销