这个问题已经出现很久了,我的核显是2代酷睿的Intel HD3000,从2015年底开始,越来越多用OpenGL的程序开始工作不正常,如Virtualbox的3D加速,Sketchup等。
用AIDA64一看,是这种情况:
后来查阅资料得知,是因为Intel没有为HD3000/HD2000/HD Graphics这些一代及二代的老核显为Win10更新驱动,以至于程序在manifest文件中的supportedOS加上了Win10之后,OpenGL的DLL就无法被加载。这个问题从来没能得到解决,有一种不完美的解决办法就是修改程序的manifest,把supportedOS里的Win10去掉,但是这样治标不治本。
直到今天发现,去年年底有个大神debug了核显驱动OpenGL的DLL,然后写了个patch,解决了这个问题。
(见这里:https://github.com/LWJGL/lwjgl/issues/119,里面有详细的讨论以及patch的来源以及有网友po出patched的驱动dll)
打了patch之后,一切都解决了。
AIDA64已找到OpenGL:
SketchUp also works well:
值得一提的是,这个pacther也有个bug。因为它是一个32位程序,由于Windows的机制,32位程序没有经过处理直接打开c:\windows\system32的话,会被重定向到c:\windows\syswow64。因此这个patcher并不能patch system32文件夹中的ig4icd64.dll。
最简单的解决方法:把system32文件夹中的ig4icd64.dll剪切到syswow64中,然后用patcher,等它patch之后,再把patched的ig4icd64.dll剪切回system32下。
patch下载:InteHDGraphicsOpenGLPatcher.zip
(关于这个patcher,更多详细请见https://github.com/LWJGL/lwjgl/issues/119)
关于patch之后Virtualbox虚拟机还是无法开启3D加速的原因见这里:https://www.liyanfeng.com/post/122.html
本文地址:https://www.liyanfeng.com/post/113.html(如转载,需注明本原文地址)