GDC: Intel PixelSync et InstantAccess
Intel profite de la GDC pour annoncer deux nouvelles extensions graphiques dédiées au GPU intégré des processeurs Core de 4ème génération (Haswell). Celles-ci permettent de passer outre les limitations des API graphiques et ont pour but de rendre l'utilisation du GPU plus efficace, principalement en économisant de la bande passante mémoire, une denrée rare pour les GPU intégrés.
PixelSync
La première technologie se nomme Pixel Shader Ordering, ou PixelSync en langage commercial. Elle permet de garantir l'ordre d'écriture en mémoire des pixels affectés par une transparence. Traditionnellement, ce sont les ROP qui s'en chargent aidés par un principe qui consiste à rendre les surfaces transparentes en dernier lieu, une fois que toutes les surfaces opaques ont été traitées.
Si le mélange (blending) est personnalisé et traité via un pixel shader, ce qui est nécessaire avec des formats de données personnalisés ou avec plusieurs niveaux de transparences, cet ordre n'est plus garanti et dès qu'un pixel est terminé, il est écrit en mémoire, peu importe si un pixel précédent, peut-être plus lourd à calculer est toujours en cours de traitement. Ce côté aléatoire dans l'ordre d'écriture des pixels en mémoire pose problème dans le cas du traitement des surfaces transparentes, d'autant plus si elles sont multiples : puisqu'elles doivent être mélangées à la surface qu'elles laissent entrevoir, cette dernière doit avoir été traitée avant.
A droite, un exemple de rendu sans technique de respect de l'ordre des pixels lors d'un mélange. Aléatoirement, la face inférieure du phare peut être rendue par-dessus la partie supérieure. A gauche, PixelSync évite ce problème.
Une solution à ce problème a été présentée par AMD avec les Radeon HD 5000 et se nomme Order Independant Transparency (OIT), une technique utilisée pour les cheveux TressFX dans Tomb Raider. Elle consiste, pour les zones affectées par des transparences multiples, à retenir en mémoire tous les pixels qui correspondent à une même coordonnée à l'écran. Une fois la scène passée en revue, ils sont triés et mélangés dans le bon ordre. Cette approche est lourde puisqu'elle peut décupler le nombre de pixels écrits en mémoire. Avec PixelSync, Intel en propose une version simplifiée : si le moteur graphique s'arrange pour soumettre les triangles transparents au GPU dans le bon ordre, cet ordre sera respecté.
Le coût en performances de Pixel Sync sera en général nettement moindre que celui de l'OIT, et simplement lié au fait que le traitement de certains pixels devra se mettre en pause pour garantir l'ordre d'écriture en mémoire. C'est cependant moins flexible et moins passe-partout mais cette approche peut avantageusement remplacer l'OIT dans certains cas simples (ce n'est pas utilisable pour TressFX bien entendu). Codemaster a d'ores et déjà annoncé mettre en place cette optimisation pour GRID 2, tout comme Creative Assembly pour Total War Rome 2.
Vous pourrez retrouver une démo de PixelSync par ici .
InstantAccess
La seconde extension proposée pour Haswell, Direct Ressource Access (DRA) ou InstantAccess, représente la version Intel de la technologie Zero Copy d'AMD. Attendue depuis des lustres, elle permet d'éviter des transferts presque surréalistes entre le CPU et le GPU. Bien que cela paraisse naturel puisque ceux-ci partagent une même mémoire centrale, le problème est que les API graphiques ne sont pas prévues pour ce cas de figure et qu'elles demandent le transfert inutile de certaines données d'une zone mémoire réservée au CPU à une autre zone mémoire réservée au GPU.
InstantAccess tout comme Zero Copy permettent d'éviter ce cas de figure à travers un mécanisme qui donne au CPU un pointeur vers certains buffers présents dans la mémoire réservée au GPU, tout en protégeant ces espaces mémoire lorsque cela est nécessaire, typiquement quand le GPU doit y accéder. De quoi éviter de perdre du temps et de gaspiller de la bande passante mémoire avec des copies inutiles.
Vous pourrez retrouver une démo d'InstantAccess par ici .
Contenus relatifs
- [+] 07/02: Windows 10, Meltdown et Spectre : q...
- [+] 26/03: Nouveaux Pentium et Core i3 Haswell...
- [+] 01/10: Perfs avec 2, 4, 6 et 8 cœurs : 4 j...
- [+] 29/08: Intel Haswell-E, LGA 2011-v3 et DDR...
- [+] 12/08: Intel désactive TSX suite à un bug
- [+] 21/07: +100 MHz pour +0$ sur les Core i3 e...
- [+] 23/06: i3-4370, i3-4160 et Pentium G3460 e...
- [+] 17/06: ASUS permet l'oc du G3258 sur toute...
- [+] 13/06: Core i7-4790K en test, Devil's Cany...
- [+] 11/06: EUs des iGPU Broadwell et Skylake