This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM5728:双显示器问题

Guru**** 2551110 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/606164/linux-am5728-dual-display-issue

器件型号:AM5728

工具/软件:Linux

你(们)好

我们使用    ti-processor-sdk-linux-am57xx-evm-03.01.00.06开发了 GC320和3D GPU 的三个显示屏和 GUI。

我们使用了 VID1 (1080p60 -> HDMI1)、VID2 (3D GPU 的多层-> LCD1)、VID3 ( 视频的字幕(使用的 GC320)-> HDMI1 )、GFX (HDMI1的写回-> LCD2)。

VID3用作 ZORDER (3)、 DSS 的覆盖层 很好地显示为 HDMI1。

我们同时使用 drmModeAtomicCommit 进行三次支付。 和 drmModeAtomicAlloc/drmModeAtomicFree 之后使用 drmModeAtomicCommit。

我们注意到,首次 lipsync (VID1 (1080o60)和 VID3 (SUBTITLE)都非常好。

但是 、随着  时间的推移、lipsync 不匹配。 请使用 DSS (1080p60)显示58~60FPS。

   我们使用应用程序的 drmModeAtomicCommit (异步选项)的计数  为每1秒60次。 但 DSS 不会显示60次。

我们在其下方进行了测试。

VID1 (1080p60 -> HDMI1)、VID2 (IDLE)、VID3 ( 视频的字幕(使用的 GC320)-> HDMI1 )、GFX (IDLE)。

drmModeAtomicAddProperty 是 VID1和 VID3的制造商。

lipsync (VID1 (1080o60)和 VID3 (SUBTITLE)   随时间的推移而匹配。 很好。

VID1 (1080p60 -> HDMI1)、VID2 (IDLE)、VID3 ( 视频的字幕(使用的 GC320)-> HDMI1 )、GFX (写回无效、因为它不使用 VIDIOC_STREAMON)。

drmModeAtomicAddProperty 是 VID1、VID3和 GFX 的 drmfbid。

lipsync (VID1 (1080o60)和 VID3 (字幕)  随时间的推移不匹配。

EMIF 带宽如下所示。

EMIF1 CMD_PEND 72%数据45%    EMIF2 CMD_PEND 72%数据44%

我们有严重的问题。

我们审核并 测试 了 DISPC_IRQSTATUS、DISPC_CONTROL2、DISPC_BA0_FLITIMEDIATE_EN。

如何获得 VID1ENDWINDOW_IRQ 计数 或每 秒显示的 HDMI1?

如何 解决 DSS 获得60 FPS?

非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我让你知道 tesst 的奇怪结果。
    我们在 Linux-4.4.4.19+gitAUTOINC+db0b54cdad-gdb0b54cdad\drivers\GPU\DRM\omapdrm\omapdrm\omap_irq.c 的 OMAPC_IRQSTATUS 处理程序中每秒插入一个 DISPC_IRQSTATUS 计数。

    一旦启动板、在没有我们的应用程序的情况下、VID1ENDWINDOW_IRQ 和 VID3ENDWINDOW_IRQ 的计数始终为每秒60次。
    但是、在没有我们的应用程序的情况下、GFXENDWINDOW_IRQ 几乎每秒59次计数。
    覆盖性能(VID1 (1080p60)-> HDMI1、VID3 (视频的字幕(使用的 GC320)-> HDMI1)没有60 FPS、因为 GFXENDWINDOW_IRQ 不是60个计数、这是正确的吗?

    我们发现 VID1 (VIDEO -> HDMI1)、VID2 (GUI 使用3D GPU -> LCD)、VID3 (SUBTITLE (使用 GC320)-> HDMI1 with ZORDER (3))不使用 GFX。
    lipsync (视频和字幕)非常好用。 没关系。

    但是、当使用 VID1 (1080p60 -> HDMI1)、VID3 (视频的字幕(使用的 GC320)-> HDMI1)和 GFX (测试颜色为30FPS -> LCD)(不使用 VID2)时、lipsync (视频和字幕)会随着时间的推移而不匹配。
    奇怪的是、如果将 GFX 的 drmfbid 用于 drmModeAtomicAddProperty、为什么 VID1的显示速度很慢(它不能得到60 FPS)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    我们已调试 DSS 驱动程序(drivers/GPU/DRM/..)
    我们发现了这个问题。
    OMAP-ARRATICE_WAIT_TO_ENULOC完工 等待三个 CRTC 的每个 vblank。 omap5中 DSS 的速度为低度阻止、用于编织三个 Vblank。 我们修改 DSS 的源并将其解压。

    但是、我们希望您的公司在以后安全地提供与此问题相关的源代码、您的仿真团队将测试三个显示器以实现对60FPS 的归档。
    非常感谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢分享根本原因。 我们将查看它、看看处理它的最佳方法是什么。