Qt 5.9 a apporté une nouveauté presque invisible pour pas mal de gens : le rendu d’applications Qt Quick par OpenVG. Il s’agit d’une API pour accélérer le rendu d’interfaces en 2D sur du matériel où seul le rendu logiciel est possible — principalement, certaines plateformes embarquées (comme les NXP iMX6 SoloLite ou Vybric VF5xxR, qui utilisent le GPU GC355). La dernière version d’OpenVG est la 1.1, sortie en 2008 : la norme n’a rien de nouveau, elle n’évoluera probablement plus, mais reste très implémentée. OpenVG n’a rien de neuf pour Qt : du temps de Qt 4, une implémentation de QPainter pouvait utiliser OpenVG. L’utilisation actuelle est quelque peu plus limitée en termes de fonctionnalités.
L’intérêt d’OpenVG pour Qt est le déploiement sur des plateformes embarquées, où Qt Quick est de plus en plus utilisé. Cependant, avec comme prérequis une implémentation d’OpenGL 2.0, cela limite énormément les plateformes compatibles, surtout dans les segments bon marché, où les GPU ne sont pas compatibles avec OpenGL. C’est déjà dans cette optique que le moteur de rendu logiciel avait été développé. Sa performance peut être largement améliorée si le GPU implémente la norme OpenVG 1.1, tout en gérant la grande majorité des fonctionnalités de Qt Quick.
Dans l’embarqué, cela laisse donc trois possibilités pour effectuer le rendu : purement logiciel s’il n’y a pas de GPU, avec OpenVG si le GPU ne gère pas OpenGL, puis idéalement OpenGL. Ce dernier reste la technologie préférée, puisque le GPU peut largement optimiser les appels effectués : par exemple, sur Raspberry Pi, qui gère tant OpenVG qu’OpenGL, il est plus facile d’atteindre les soixante images par seconde avec OpenGL qu’OpenVG.
Cette implémentation du moteur de rendu est limitée par rapport à celle d’OpenGL. Notamment, tout ce qui concerne la 3D et les shaders n’est pas pris en compte, puisque ces fonctionnalités sortent complètement du cadre d’OpenVG. Les modules comme les particules et les effets graphiques ne pourront pas fonctionner, puisqu’ils dépendent explicitement d’OpenGL.
Source : Getting more out of Qt Quick with OpenVG.
Partager