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.

[参考译文] SK-AM62P-LP:多线程中的 eglCreateContext 失败

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1362515/sk-am62p-lp-eglcreatecontext-fails-in-multithread

器件型号:SK-AM62P-LP
主题中讨论的其他器件:AM62P

SDK "ti-processor-sdk-linux-am62pxx-evm-09.01.00.08"中的库"EGL GLESv2 wayland-EGL wayland-client wayland-Cursor"

并且返回"#define EGL_BAD_CONTEXT           0x3006"

使用"eglCreateContext "在第二个线程中创建共享上下文时

参考代码

"静态常量 EGLint context_attribs[]={
EGL_context_client_version、3、
EGL_NONE
};

EGLint CONFIG_ATTRIBS[]={
EGL_RENDERABLE_TYPE、EGL_OpenGL_ES3_BIT、
EGL_BLUE_SIZE、5、EGL_GREEN_SIZE、6、EGL_RED_SIZE、 5、
EGL_SURFACE_TYPE、EGL_pbuffer_bit
EGL_ALPHA SIZE、8、
EGL_NONE
};

...

display->EGL.ctx = eglCreateContext (display->EGL.dpy、
 display->EGL.conf、
 上下文、上下文_attribs);
assert (display->EGL.ctx);

"

如何解决此问题?

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

    您好!

    您是否了解过以下内容: https://stackoverflow.com/questions/11726650/egl-can-context-be-shared-between-threads?

    此致、
    克鲁纳尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢,我的代码流看起来与上述代码流类似、但失败了。 
    是否有可供参考的源代码? 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们没有任何参考源代码、但您能否与我们分享您的示例?

    此致、
    克鲁纳尔

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

    抱歉,我无法分享更多详细代码。

    我将在下面的演示中展示我的代码流程、

    皱起螺纹1

    螺纹1{

    /*初始化代码流请参阅"wayland/ Weston·GitLab"*/

    ..

    WL_LIST_INIT();

    wl_display_roundtrip ();

    ...

    联合国妇女地位委员会(妇女地位委员会) /

    INIT_EGL (&DISPLAY、&WINDOW);//此函数将生成 DISPLAY->EGL.ctx

    / /

    create_surface();

    init_gl();

    ...

    联合国妇女地位委员会(妇女地位委员会) /

    睡眠(2);

    / /

    皱起螺纹2

    螺纹2{

    /*初始化代码流请参阅"wayland/ Weston·GitLab"*/

    ..

    WL_LIST_INIT();

    wl_display_roundtrip ();

    ...

    / /

    init_egl (&display,&Window);//在 fun eglCreateContext ()中使用 thread1的 display->egl.ctx,但在运行时将生成"EGL_bad_context"错误

    / /

    create_surface();

    init_gl();

    ...

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

    让我在内部检查一下、我们会回来与您联系。

    此致、
    克鲁纳尔

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

    您好!

    我刚刚运行了一个由其他客户提供的旧示例 、该示例 使用多线程和多上下文。 总之、我能够在 AM62P 上运行他们的示例、而不会出现任何问题。 我相信、这表明 我们的驱动程序/GPU 没有任何错误或限制。

    此致、
    克鲁纳尔

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

    谢谢,

    您的旧示例的工作流程是怎样的、它与我的工作流程相似吗?

    您能否展示有关旧示例的更多详细信息?

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

    您好!

    不幸的是、我无法共享代码片段、因为它属于另一个客户、并且我无权共享代码。 逻辑是类似的、但他们没有使用 Weston、而是使用 DRM/KMS 运行该逻辑。

    此致、
    克鲁纳尔

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

    谢谢你们