Warum kann ich OpenGL ES 3.0 in Qt nicht verwenden?

Ich setze einQSurfaceFormat in meinem Fenster und für dieses Oberflächenformat wurde "3.0" als GL-Versionsnummer festgelegt. Der Code

static QSurfaceFormat createSurfaceFormat() {
    QSurfaceFormat format;
    format.setSamples(4);
    format.setDepthBufferSize(24);
    format.setStencilBufferSize(8);
    format.setVersion(3, 0);
    return format;
}

int main(int argc, char *argv[]) {
    // ...

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    QWindow* window = (QWindow*) engine.rootObjects().first();
    window->setFormat(::createSurfaceFormat());

    // ...
}

Auch inmain() Ich aktiviere den OpenGL ES-Modus wie folgt:

QGuiApplication::setAttribute(Qt::AA_UseOpenGLES);

Dies bedeutet, ich fordere einen GL ES 3.0-Kontext an.

DasANGLE docs sag (in einer Tabelle am Anfang), dassGL ES 3.0 -> D3D 11 API-Übersetzungsunterstützung ist implementiert. Und mein System unterstützt D3D 11 nachdxdiag.exe.

Aber wenn ich meine App starte, die diesen QML-Code enthält ...

Text {
    text: OpenGLInfo.majorVersion + "." + OpenGLInfo.minorVersion
}

... ich sehe "2.0" wird angezeigt. Auch mit der von mir beschriebenen MethodeHie, Ich habe festgestellt, dass die maximal unterstützte Shading-Sprachversion auf meinem PC "100" ist, auch bekannt als 1.0.

Zur gleichen Zeit vondieser Qt-Blog-Beitrag Ich weiß, dass Qt GL ES 3.0-Apps unterstützt.

So Warum kann ich OpenGL ES 3.0 nicht in Qt @ verwende?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage