Microsoft a annoncé la publication en avant-première de Shader Model 6.10 et d’AgilitySDK 1.720, étendant considérablement les capacités de l’API DX12 grâce à de nouvelles fonctionnalités destinées aux développeurs.
Fonctionnalités améliorées dans Shader Model 6.10 et AgilitySDK 1.720
Cette nouvelle version s’appuie sur les améliorations apportées au Shader Model 6.9 et à DXR 1.2, toutes deux incluses dans la version 1.619 d’AgilitySDK. L’aperçu d’AgilitySDK 1.720 présente plusieurs nouvelles fonctionnalités pour améliorer l’API DX12, détaillées ci-dessous :
- Shader Model 6.10 (via DXC 1.10.2605.2) :
- API d’algèbre linéaire (linalg::Matrix)
- Indice des vagues de groupe
- Mémoire partagée du groupe variable
- Paramètres intrinsèques du lancer de rayons :
- Positions des objets triangulaires
- ClusterID
Présentation des API d’algèbre linéaire (linalg::Matrix)
Shader Model 6.10 intègre une suite complète d’API matricielles à LinAlg. Cette intégration permet aux développeurs d’implémenter efficacement des techniques de rendu neuronal directement depuis les threads de shaders, améliorant ainsi les performances du pipeline graphique en temps réel. De plus, elle prend en charge les opérations de multiplication matricielle (MMA) à large bande passante pour les applications d’apprentissage automatique et de traitement d’images, le tout au sein d’un framework d’API unique.

Indice de vague de groupe : Amélioration des performances des shaders
De nouvelles fonctions intrinsèques, GetGroupWaveIndex() et GetGroupWaveCount(), ont été ajoutées au Shader Model 6.10. Elles permettent à différents types de shaders (calcul, maillage, amplification et nœud) d’obtenir des informations sur la structure des ondes au sein d’un groupe de threads. La fonction GetGroupWaveIndex() fournit l’index de l’onde courante, tandis que GetGroupWaveCount() indique le nombre total d’ondes en cours d’exécution dans le groupe. Cette fonctionnalité favorise la spécialisation des tâches et la collaboration entre les ondes sans nécessiter de solutions de contournement peu fiables, telles que la méthode obsolète consistant à diviser SV_GroupIndex via WaveGetLaneCount(), qui ne présente pas une fiabilité matérielle universelle.
Mémoire partagée de groupe variable : de nouvelles possibilités
Une autre amélioration majeure du Shader Model 6.10 réside dans la suppression de la limite de 32 Ko (28 Ko pour les shaders de maillage) imposée à la mémoire partagée des groupes. Grâce à l’exposition de la limite matérielle réelle via une nouvelle requête d’exécution, MaxGroupSharedMemoryPerGroup, les développeurs de shaders peuvent désormais utiliser des attributs personnalisés pour spécifier la taille mémoire requise par leurs shaders. Cette transition permet d’exploiter les capacités des GPU modernes tout en garantissant la compatibilité du code existant avec les anciennes limites. Par conséquent, les développeurs peuvent désormais implémenter des algorithmes avancés, tels que le culling de grandes tuiles et le traitement de matrices complexes, sans être limités par les spécifications précédentes.
Exploration des fonctionnalités de D3D12
API de liste de commandes asynchrones par lots
L’introduction des commandes par lots D3D12 résout les problèmes de sérialisation inhérents aux commandes précédentes, telles que `docker run` CopyBufferRegion, ClearUnorderedAccessViewFloat/Uint`docker run` et ResolveSubresource`docker run`, qui s’exécutaient séquentiellement. Cette limitation entraînait des blocages du GPU, retardant les opérations indépendantes. La nouvelle fonctionnalité de commandes asynchrones par lots permet aux développeurs d’utiliser des méthodes avancées de listes de commandes qui suppriment la sérialisation implicite, autorisant ainsi le chevauchement des tâches indépendantes par le matériel. Les développeurs peuvent désormais synchroniser explicitement avec des barrières améliorées uniquement lorsque cela est nécessaire, ce qui améliore l’efficacité des charges de travail concurrentes.
Tous les principaux fabricants de matériel, notamment NVIDIA, AMD et Intel, prennent désormais en charge ces versions préliminaires :
| Fournisseur de matériel | Liens du pilote |
| AMD | Logiciel AMD : AgilitySDK Developer Preview Edition 25.30.41.02 |
| Intel | Intel Arc Graphics – Windows |
| NVIDIA | Pour accéder aux pilotes en cours de développement, veuillez contacter votre représentant des relations avec les développeurs. |
En matière de compatibilité matérielle, NVIDIA couvre un large éventail de fonctionnalités sur l’ensemble de sa gamme de GPU RTX, tandis qu’AMD et Intel limitent certaines fonctionnalités à leurs produits les plus récents, notamment les séries Arc B et RDNA 4 (Radeon RX 9000).Plus précisément, l’indice de groupe d’ondes est pris en charge par les GPU AMD RX 7000 et RX 9000, tandis que NVIDIA prévoit de l’implémenter dans une prochaine version. Les futures mises à jour d’Intel incluront également la prise en charge de la nouvelle API d’algèbre linéaire.
| AMD | Intel | NVIDIA | |
| linAlg::Matrice | Compatible avec les produits de la série AMD Radeon RX 9000. | Sortie prévue prochainement. | Compatible avec tout le matériel RTX. |
| Indice des vagues de groupe | Compatible avec les produits AMD Radeon RX séries 7000 et 9000. | Compatible avec les cartes graphiques Intel Arc série B. | Sortie prévue prochainement. |
| Mémoire partagée du groupe variable | Prend actuellement en charge la limite de mémoire par défaut ; des limites plus élevées sont prévues dans les prochaines versions du pilote. | Compatible avec les cartes graphiques Intel Arc série B. | Compatible avec tous les matériels RTX, les valeurs varient selon l’appareil. |
| Paramètres intrinsèques de lancer de rayons : TriangleObjectPositions/ClusterID | Compatible avec les produits AMD Radeon RX séries 7000 et 9000. | Compatible avec les cartes graphiques Intel Arc série B. | Compatible avec tous les matériels RTX. |
| API de liste de commandes asynchrones par lots | Compatible avec les produits AMD Radeon RX séries 7000 et 9000. | Compatible avec les cartes graphiques Intel Arc série B. | Compatible avec tous les matériels RTX. |
Pour plus d’informations et d’éléments visuels relatifs à cette annonce, consultez la source originale : Source et images.
Laisser un commentaire