QT bug ig9icd64.dll

QT bug ig9icd64.dll

ig9icd64.dll 处有未经处理的异常

遇到了一个 奇奇怪怪的bug, 一般的QT程序中 在main.cpp 中初始化一个窗口进行显示后,进行执行 QApplication的 执行 一般是如下的结构:

// QT 5.11 的例程程序 示例
int main(int argc, char **argv)
{
    QGuiApplication app(argc, argv);

    AnalogClockWindow clock;
    clock.show();

    return app.exec();
}

但是不知到为什么问题, 调试程序的时候突然出现了,如图所示的错误, 提醒 ig9icd64.dll 处有未经处理的异常,调试发现是在执行最后一句,return app.exec();

ig9icd64.dll
ig9icd64.dll

进行一定搜索之后,找到了一篇blog介绍Qt上OpenGL画图不能正常使用,程序崩溃, 介绍的很详细, 然后解决方法是

更新显卡驱动或者重新安装一下显卡驱动

查看了很多网站,以及在Intel 的官方社区里面都有人提出这个的问题,而且应该是一个普遍的一个问题了

给出几个参考链接 以供查询

Crash in ig9icd64.dll on intel 630 (and similar) gpu in 64bit windows 10 #23863
Editor doesn't draw properly (one frame lag) on systems with Intel drivers (driver vendor bug)

最终发现了QT官方给出的一个BUG 报告中Windows/IntelHD Graphics 620: Qt Quick application crashes if it contains a visible element, with certain compilers
介绍了这个 bug 是由于硬件渲染出现了问题, 自己想办法更新驱动或者开启软件渲染来避免问题,开启方法可用以下语句:

QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Software);

或者使用

QT_OPENGL = angle

来抑制崩溃

官方还给出了详细的介绍,以及调用的堆栈信息,可以自己查阅相关内容

2019_08_11

原文地址:https://www.cnblogs.com/hugochen1024/p/12570610.html