//
xiaoaoaode
Published on 2023-08-17 / 10 Visits
0

Win10 OpenGL高版本踩坑

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设置相应的项)