美文网首页
离屏渲染

离屏渲染

作者: 滨滨_57b5 | 来源:发表于2018-12-17 10:26 被阅读0次

    什么是离屏渲染? 对离屏渲染的理解。

    在屏渲染 On-Screen Rendering

    GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行

    离屏渲染 Off-Screen Rendering

    • 离屏幕渲染是在GPU层面发生的,即GPU在当前屏幕缓冲区外,新开辟了一个缓冲区进行渲染
    • 当设置某一些视图的图层属性时,如果在GPU未合成前,不能用于直接显示的时候,就会触发离屏渲染,包括设置视图的圆角属性、蒙层遮罩等

    离屏渲染触发条件

    • 设置图层圆角时(当和maskToBounds一起使用时)
    • 设置图层蒙版
    • 设置阴影
    • 光栅化

    避免离屏渲染

    CPU和GPU在进行视图绘制渲染时做了大量的工作,而离屏渲染是发生在GPU层面的,即离屏渲染触发了GPU层面的OpenGL的多通道渲染管线产生了额外的开销,因此需要避免

    • 创建新的渲染缓冲区,增加内存的开销
    • 因为触发了OpenGL的多通道渲染管线,会有上下文的切换,增加GPU的额外开销
      总结: 在触发离屏渲染时,会增加GPU的工作量,会导致CPU和GPU工作耗时会超过16.7ms(每一帧图像最大支持的绘制时间),最终会导致UI的卡顿和掉帧,因此需要避免离屏渲染

    相关文章

      网友评论

          本文标题:离屏渲染

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