开源改变世界

帧绘制延迟执行命令 #1286

推推 grbl 3年前 (2023-01-30) 186次浏览
打开
3 个任务中的第 1 个
fwillo 打开了这个问题 2021 年 10 月 3 日 · 3条评论
打开
3 个任务中的第 1 个

帧绘制延迟执行命令#1286

fwillo 打开了这个问题 2021 年 10 月 3 日 · 3条评论

注释

帧绘制延迟执行命令 #1286

我换了一台新电脑来控制我的数控机床。这里我想使用集成的 Intel HD 2000 显卡。在此之前,我有一个专用 GPU,因为内部 GPU 会导致大量实时问题。但现在看来,内部 GPU 造成了巨大的延迟。这意味着,当 LinuxCNC 启动时,我发出手动移动命令,只要我按下按钮,命令就不会执行,但只要窗口需要在“预览”部分绘制新框架。在绘制新框架之前,我根本无法打开菜单或其他任何东西。在我的例子中,CNC 在一个方向上移动了 5-6 秒,即使执行了 g 代码。

我的系统的 GPU 加速在arch wiki上有描述,我尝试了不同的东西来解决这个问题(glxgears 在任何地方都可以正常工作,所以绘图必须在一些不同的后端上运行)。我也可以通过再次获得外部 GPU 来解决这个问题,但现在我认为这个问题成为次要问题。

这让我想知道,即使绘图过程足够快,预览框架(或一般窗口的框架)的绘制是否会在 CNC 机器的运动执行中引入某种顺序的延迟?如果是这样,难道不应该将它解耦,这样框架绘图不会导致命令延迟并关闭整个程序直到完成(独立于程序其余部分的输入更改)?

如果我对 linuxcnc 的整体工作原理有错误的想法,请纠正我。我不太熟悉 linuxcnc 的代码并且正在观察导致这个问题的这种行为。期待一些贡献。

有关我的硬件和软件的信息:

  • 我正在使用这个 Linux 发行版和版本(通常用 表示lsb_release -a):Arch Linux
  • 我正在使用这个内核版本(显示为uname -a):5.14
  • 我在跑步 …
    • 来自 linuxcnc.org 的二进制版本(包括 buildbot.linuxcnc.org)
    • 我自己构建的二进制文件(在此处描述)
    • 来自 linuxcnc.org 之外的其他来源的二进制版本
  • 我正在使用这个 LinuxCNC 版本(显示在包管理器中,或者对于 git 版本,scripts/get-version-from-git):2.8.0
  • 我正在使用此用户界面 (GUI)(例如 AXIS、Touchy、gmoccapy 等):AXIS
  • 我正在使用此接口硬件供应商和芯片组(例如,并行端口、以太网端口、FPGA 卡):并行端口

以下是我重现该问题所遵循的步骤:

  1. 运行图形功能不足的机器(例如 Arch Linux 上的 Intel HD 2000 图形)
  2. 打开LinuxCNC
  3. 尝试一些手动动作并观察行为

这是我期望发生的事情:

即使框架未完成绘制,也会立即响应按键

这是发生了什么:

只要在画框的时候就执行相应的手动移动命令

在此之前它工作正常:

当没有图形加速导致可察觉的滞后时,它“有效”。

帧绘制延迟执行命令 #1286
合作者

我想这取决于 GUI/用户界面的编写方式。
AFAIK 图形延迟不会影响编程的运动,但
可能会影响键盘/鼠标输入处理。

可能是 LinuxCNC 总是要等预览完成
再处理命令。

你有一个非常复杂的背景图吗?如果是这样,您可以
在 gcode 文件中禁用预览: https ://linuxcnc.org/docs/html/gui/axis.html#axis:preview-control

帧绘制延迟执行命令 #1286
作者
弗维洛 评论了 2021 年 10 月 5 日  

事实上,我没有复杂的背景图。当然,一个解决方案是禁用它。我还可以从 Preview 切换到 DRO,这解决了糟糕的驱动程序环境问题。尽管如此,它还是困扰着我,因为对我来说,延迟似乎是由帧渲染引起的。所以原则上,从我的角度来看,即使在 DRO(或禁用预览)中,整个窗口的文本渲染等也会延迟程序的动作。使用 Intel 高清显卡查看预览时的极端延迟并没有减少到手动输入,但在我的案例中也影响了执行的 g 代码。

帧绘制延迟执行命令 #1286
合作者
安迪普 评论了 2021 年 10 月 5 日  

不应影响 G 代码,也不应影响 HAL 慢跑(例如,使用硬件按钮或慢跑轮)。
实时子系统的要点是确保用户空间延迟不影响运动。

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

3人参加
帧绘制延迟执行命令 #1286帧绘制延迟执行命令 #1286帧绘制延迟执行命令 #1286

喜欢 (0)