2016-11-30 4 views
2

Sorry, wenn es dumm klingt. Ich bin neu in der QT-Welt.Warum qt haben bessere Leistung beim Rendern Svg-Datei in opengl als in nativen

Ich führe SVG Viewer Beispiel von QT official website. Und ich finde heraus, dass die Leistung im Native-Modus und im OpenGL-Modus sehr unterschiedlich ist.

Grundsätzlich ist das unterschiedliche dieser beiden Modi. Im nativen Modus ist das Ansichtsfenster ein QWidget; Im OpenGl-Modus ist das Ansichtsfenster ein QGLWidget.

Meine Frage ist, was zu dem Leistungsunterschied führt? Gibt es ein Online-Dokument dazu?

enter image description here

Antwort

6

Die Leistung ist nicht unbedingt anders, aber die CPU-Auslastung ist. Das liegt daran, dass OpenGL die Berechnungen auf die GPU verschiebt.

Sie können OpenGL im Grunde als eine API für die Programmierung der GPU vorstellen.

Beim Umschalten auf „Native“, alle Berechnungen wie die Rasterung der SVG-Daten ist auf der CPU getan, das ist, was Sie im Task-Manager sehen können.

+0

Danke, es macht Sinn für mich! – ricky

+1

Dies ist ziemlich aufschlussreich: Die CPU-Auslastung wird geringer, wenn OpenGL verwendet wird, aber das sagt uns nichts über die Leistung. Letzteres hängt davon ab, wie sich das OpenGL-Back-End-Modul für die bestimmte SVG-spezifische Arbeitslast im Vergleich zum Raster-Backend verhält, das auf der CPU ausgeführt wird. Es könnte möglicherweise in einigen Fällen schlechter funktionieren, z. auf einigen mobilen GPUs. –

Verwandte Themen