Я позаботился о том, чтобы отключить слой ANGLE в моем приложении Qt, но, видимо, этого не происходит. Когда я запустить приложение в отладчике CodeXL, журнал событий содержит такие строки:Согласно CodeXL, я не могу отключить слой ANGLE в Qt
DLL Loaded: C: \ Windows \ SysWOW64 \ d3d11.dll
Так это загрузка Direct3D, который в Qt Я думаю, только через ANGLE. Также нажатие кнопки «Break» в CodeXL ничего не делает, что для меня означает, что никаких реальных вызовов OpenGL не происходит, их переводят только на D3D.
Журнал событий также говорит, что это:
Debug Строка: (. Указанный модуль не может быть найден) Не удалось загрузить opengl32.dll
Почему же это может произойти, как может Я чиню это?
Причина, по которой я хочу отключить ANGLE, заключается в том, что в противном случае я не могу отлаживать код CodeXL (он не поддерживает отладку D3D).
Моя система:
- для Windows 10
- Первый GPU: Intel HD Graphics 5500
- Второй GPU: AMD Radeon R5 M330 (я думаю, что это одна мое приложение использует)
Мой код:
main.cpp:
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickFramebufferObject>
#include <QOpenGLShaderProgram>
#include <QOpenGLFramebufferObject>
#include <QQuickWindow>
class MyItem : public QQuickFramebufferObject {
Q_OBJECT
public:
Renderer* createRenderer() const;
};
class MyItemRenderer : public QQuickFramebufferObject::Renderer {
public:
void render() {
update();
}
QOpenGLFramebufferObject* createFramebufferObject(const QSize &size) {
QOpenGLFramebufferObjectFormat format;
format.setAttachment(QOpenGLFramebufferObject::CombinedDepthStencil);
return new QOpenGLFramebufferObject(size, format);
}
};
QQuickFramebufferObject::Renderer* MyItem::createRenderer() const {
return new MyItemRenderer();
}
int main(int argc, char **argv) {
qputenv("QT_OPENGL_BUGLIST", "Z:/disable_angle.txt");
QGuiApplication::setAttribute(Qt::AA_UseDesktopOpenGL);
QGuiApplication app(argc, argv);
qmlRegisterType<MyItem>("MyItem", 1, 0, "MyItem");
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
#include "main.moc"
main.qml:
import QtQuick 2.0
import MyItem 1.0
import QtQuick.Window 2.2
Window {
visible: true
width: 400
height: 400
MyItem {
anchors.fill: parent
}
}
Z: /disable_angle.txt:
{
"entries": [
{
"id": 1,
"description": "Disable angle",
"os": {
"type": "win"
},
"features": [
"disable_angle"
]
}
]
}