渲染又分為離屏渲染與在屏渲染
·On-Screen Rendering
意為當(dāng)前屏幕渲染下隧,指的是GPU的渲染操作是在當(dāng)前用于屏幕緩沖區(qū)進(jìn)行的
·Off-Screen Rendering
意為離屏渲染奢人,指的是GPU在當(dāng)前屏幕緩沖區(qū)以外開辟一個緩沖區(qū)進(jìn)行渲染操作
·何時觸發(fā)離屏渲染
·圓角(當(dāng)和maskToBounds=YES一起使用時)
·遮罩
·陰影
·光柵化
·為何要避免
因?yàn)闀|發(fā) GPU 多通道渲染管線產(chǎn)生了額外的開銷,會增加 GPU 的工作量淆院,很有可能導(dǎo)致 CPU 和 GPU 工作耗時加起來的總耗時超出了16.7ms(1秒60FPS何乎,1000/60)導(dǎo)致 UI的卡頓和掉幀,所以我們要避免離屏渲染土辩。
總結(jié)
當(dāng)我們設(shè)置一些 UIView 的圖層屬性支救,標(biāo)記位于合成之前,不能用于直接顯示的時候拷淘。那么就觸發(fā)了離屏渲染各墨。典型的如圓角屬性包括一些蒙層遮罩。 離屏渲染起源于 GPU 層面启涯,指的是 GPU 新開辟的一塊緩沖區(qū)進(jìn)行渲染操作贬堵。