3

即将推出的 Qt 5.6 引入了一个黑名单来标记一些已知不足以支持 OpenGL 或 Angle 的显卡。

确认例如

但是,QML 应用程序在同时设置disable_desktopgldisable_angle设置的卡片上会发生什么?那些用户根本就不能运行 QML 应用程序吗?

4

1 回答 1

3

他们不能使用 OpenGL 来加速 Qt Quick,不。这是一个非常严重的缺点。不幸的是,OpenGL 在 Windows 上的状态是一场噩梦。“普通”的 Windows 计算机将有一个基于 Intel 的 GPU 和古老的驱动程序,这些驱动程序有足够的漏洞导致 Qt 甚至根本不尝试使用任何 3D(OpenGL 或 Direct3D)。NVIDIA 和 AMD 通常更好,因为至少它们往往是最新的。

通常升级英特尔驱动程序可以解决大多数问题,但您并不总是要求用户升级他们的驱动程序(他们甚至可能无法这样做,例如缺乏管理员权限,和/或使用驱动程序所在的笔记本电脑版本已由供应商固定)。

请注意,即使是其他项目,例如 Chromium 或 Firefox,也有自己的细粒度驱动程序错误黑名单(示例)。

如果您的卡被完全列入黑名单,您可以:

  • 使用 OpenGL CPU 实现,例如 Mesa。如果您opengl32sw.dll随应用程序一起发布,它可以被 Qt 获取。请参阅此处的说明
  • 使用Qt Quick 2D 渲染器,这是一个专门的基于 CPU 的渲染器,用于 Qt Quick 项目的子集。与 Mesa 相比,它的速度快得令人难以置信(因为它不需要通过 OpenGL 管道来绘制,比如说,一个矩形——它可以使用 2D 光栅器来绘制矩形);另一方面,某些事情会停止工作,例如着色器效果。目前它仅在商业许可下可用,但在 5.8 中它将是开源的。

(Nitpick:QML 是语言,Qt Quick 是构建您使用 QML 编程的 UI 的框架/库)。

于 2016-01-14T21:26:06.473 回答