Stay up to date with the latest marketing, sales and service tips and news.
本系列博客三部曲的前几部分介绍了 Qt Canvas Painter及其新颖的新功能。本篇文章将重点介绍加速 2D Canvas 性能方面的内容,展示我们如何通过基准测试全面提高性能。
让我们先来总结一下,然后再看看我们是如何取得这些结果的:
在此,我们再次强调以下警告:
Qt Canvas Painter 在 Qt 6.11 版本中仍处于技术预览阶段。这意味着我们还不能保证 API 或 ABI 的稳定性。
另外值得注意的是,这些基准测试是使用 Qt 6.11.0 RC 版本完成的。随着 Qt 加速 2D Canvas 功能的不断开发,性能很可能会有所提高。
Qt Canvas Painter 的主要目标之一是实现高性能,尤其是在带有 GPU 的移动/嵌入式设备上。为了验证这一点,我们显然需要在实际硬件上对我们的加速型 2D Canvas 进行适当的基准测试。而且这种基准测试还应包含其他绘制方式,以便进行公平的比较。
为此,我们使用了 QCPainterBench 应用程序,它具有与 Qt Canvas Painter 和 QPainter 完全相同的测试用例。它包含 6 个单独的测试,可分别启用或禁用:

有了这个应用程序,就可以通过分别启用单个测试用例并比较结果来比较各个绘制特性。但就本博客而言,我们没有时间深入探讨细节,因为我们主要是想对加速后的 2D Canvas 功能的平均预期性能进行大致估算。因此,我们在运行基准测试时启用了默认的测试配置,即除 Flower 之外的所有测试。
为了获得全面的结果,我们在以下系统上进行了测试:
值得注意的是,QPainter OpenGL 的抗锯齿设置为使用 4X MSAA。这应该是性能和画质之间的一个很好的平衡点,而且在所有测试系统上都不会导致明显的性能下降。Qt Canvas Painter 使用基于顶点的抗锯齿方案。此外,我们使用 QSG_NO_VSYNC=1 强制启用基于定时器的渲染,因此结果不会受到垂直同步(Vsync)的影响。
下面是一段简短的视频,展示了基准测试应用程序在两款测试平板电脑上的运行情况。
测试过程中,渲染计数不断增加(例如 1、2、4、8 等),然后测量这对平均 fps 的影响。在开始阶段,渲染性能会受到屏幕更新频率的限制,当渲染次数进一步增加并导致无法按时完成帧渲染时,就会开始出现掉帧。
以下是所有测试系统的基准测试结果。




从上述结果中可以得出很多结论,以下是我认为最有趣的几点:
总结性能数据,我们可以得出与本文开头相同的结论:
在普通 PC 上,Qt Canvas Painter 的性能约为QPainter (使用 OpenGL 后端)的 2 倍;在中低端安卓平板上,约为 5 倍;在高端安卓平板上,约为 10 倍。
我们已尽力为加速型 2D Canvas 提供具体、真实的基准测试和准确结果。不过,如果能在不同系统上验证并获得更多结果,将非常有价值。因此,我们鼓励大家安装最新的 Qt 6.11(预)发布版本,并在自己的开发系统或目标系统上运行QCPainterBench。您可以将测试结果以评论形式提交至此页面、或在 Qt 论坛上发表评论,或创建 CanvasPainter 组件的 Qt Bug 工单。
Stay up to date with the latest marketing, sales and service tips and news.
Download the latest release here: www.qt.io/download.
Qt 6 was created to be the productivity platform for the future, with next-gen 2D & 3D UX and limitless scalability.
Find webinars, use cases, tutorials, videos & more at resources.qt.io
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
Näytä tämä julkaisu Instagramissa.Henkilön Qt (@theqtcompany) jakama julkaisu