从两个图形库看CPU与GPU渲染的差异

https://zhuanlan.zhihu.com/p/618925299

1
2
3
Cairo与Skia是两个知名的2D渲染图形库。其中,Cairo使用CPU渲染,Skia已切换为GPU渲染加速。本文通过这两个图形库渲染实现的差异来比较CPU与GPU渲染的差异。

综上,通过Cairo与Skia绘制两个相同的三角形描边的比较,可以比较好地理解CPU渲染与GPU渲染的差异之处。由于GPU的基础元素是三角形,导致使用GPU渲染的算法与CPU渲染的算法存在差异。并且,由于GPU本身一些特性,导致它的渲染品质比传统的CPU渲染差。但GPU价格比CPU便宜,速度快,因此实时场景仍然离不开GPU渲染。

blend2d

https://blend2d.com/performance.html

1
2
3
4
5
6
7
8
9
qt
光栅化性能很差/不适合复杂矢量图
cairo
渐变方面存在性能问题
agg
AGG的速度很慢,尤其是在填充量很大的操作
因为它没有SIMD优化来加速像素合成
blend2d
支持SIMD和多线程

nanovgXC

https://github.com/styluslabs/nanovgXC
faster than skia ???

https://github.com/blend2d/blend2d/issues/3

1
2
3
我认为Blend2D会大大击败ThorVG SW渲染器,因为ThorVG基本上使用FreeType代码,这不是为了性能而编写的。我假设ThorVG和Qt给予你类似的性能(ThorVG在某些情况下可能更糟,因为它的SIMD使用非常有限,Qt至少有SIMD组成)。
https://github.com/intel/fastuidraw
将Fastuidraw添加到基准测试中会很好,它似乎是唯一一个基准测试速度比当前技术水平快很多倍的2D渲染器

Qt RHI Painter

https://bugreports.qt.io/browse/QTBUG-74407