在运行QML应用程序时,Qt 5.6中列入黑名单的图形卡会发生什么?

时间:2016-01-14 17:56:19

标签: qt opengl angle qt5.6

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

确认例如。

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

1 个答案:

答案 0 :(得分:3)

他们无法使用OpenGL来加速Qt Quick,没有。这是一个非常严重的缺点。不幸的是,Windows上的OpenGL状态是一场噩梦。 "平均" Windows计算机将具有基于英特尔的GPU和古老的驱动程序,这些驱动程序足以导致Qt甚至根本不尝试使用任何3D(OpenGL或Direct3D)。 NVIDIA和AMD通常都会更好,至少它们往往更新。

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

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

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

  • 使用OpenGL CPU实现,例如Mesa。如果您将opengl32sw.dll与您的应用程序一起发送,则可以通过Qt接收它。 See the explaination here
  • 使用Qt Quick 2D renderer,这是基于CPU的专用渲染器,用于Qt Quick项目的子集。与Mesa相比,它的速度非常快(因为它不需要通过OpenGL管道来绘制,例如,一个矩形 - 它可以使用2D光栅化器绘制矩形);另一方面,某些事情停止工作,如着色器效果。目前它仅在商业许可下可用,但在5.8中它将是开源的。

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