Ajouter un commentaire

V-EZ : une couche d'abstraction légère construite sur Vulkan

Par:
fredericmazue

mar, 28/08/2018 - 14:14

Le 16 février 2016, le Khronos Group a publié les spécifications finales de Vulkan. Vulkan est basé sur la technologie Mantle d'AMD. Vulkan spécifie une interface de programmation de bas niveau pour GPU. Vulkan veut être l'équivalent de DirectX de Microsoft ou de Metal d'Apple. Mais contrairement à ces derniers, Vulkan est multi plates-formes (Windows, Linux, Android, probablement à terme iOS et OS X). Vulkan doit remplacer OpenGL, mais si cette dernière continuera d'exister.

Contrairement à OpenGL qui est une librairie de plutôt haut niveau, Vulkan vise le bas niveau et les performances. Vulkan supporte le multi threading.

Si Vulkan apporte la performance brute, le bas niveau apporte la complexité pour le développeur. Outre la complexité des graphismes, le développeur doit gérer la mémoire et des quantités de détails concernant les constructions des graphismes.

Tout ceci peut se révéler rebutant pour le développeur qui recherche certes plus de performances que ce qu'OpenGL permet d'obtenir, mais souhaite quand même ne pas mettre les mains dans un cambouis trop épais :-)

AMD apporte une solution pour cela : V-EZ. Il s'agit d'une couche d'abstraction légère (un wrapper) en C destinée à alléger la complexité de l'utilisation de l'API Vulkan. V-EZ tente de combler le fossé entre les API graphiques traditionnelles, tout en fournissant une sémantique similaire à Vulkan. V-EZ doit adoucir la prise de contact avec Vulkan :-)

Avec V-EZ, le développeur n'a plus à s'occuper de la gestion de la mémoire, ni de choses barbares telles que les passes de rendu, les couches d'images, les permutations de pipeline, les pools de descripteurs, etc...

V-EZ est open source, disponible sur GitHub. Une documentation complète est disponible sur un site dédié.

Ci-dessous : une représentation de l'API Vulkan et ce que la couche d'abstraction V-EZ masque au développeur.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 DDD   H  H   GGG   Y   Y  M   M 
D D H H G Y Y MM MM
D D HHHH G GG Y M M M
D D H H G G Y M M
DDD H H GGG Y M M