【问题标题】:LWJGL doesn't recognize OpenGL on Raspberry PiLWJGL 无法识别 Raspberry Pi 上的 OpenGL
【发布时间】:2017-02-07 17:42:51
【问题描述】:

所以我试图在我的 Raspberry Pi 3 上运行一个使用 LWJGL 作为后端的 LibGDX 游戏。我在 pi 上尝试了各种 gl 驱动程序组合:

  • 实验性驱动程序:游戏开始后很快崩溃,出现 JVM 错误,完全不稳定
  • 没有实验驱动:好像用了软件渲染,很慢
  • 仅限专有驱动程序(已卸载台面):LWJGL 初始化 gl 失败并崩溃(下面的堆栈跟踪)

因为我认为专有驱动程序是最稳定的 GL 驱动程序,所以我打算使用它。另外,我知道 OpenGL 工作正常,因为 glxgears 和 JOGL 工作正常。

那么,有没有人有任何提示或想法从哪里开始寻找?这是 LWJGL 问题还是 GL 驱动程序问题?

提前谢谢你, 曼努埃尔

堆栈跟踪:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: OpenGL is not supported by the video driver.
       at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(LwjglGraphics.java:322)
       at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setupDisplay(LwjglGraphics.java:216)
       at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:144)
       at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:126)
    Caused by: org.lwjgl.LWJGLException: Could not init GLX
       at org.lwjgl.opengl.LinuxDisplayPeerInfo.initDefaultPeerInfo(Native Method)
       at org.lwjgl.opengl.LinuxDisplayPeerInfo.<init>(LinuxDisplayPeerInfo.java:61)
       at org.lwjgl.opengl.LinuxDisplay.createPeerInfo(LinuxDisplay.java:831)
       at org.lwjgl.opengl.DrawableGL.setPixelFormat(DrawableGL.java:61)
       at org.lwjgl.opengl.Display.create(Display.java:846)
       at org.lwjgl.opengl.Display.create(Display.java:757)
       at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(LwjglGraphics.java:314)
       ... 3 more

【问题讨论】:

  • 树莓派没有nvidia卡
  • 你的司机是什么?
  • 其实我也不确定了。之前,当我卸载 mesa 驱动程序时,另一个驱动程序启动了稳定的 open gl 支持。但我不能再复制它了,老实说我不太确定如何管理树莓派上的图形驱动程序......

标签: opengl-es libgdx raspberry-pi3 lwjgl jogl


【解决方案1】:

LWJGL 和 LWJGL3 确实支持开源 (Mesa) OpenGL 驱动程序。用于 Raspberry Pi 的 Minecraft Java 版的大量演示证明了这一点。

事实上,LibGDX 在 Raspberry Pi 3 上运行顺畅,如 PokeMMO 所示。

正确的方向是追求开源驱动程序,在撰写本文时已不再标记为实验性。事实上,这是在 Raspberry Pi 4 上使用加速 3D 图形的唯一方法。

因为我认为专有驱动程序是最稳定的 GL 驱动程序,所以我打算使用它。另外,我知道 OpenGL 工作正常,因为 glxgears 和 JOGL 工作正常。

JOGL 的优势在于支持专有的 GLES 驱动程序(用于 Pi Zero)以及 OpenGL 后端。不过,专有驱动程序无法运行完整的 OpenGL,因此它可能看起来只是因为 Pi 3 的 CPU 足以在软件渲染中全速运行 glxgears。

【讨论】:

    猜你喜欢
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多