iOS 离屏渲染

作者: 飞不越疯人院 | 来源:发表于2019-04-09 10:18 被阅读14次

    不论是在屏渲染还是离屏渲染都是在GPU层面的;

    • 在屏渲染(On-Screen Rendering): 意为当前屏幕的渲染, 指的是GPU的渲染操作发生在当前用于显示的屏幕缓冲区中;
    • 离屏渲染(Off-Screen Rendering):意为GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行操作;
      关于屏幕缓冲区

    什么时候会触发离屏渲染?

    1. 设置图层圆角(和maskToBounds一起使用);
    2. 设置图层蒙版(masks);
    3. 设置阴影效果(shadows);
    4. 设置光栅化(shouldRasterize);

    为什么要避免离屏渲染?
    16.7ms内CPU和GPU要完成一帧界面绘制, 离屏渲染会触发OpenGL多通道渲染管线,会造成额外的GPU工作量,导致GPU部分耗时过长进而造成界面掉帧;
    离屏渲染会创建新的渲染缓冲区造成内存上的开销; 由于多通道渲染管线界面合成, 要进行上下文的切换造成额外GPU开销,

    相关文章

      网友评论

        本文标题:iOS 离屏渲染

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