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.

[参考译文] PSDKLA、EGL 应用开发问题、用于从 GBM_bo 获取 OMAP-bo 的 API

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/579234/psdkla-egl-application-development-issue-api-for-getting-omap_bo-from-gbm_bo

Anand、您好!

我们正在采用新的 PSDKLA、我们需要来自 GBM_bo 的 OMAP-bo

以前、我们手动操作了 OMAP 处理方式、但安全性不高

gbmbo_m = GBM_BO_create (...);

gbmBoHandle = GBM_BO_GET_Handle (gbmBO_m).u32;

omapBO_m = omapBofromGbm (omapDevice_m、gbmBoHandle);//将 OMAP 句柄替换为 GBM 句柄(操纵)

但是、现在我们希望使用 API 来执行同样的操作、

以下实现是否会提供相同的效果?

gbmbo_m = GBM_BO_create (...);

omapBoFd_m = GBM_BO_GET_FD (gbmBO_m);

omapbo_m = omapbo_from_dabuf (omapDevice_m、omapBoFd_m);

是否有描述此用例的示例应用?

快速响应将会很有帮助。

提前感谢。

此致、

耶拉普

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

    如果 Anand 遗漏了您的问题、我将其转交给他。

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

    在 K4.4上、您不需要通过环形路进入 FD。 您将可以直接访问相关的 DMABUF FD。 通过它、您可以执行 mmap。 实际上、您甚至不应调用 OMAP-bo API。

    具体而言、您将拥有一个 DMABUF FD、用于在 GBM_BO_create 中分配的 DRM 转储缓冲器。 这样、您就可以使用标准 DRM API 将 FD 映射到应用程序的地址空间。

    有关详细代码、请参阅 DRM 手册页中的"dumb-Buffers"部分。
    manpages.ubuntu.com/.../drm-memory.7.html

    具体而言、应使用以下序列。

    gbmbo_m = GBM_BO_create (...);
    dmabuffd_m = GBM_bo_get_fd (gbmbo_m);
    (笑声)
    RET = drmIoctl (fd、drm_IOCTL_mode_map_dumb、&mreq);
    (笑声)
    MAP = mmap (0、creq.size、PROT_read | PROT_WRITE、MAP_SHARED、FD、 mreq.offset);

    如果您需要一个执行 mmap 的实际应用程序、请参阅以下内容。 这在我们即将推出的3.02版本中进行了验证。
    git.ti.com/.../main.c

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