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/processor-SDK-DRA7X:在 PSDK 上运行 drmModeSetPlane 的 Kmscube 速度太慢

Guru**** 2560240 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/611021/linux-processor-sdk-dra7x-kmscube-with-drmmodesetplane-running-too-slowly-on-psdk

器件型号:PROCESSOR-SDK-DRA7X

工具/软件:Linux

您好!

  在我的示例中,kmscube 使用 drmModeSetPlane 来布置显示缓冲区,但在 PSDK 3.02.00.03上,立方体运行速度太慢,它布置缓冲区来显示60fps。

  随附的补丁文件是我对 kmscube orgin 代码(git://git.ti.com/glsdk/kmscube.git)的更改。     使用修补程序时,还需要将 bootarg"omapdrm.num_crtc=2"修改为"omapdrm.num_crtc=1"。

  但当我在 glsdk 中运行相同的 kmscube 代码时,它可以 发布缓冲区以显示700~fps。

  是否有人知道 Kmscube 为什么使用 drmModeSetPlane 在  PSDK 上发布运行速度太慢 ?

  谢谢、此致。

SID

e2e.ti.com/.../setPlanetocube.7z

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

    我已将您的问题转发给图形专家。

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

    在 PSDK 上、它按预期运行、运行速度不会太慢。 应用程序只需对齐即可显示 Vsync。

    根据 GLSDK、假设您是7.04版本。 这是以 K3.14为基础的。 在此版本中,setPlanet()函数不会与 Vsync 同步。

    从 K4.1开始、我们实现了对原子模式设置的支持。 这确保了 setPlane()调用在返回之前等待 Vsync。

    这在产品环境中至关重要。 如果您看到超过60fps、则会出现撕裂/急动伪影。

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

    Anand、您好!

    感谢您的回复。

     我在 PSDK 上遇到了一个问题、 如果 我将 LCD 刷新(Hz)设置为60到30、 立方体将显示30fps、但如果我添加其他定理以同时显示图片、立方体将显示速度低于30fps。  

    在我的案例中、由于我的"多维数据集" 程序 很复杂、当它在 PSDK 上运行时、可以显示小于10fps 的数据。  

    您是否有在  PSDK 上实现超过60fps 显示的想法?  

    谢谢、此致。

    SID

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

    您能否提供有关您的要求的更多详细信息? 显示超过刷新率将导致渲染伪影。

    也许、您只想渲染但不想显示? 在这种情况下、一个选项是使用离屏表面。 这将使 GPU 与显示路径脱钩。

    如何添加另一个线程以显示图片? 它是否使用另一个显示管道? 如果是这样、您需要使用原子模式设置来确保在同一 vsync 中更新这两个原子模式。

    此致、
    Anand
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Anand、您好!
    感谢您的回复。 这对我真的很有帮助。
    在调整“立方体”程序后,“立方体”可以显示15 fps,LCD 刷新30 Hz。 实际上、我在两个不同的线程中使用两个不同的显示管道、一个用于 GPU 嵌体(如 kmscube)、另一个用于显示图片。
    实际上、我不知道如何"使用原子模式设置来确保在同一 vsync 中更新这两种模式。" 。
    您能给我一些示例代码来说明如何操作?

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

    有关原子模式设置的更多详细信息、请参阅以下主题:
    e2e.ti.com/.../1770692

    以下应用程序提供了原子模式设置的示例 API 用法:
    github.com/.../drm-atomic.c

    原子模式设置的概念在以下文章中介绍:
    lwn.net/.../

    此致、
    Anand