运行QML应用程序时,Qt5.6中的黑名单图形卡会发生什么情况?

运行QML应用程序时,Qt5.6中的黑名单图形卡会发生什么情况?,qt,opengl,angle,qt5.6,Qt,Opengl,Angle,Qt5.6,即将发布的Qt5.6引入了一个黑名单来标记一些已知不足以支持OpenGL或Angle的图形卡 确认 但同时设置了禁用桌面gl和禁用角度的卡上的QML应用会发生什么情况?那些用户根本不能运行QML应用程序吗?他们不能使用OpenGL来加速Qt Quick,不。这是一个非常严重的缺点。不幸的是,Windows上OpenGL的状态是一场噩梦。“普通”的Windows计算机将有一个基于Intel的GPU,带有古老的驱动程序,这些驱动程序的缺陷足以导致Qt甚至不尝试使用任何3D(OpenGL或Di

即将发布的Qt5.6引入了一个黑名单来标记一些已知不足以支持OpenGL或Angle的图形卡

确认


但同时设置了
禁用桌面gl
禁用角度
的卡上的QML应用会发生什么情况?那些用户根本不能运行QML应用程序吗?

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

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

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

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

  • 使用OpenGL CPU实现,如Mesa。如果您的应用程序附带了
    opengl32sw.dll
    ,则Qt可以获取它
  • 使用,这是一个专门的基于CPU的渲染器,用于Qt Quick项的子集。与Mesa相比,它的速度快得难以置信(因为它不需要通过OpenGL管道来绘制矩形——它可以使用2D光栅化器绘制矩形);另一方面,某些东西停止工作,如着色器效果。目前,它只能在商业许可下使用,但在5.8版本中,它将是开源的

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

谢谢。让我们从挑剔开始,这是一个非常有趣的问题。根据我的经验,Qt区分了两种应用程序:Qt小部件和Qt-QML应用程序(confirm)。Qt模块I链接也称为“qml”。所以问题是,有可能编写没有QtQuick的QML应用程序吗?是的,有可能。例如,声明性状态机框架不使用Qt-Quick,但它仅使用QML(使用该语言)。如果不链接到Qt Quick(例如,在
.pro
文件中使用
Qt+=Quick
),则无法使用
QQuickWindow
QQuickView
等类型。OTOH:Qt Quick 2类型通过插件可供QML使用。这允许您在QML中实际创建它们,而无需任何链接。非常好的建议,谢谢。你能为5.8版本中的开源2d添加一个参考吗?这对我来说是新鲜事,明白吗,看起来像。