Win10 Intel UHD 620 OpenGL问题
之前使用大佬在Zig下的包装库mach-glfw,使用OpenGL的相关生成器生成了4.6版本的API,但是启动的时候发现发现有如下报错
error(OpenGL): entry point glGetnCompressedTexImage not found!
error(OpenGL): entry point glGetnTexImage not found!
error(OpenGL): entry point glGetnUniformdv not found!
error(OpenGL): entry point glMultiDrawArraysIndirectCount not found!
error(OpenGL): entry point glMultiDrawElementsIndirectCount not found!
然后再尝试使用4.5版本和更低的版本,终于在4.4版本上成功启动,由于我使用的OpenGL的api生成器在运行的阶段会对该每一个API进行检查,所以只要有一个API无法找到,就无法启动程序。
因为我的笔记本默认使用的是UHD620(驱动版本为26.20.xxx.xxxx),然后我尝试升级到31.x版本看看是否解决了这个问题,结果还是不行,在搜索相似API的时候发现了Intel相关论坛上以前很早就提到过这个问题了,但就是没有被解决,这就不知道等到什么时候了。
因为我的笔记本还有个mx250的辣鸡独显,所以我准备使用mx250替代uhd620来运行OpenGL代码,一查才知道Windows上的OpenGL是不能直接选择显卡的,最后在NVIDIA控制面板找到了
然后就可以自定义选择程序,再选择使用的显卡。
就这样我写的OpenGL 4.6 的demo就没报错了,反正人是有点麻。
Windows图形设置注册表保存点
HKEY_CURRENT_USER\SOFTWARE\Microsoft\DirectX\UserGpuPreferences
其中需要填充的注册表
名称
为进程绝对路径,类型
为REG_SZ
,值为GpuPreference=2;
(举例,具体的可能得看使用计算机Windows设置相应的项)