BUG::关于Qt下的OpenGL在笔记本不接入电源时出现的 illegal non-ASCII character问题

BUG描述:

  笔者的笔记本为联想Y7000p,默认有两个GPU:  

  Nvidia GTX1060 与 HD核显

  在不接外接电源的情况下使用Qt5.9的QOpenGLWidget框架写代码时,有一个特别崩溃的bug,

  总会显示 illegal non-ASCII character编码错误,表现为着色器的第一行代码的第一个字符不识别,显示为“???”。

解决方法:

  (1)接通电源,代码一切正常。

    (2)   在桌面新建txt文本文件,将着色器代码拷贝进去,更改该txt文本名称为着色器名称,使用Qt的资源文件载入该文本。

  (3)打开N卡控制面板,首选图形处理器改为N卡

解决思路:

  这个bug太有趣了,从没遇到过这样的问题,问题出现时,笔者正在装python,以为是python的一些库导致了程序编码库的选择错误。立马卸载了python,又重装了Qt,问题依旧。

最后误打误撞发现了解决方法(2),以拷贝进txt文本的方式,解决第一个字符不识别的问题,(现在想来,应该是HD显卡不识别通过Qt新建的着色器文件)。不过这样重新修改着色器文件太麻烦了,又是无意间,在插电源的情况下 ,代码恢复了正常。故推断问题应该出在笔记本的电源选项上。更改了电源选项中所有“使用电池”的选项,使之与“插入电源”保持一致,问题依旧,最后才推断问题应该出在显卡的选择上,更改所有程序的默认显卡为N卡后,问题解决。

猜你喜欢

转载自blog.csdn.net/z136411501/article/details/83306516