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

什么是离屏渲染?

作者: 叹轻寒 | 来源:发表于2020-05-07 15:13 被阅读0次

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

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

当前屏幕不需要额外创建新的缓存,也不需要开启新的上下文,相对于离屏渲染性能更好.但是受当前屏幕渲染的局限因素限制(只有自身上下文,屏幕缓存有限等),当前屏幕渲染有些情况下的渲染解决不了的,就会用你那个到离屏渲染.

相比于当前屏幕渲染,离屏渲染的代价是很高的,主要体现在两个方面:

1.创建新的缓冲区:要想进行离屏渲染,首先要创建一个新的缓冲区.

2.上下文切换:离屏渲染的整个过程,需要多次切换上下文环境.首先是从当前屏幕切换到离屏,等到离屏渲染结束后,将离屏缓冲区的渲染结果显示到屏幕上,又需要将上下文环境从离屏切换到当前屏幕,而上下文环境的切换是需要付出很大代价的.

最后由于垂直同步机制,如果在一个Hsync时间内,CPU或者GPU没有完成内容提交,则那一帧就会被丢弃,等待下一次机会再显示,而这时显示屏会保留之前的内容不变.这就是界面卡顿的原因.

为什么要有这套机制呢?

有些被认为不能直接呈现于屏幕,而需要在别的做额外的处理预合成.图层属性的混合体没有预合成之前不能直接在屏幕中绘制,所以就需要屏幕外渲染.屏幕外渲染并不意味着软件绘制,但是它意味着涂层必须在被显示之前在一个屏幕外上下文中被渲染(无论CPU还是GPU).

直接切圆角方式就会造成离屏渲染.

相关文章

  • 关于离屏渲染

    1.什么是离屏渲染 2.离屏渲染的触发方式 3.离屏渲染的意义 4.离屏渲染的不足 1.什么是离屏渲染 要了解离屏...

  • 离屏渲染

    1.什么是离屏渲染? 2.离屏渲染会引起什么问题? 3.什么情况下会发生离屏渲染? 1.什么是离屏渲染 离...

  • 离屏渲染

    什么是离屏渲染? 对离屏渲染的理解。 在屏渲染 On-Screen Rendering GPU的渲染操作是在当前用...

  • UI离屏渲染

    什么是离屏渲染,你对离屏渲染是怎么理解的? 先看在屏渲染概念: 可以说在屏渲染指的GPU层面的一个概念。那么离屏渲...

  • iOS总结

    一、什么是离屏渲染?什么情况下会导致离屏渲染?为什么要尽量避免离屏渲染? 如果要在显示屏上显示内容,我们至少需要一...

  • iOS-离屏渲染探索

    iOS项目性能优化时,不得不提到离屏渲染,为了提升性能,我们要求尽量减少离屏渲染的发生。 那,什么是离屏渲染?离屏...

  • 离屏渲染

    什么是离屏渲染?如何发生的呢?? 在屏渲染: 指 GPU的渲染操作是在当前用于显示的屏幕缓冲区发生的 离屏渲染: ...

  • 史上最接地气的“离屏渲染”解释

    各位看官在面试的时候 是不是经常被面试官问到什么是离屏渲染? 哪些属性会引起离屏渲染?为什么会导致离屏渲染? 相信...

  • 离屏渲染

    离屏渲染是在iOS开发过程中脱离不了的话题,那么什么是离屏渲染以及哪些情况会导致离屏渲染呢?以及离谱渲染有哪些优势...

  • UI视图及UITableView流畅性优化

    一.离屏渲染 1. 在屏渲染和离屏渲染 在屏渲染是指在当前用于显示的屏幕缓冲区进行GPU渲染操作 离屏渲染是指在当...

网友评论

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

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