【问题标题】:QML Performance issue - Qml is rendered with a large delay on LinuxQML 性能问题 - Qml 在 Linux 上的渲染延迟很大
【发布时间】:2022-01-10 11:43:49
【问题描述】:

qml 在 Linux 机器上运行时渲染非常慢(在 Windows 上运行时没有错)。开启 QSG_RENDER_TIMING=1 后,打印输出会在 Qt Quick Scene Graph Events 中的blockedForSync(GUI 线程同步)中显示很长的延迟(每次更改UI 内容):

qt.scenegraph.time.renderer:渲染器中的时间:total=1158ms,preprocess=0,updates=0,binding=0,rendering=1158 qt.scenegraph.time.renderloop:在 1164 毫秒内使用“线程”渲染循环渲染的帧,同步 = 0,渲染 = 1158,交换 = 6 -(在渲染线程上) qt.scenegraph.time.renderloop:帧准备了“线程”渲染循环,polish=0,lock=0,blockedForSync=1158,animations=0 -(在 Gui 线程上)QQuickView(0x9705200 活动暴露, visibility=QWindow::Visibility(Windowed), flags=QFlags<:windowtype>(Window), title="MyApp", geometry=0,0 1024x768)

设置是:

qt.scenegraph.general:线程渲染循环

qt.scenegraph.general:使用sg动画驱动

qt.scenegraph.general:动画驱动程序:使用 vsync:16.67 毫秒

qt.scenegraph.general:纹理图集尺寸:1024x1024

qt.scenegraph.general:R/G/B/A 缓冲区:8 8 8 0

qt.scenegraph.general:深度缓冲区:24

qt.scenegraph.general:模板缓冲区:8

qt.scenegraph.general:样本:0

qt.scenegraph.general: GL_VENDOR: VMware, Inc.

qt.scenegraph.general:GL_RENDERER:软管道上的镓 0.4

qt.scenegraph.general: GL_VERSION: 3.0 Mesa 17.1.5

【问题讨论】:

  • 您的虚拟机是否启用了硬件加速图形?
  • 它不是虚拟机,它是运行在英特尔芯片上的 Linux。我会检查驱动程序。
  • 你使用的是什么版本的 Qt?
  • Qt 版本 5.9.6
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: multithreading performance qt qml render


【解决方案1】:

谢谢,确实是gpu驱动的问题,已经修复了

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 2012-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多