我的问题是 weston-simple-egl(Weston 中包含的示例客户端)因 eglSwapBuffers 中的分段错误而崩溃(两个参数都是非 Null 指针)。我怀疑这与我正在使用 WSL 的事实有关,但我在这里完全不了解,不知道如何找出问题所在。
我有运行 WSL1 和 Ubuntu 20.04.3 的 Windows 10,并自己编译了 Weston 8.0.0。作为 X-Server,我尝试了 MobaXterm 和 VcXsrv。除了 Weston 中包含的 weston-simple-egl 示例之外,一切似乎都运行良好。(其他示例客户端工作正常,虽然我没有尝试每个客户端。)
完整的错误信息是:
“程序”收到信号 SIGSEGV,分段错误。__memmove_avx_unaligned_erms () 在 ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:416
如果您想知道为什么我使用如此奇怪的设置,简短的回答是我必须为我的工作。我可以使用 WSL2(但在设置时遇到问题)或完整的虚拟盒子(但被告知这可能会更成问题)。
如果这有助于理解问题:当我尝试按照本教程实现自己的客户端时偶然发现了这一点:https ://jan.newmarch.name/Wayland/EGL/ 这里的问题是 eglGetDisplay 返回了 EGL_NO_DISPLAY。但是当我调整代码以像在 weston-simple-egl 中一样请求 egl 显示时,我在 eglSwapBuffers 中遇到了相同的分段错误。
那么有人知道这里出了什么问题吗?
更新:如果有人偶然发现这个问题:设置一个新的 WSL2 发行版似乎已经为我解决了这个问题。