Panfrost prend désormais en charge OpenGL 3.1 pour les GPU du Mali

Les développeurs de Collabora n'ont pas arrêté de travailler et c'est que ces derniers mois ils ont beaucoup donné à parler et cette fois ce n'est pas l'exception car récemment a annoncé qu'il a annoncé la mise en œuvre dans le pilote Panfrost du support d'OpenGL 3.1 pour les GPU Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) et les GPU Bifrost (Mali G3x, G5x, G7x), ainsi que la prise en charge d'OpenGL ES 3.0 pour les GPU Bifrost.

Ces changements devrait être inclus dans la version Mesa 21.0, qui en est actuellement au stade du candidat au lancement.

Il faut se rappeler que les développeurs de Collabora ont longtemps travaillé sur l'implémentation de contrôleurs pour les tables et un exemple de ceci est le passé Contrôleur de table Gallium, qui implémente une couche intermédiaire pour organiser les API OpenCL 1.2 et OpenGL 3.3 à propos des pilotes prenant en charge DirectX 12 (D3D12) et que leur code source est publié sous la licence MIT.

Le contrôleur proposé vous permet d'utiliser Mesa sur les appareils qui ne sont pas initialement compatibles avec OpenCL et OpenGL et aussi comme position de départ pour porter les applications OpenGL / OpenCL pour qu'elles fonctionnent sur D3D12.

Du côté du nouveau pilote Panfrost, on constate que le GPU Midgard et Bifrost partagent des structures de données communes pour des fonctions fixes, mais Bifrost utilise un ensemble d'instructions fondamentalement différent, ce qui rend difficile la mise en œuvre synchrone des fonctionnalités pour les données GPU.

Sur le plan architectural, Bifrost partage la plupart de ses structures de données à fonction fixe avec Midgard, mais introduit un nouvel ensemble d'instructions. Notre travail pour introduire OpenGL ES 3.0 dans Bifrost reflète cette division.

Certaines fonctionnalités fixes, comme l'instanciation et le retour de transformation, fonctionnaient sans changement spécifique de Bifrost, comme nous l'avons déjà fait dans Midgard. D'autres fonctionnalités de shader, telles que les objets tampons uniformes, nécessitaient des implémentations «à partir de zéro» dans le compilateur Bifrost, une tâche facilitée par la représentation intermédiaire mature du compilateur avec un support de construction de première classe.

Par exemple, les fonctions fixes déjà implémentées pour Midgardcomme le «retour d'information sur la transformation», peut être transféré vers Bifrost sans modifications, tandis que les fonctionnalités telles que les cibles de rendu multiples (MRT) sont limitées à certaines modifications spécifiques de Bifrost.

Dans le même temps, d'autres opérations de shader, telles que les objets de tampon unifié, nécessitent une implémentation de scratch pour le compilateur de shader Bifrost.

Cela fait suite au support d'OpenGL ES 3.0 à Midgard qui a atterri au cours de l'été, ainsi qu'au support initial d'OpenGL ES 2.0 qui a récemment fait ses débuts pour Bifrost. OpenGL ES 3.0 est maintenant testé sur Mali G52 dans l'intégration continue de Mesa, atteignant un taux de réussite de 99.9% dans les tests correspondants du programme de qualité DrawElements.

Cependant, d'autres fonctionnalités, telles que plusieurs cibles de rendu, nécessitaient un code spécifique de Bifrost tout en tirant parti d'autres codes partagés avec Midgard. Pourtant, le travail a progressé beaucoup plus rapidement la deuxième fois, ce qui témoigne de la puissance des codes partagés. Mais vous n'avez pas besoin de limiter votre échange aux seuls GPU Panfrost; Les pilotes open source peuvent partager du code entre les fournisseurs.

De plus, dans l'annonce, il est mentionné que une partie de la duplication du travail a été évitée en utilisant une représentation intermédiaire dans le compilateur, que, avec le code partagé, accélère considérablement le développement et qu'avec cette approche, le code peut être utilisé non seulement pour une famille de GPU, mais également pour différents contrôleurs.

En particulier, les développeurs mentionnent que pour implémenter OpenGL sur les systèmes de bureau, le pilote Panfrost nécessitait l'utilisation de composants Mesa prêts à l'emploi, tandis que le pilote propriétaire pour le Mali se limite uniquement à la prise en charge d'OpenGL ES.

Cependant, la prise en charge d'OpenGL 3.1 de bureau est presque «gratuite» pour nous en tant que contrôleur Mesa en amont en tirant parti de l'infrastructure commune.

Enfin, si vous souhaitez en savoir plus à propos de la nouvelle implémentation Panfrost proposée par les développeurs de Collabora, vous pouvez vérifier les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.