【问题标题】:OpenGL support broken after updating GPU drivers更新 GPU 驱动程序后 OpenGL 支持中断
【发布时间】:2023-03-11 14:55:01
【问题描述】:

在 EVGA GTX 1080 FTW 上将 NVidia 驱动程序更新到 378.49 后,我开始使用 libGDX 遇到此异常。

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:229)
    at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setupDisplay(LwjglGraphics.java:174)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:138)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)
Caused by: org.lwjgl.LWJGLException: Pixel format not accelerated
    at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
    at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
    at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:253)
    at org.lwjgl.opengl.Display.createWindow(Display.java:306)
    at org.lwjgl.opengl.Display.create(Display.java:848)
    at org.lwjgl.opengl.Display.create(Display.java:757)
    at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(LwjglGraphics.java:220)
    ... 3 more

OpenGL Extensions Viewer 显示 OpenGL 4.5 版在我的 GPU 上可用。

我尝试强制 jrm 可执行文件在我的 NVidia GPU 上运行(它们实际上是在上面运行,但我只是想确保)

其他基于 OpenGL 的应用程序运行良好。另外,我尝试从 Steam 上运行一个已编译的 libGDX 游戏,它似乎运行得很好。

我尝试使用具有不同 Java 版本的不同 JRM。我执行了干净的驱动程序重新安装并重新启动了几次。

该异常同时出现在 Android Studio 和 IntelliJ 中。

config.allowSoftwareMode = true; 不起作用(也不应该)。当 libGTX 需要 2.0 时,Windows 仅支持 OpenGL 1.1 的软件渲染。

【问题讨论】:

  • 这家伙点赞了哈哈
  • 可能是378.49驱动有问题。 Minecraft also seems to have some troubles with it,不知道是不是同样的问题。
  • 是的,这似乎是驱动程序问题。将等待更新和/或官方评论。
  • 似乎显示的某些属性(颜色、深度缓冲区大小等)无效。可能是驱动程序错误。

标签: java opengl libgdx lwjgl


【解决方案1】:

我也有同样的问题。

线程“LWJGL 应用程序”中的异常
com.badlogic.gdx.utils.GdxRuntimeException:视频驱动程序不支持 OpenGL。 我刚刚从 Nvidia 376.33 下载并安装了以前的驱动程序,它解决了我的问题(windows 10 64bit)。

【讨论】:

【解决方案2】:

我们最近受到了新的 NVIDIA 驱动程序崩溃的影响,尤其是 3dVision 使用 java 和 LWJGL 导致的崩溃。

我尝试了一切,终于找到了完全解决问题的方法,所以我想分享我的发现。

该错误分为两个阶段。一种是由驱动程序本身引起的,一种是由 3dVision 引起的。驱动程序本身停止使用 OpenGL 初始化函数,导致“Pixelformat 未加速”,3dVision 甚至可能在非 LWJGL 函数上崩溃,例如 GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice()。

虽然听起来很奇怪,但解决方案是在 windows 上严格使用 javaw.exe 而不是 java.exe。我知道唯一的区别是javaw针对WINDOW子系统,而java针对CONSOLE子系统https://msdn.microsoft.com/en-us/library/fcc1zstk.aspx?f=255&MSPPError=-2147217396,但由于某种原因,它解决了崩溃。

不过,这就是问题所在。仅使用“javaw”不会解决问题。必须直接调用可执行文件。仅在安装了 java 的系统上调用“javaw”的问题在于,它将调用位于 system32 或 C:\ProgramData 中的虚拟 javaw.exe。这个虚拟文件会将命令委托给最新安装的 java.util.如果发生这种情况,就会发生崩溃。

如果您有一个崩溃的测试程序,您可以尝试使用“javaw -jar test.jar”和“C:\PathToJavaHome\bin\javaw.exe -jar test.jar”来执行它。第一个会崩溃,第二个会工作。

【讨论】:

  • 我们很遗憾得知您的原因
猜你喜欢
  • 2013-03-12
  • 2020-03-02
  • 1970-01-01
  • 2013-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
  • 2021-08-22
相关资源
最近更新 更多