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.

[参考译文] PROCESSOR-SDK-AM57X:EGL_PIXMAP_BIT 配置

Guru**** 2595805 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/585985/processor-sdk-am57x-egl_pixmap_bit-configuration

器件型号:PROCESSOR-SDK-AM57X
主题中讨论的其他器件:AM5728

您好!

我们有一个与 eglPixmap 应用类似的图形应用、该应用写入 AM5728平台上的像素图缓冲区。 我们计划将此应用移植到较旧版本的最新 PSDK、即 i.e、v3.02.00.05。 为此、我尝试使用 与 PSDK v3.02.00.05相对应的 Linux 文件系统运行 eglPixmap 应用程序(来自 git.ti.com/.../eglPixmap)。 但是、我会得到以下错误-

(笑声)

无法选择配置:0

初始化 EGL 失败

我发现以下主题中讨论的类似问题-

https://e2e.ti.com/support/embedded/linux/f/354/t/547595

https://e2e.ti.com/support/arm/automotive_processors/f/1020/t/547804

根据上述主题、我的理解是应该在 PSDK v3.02中修复该问题。 由于我使用的是 PSDK 3.02.00.05、我不确定为什么会出现此问题。

如果我在这里遗漏了一些东西、请告诉我。

此致、

制造商  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    通过迁移到从 https://git.ti.com/graphics/omap5-sgx-ddk-um-linux 获取的最新 EGL 库、我能够解决"无法初始化 EGL"错误。 是否计划了包含此更新的新 PSDK 版本?

    此外、我还有一些其他问题-

    1.是否可以提供半平面缓冲区(包含 NV12映像)作为"eglCreateImageKHR"的输入映像? 如果是、是否有任何示例可以证明这一点?  https://git.ti.com/glsdk/omapdrmtest/blobs/master/util/display-kmscube.c 上的示例 也对 NV12情况使用单个 FD。   

    2.是否可以将像素图表面(用于离屏渲染)配置为半平面? 在 eglPixmap  示例中、分屏缓冲区的分配方式为"GBM_FORMAT_XRGB888888"。 是否也支持 NV12 (GBM_FORMAT_NV12)? 如果是、是否有任何示例可以证明这一点?

    3.在上面的问题2中添加,我想使用 GBM_BO_IMPORT () API 作为离屏缓冲区。 我可以使用"GBM_BO_IMPORT_FD"选项导入缓冲区。 但是、我的理解是、该选项不适用于半平面缓冲器。 是否支持/计划支持"GBM_BO_IMPORT_FD_PLAN"选项?

    此致、

    制造商

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Manu、
    SGX-um 最新更改作为 DRA7x 版本的 PSDKLA3.02的一部分添加、因此可直接为 PSDKLA 3.02提供库、但不适用于早于此修复程序发布的 AM5x SDK。

    1) 1)可以针对此选项测试 kmscube 的 viddec3test。
    viddec3test --kmscube --connector 32 stream.mp4 --fps 30

    2)和3) Pixmap 仅适用于 RGB32。 下面是伪代码,我测试了使用 kmscube 将 RGB 缓冲区作为纹理添加到 EGL


    int dfd = omap_bo_dabuf (buf->bo[0]);// RGB32缓冲器的 fd。
    EGLint attrib_list = EGL_none;
    struct GBM_import_FD_DATA GBM_dmabuf ={
    .fd = dfd、
    .width = buf->width、
    .height = buf->height、
    .STRIDE = buf->螺 距[0]、
    .format = GBM_FORMAT_ARGB8888
    };

    GBM.bo = GBM_BO_IMPORT (gbm.dev、GBM_BO_IMPORT_FD、&GBM_dmabuf、
    GBM_BO_USE_SCANOUT | GBM_BO_USE_Rendering );

    if (!GBM.bo){
    错误("GBM_BO_IMPORT 失败\n");
    返回-1;


    EGL_img = eglCreateImageKHR (display、EGL_NO_Context、
    EGL_native_PIXMAP_KHR、GBM.bo、attrib_list);

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

    您好 Ramprasad、

    感谢您的建议。

    [引用 user="Ramprasad"]
    1) 1)可以针对此选项测试 kmscube 的 viddec3test。
    viddec3test --kmscube --connector 32 stream.mp4 --fps 30
    [/报价]
    AM57x 似乎不支持使用 kmscube 的 viddec3test。 但我得到了相应的源(git.ti.com/.../glsdk_7.x)。 遗憾的是、它看起来像单平面缓冲器、并且在本示例中、甚至对于 NV12格式也使用了单个 FD (请确认这是否正确)。 我想知道是否可以为"eglCreateImageKHR"提供两个独立的 FDS (分别为亮度和色度)作为输入?

    [引用 user="Ramprasad"]
    2)和3) Pixmap 仅适用于 RGB32。 下面是伪代码,我测试了使用 kmscube 将 RGB 缓冲区作为纹理添加到 EGL
    [/报价]

    明白。 我正在尝试探讨是否可以在 SGX 和 H.264视频编码器之间共享缓冲区、以避免不必要的 memcopy。 在我的应用中、RGB32离屏缓冲区将包含 NV12格式的映像。 我想知道是否有办法将其作为 H.264编码器的输入、因为编码器需要两个平面(以及2个 dma-buf FDS)、但只有一个 dma-buf FD 可用。

    此致、
    制造商