美文网首页
什么是离屏渲染?

什么是离屏渲染?

作者: ZackLi | 来源:发表于2019-04-12 13:14 被阅读0次

    渲染又分为离屏渲染与在屏渲染

    ·On-Screen Rendering

    意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于屏幕缓冲区进行的

    ·Off-Screen Rendering

    意为离屏渲染,指的是GPU在当前屏幕缓冲区以外开辟一个缓冲区进行渲染操作

    ·何时触发离屏渲染

    ·圆角(当和maskToBounds=YES一起使用时)
    ·遮罩
    ·阴影
    ·光栅化

    ·为何要避免

    因为会触发 GPU 多通道渲染管线产生了额外的开销,会增加 GPU 的工作量,很有可能导致 CPU 和 GPU 工作耗时加起来的总耗时超出了16.7ms(1秒60FPS,1000/60)导致 UI的卡顿和掉帧,所以我们要避免离屏渲染。

    总结

    当我们设置一些 UIView 的图层属性,标记位于合成之前,不能用于直接显示的时候。那么就触发了离屏渲染。典型的如圆角属性包括一些蒙层遮罩。 离屏渲染起源于 GPU 层面,指的是 GPU 新开辟的一块缓冲区进行渲染操作。

    离屏渲染的查看方式 Debug->ViewDebug->Off-Screen Rendering Yellow

    附Demo:https://github.com/ZeKunLi/iOS-InterView/tree/master/%E5%9C%86%E8%A7%92%E7%A6%BB%E5%B1%8F%E6%B8%B2%E6%9F%93

    相关文章

      网友评论

          本文标题:什么是离屏渲染?

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