View in English

  • Global Nav Open Menu Global Nav Close Menu
  • Apple Developer
Search
Cancel
  • Apple Developer
  • News
  • Discover
  • Design
  • Develop
  • Distribute
  • Support
  • Account
Only search within “”

Quick Links

5 Quick Links

Vidéos

Ouvrir le menu Fermer le menu
  • Collections
  • Sujets
  • Toutes les vidéos
  • À propos

Plus de vidéos

  • À propos
  • Résumé
  • Transcription
  • Découvrez Metal 4

    Découvrez comment exploiter les puissantes fonctionnalités inédites de Metal 4 dans vos apps Metal existantes. Nous verrons comment Metal vous permet de tirer le meilleur parti de la puce Apple et de programmer le matériel plus efficacement. Vous apprendrez également comment Metal 4 vous offre de nouvelles capacités pour intégrer l'apprentissage automatique dans votre code Metal.

    Chapitres

    • 0:00 - Introduction
    • 1:44 - Commandes d’encodage
    • 4:03 - Gérer les ressources
    • 10:43 - Compiler les shaders
    • 13:52 - Intégrer l’apprentissage automatique
    • 17:26 - Optimiser les performances avec MetalFX
    • 19:22 - Passer à Metal 4
    • 23:08 - Étapes suivantes

    Ressources

    • Processing a texture in a compute function
    • Understanding the Metal 4 core API
    • Using a render pipeline to render primitives
    • Using the Metal 4 compilation API
      • Vidéo HD
      • Vidéo SD

    Vidéos connexes

    WWDC25

    • Allez plus loin avec les jeux Metal 4
    • Combinez l’apprentissage automatique et les graphismes de Metal 4
    • Explorez les jeux Metal 4
    • Faites passer vos jeux au niveau supérieur
    • Nouveautés du rendu Metal pour les apps immersives
  • Rechercher dans cette vidéo…

    Bonjour et bienvenue. Je m’appelle Aaron et je suis ravi de vous présenter la mise à jour de l’API Metal. Metal est l’API de calcul et de graphisme de bas niveau d’Apple. Elle a alimenté plusieurs générations d’apps complexes, y compris des jeux comme Cyberpunk 2077, et de puissantes apps professionnelles. Metal est devenu central de la façon dont les développeurs envisagent le rendu et le calcul sur les plates-formes Apple. Avec une décennie d’expérience, Metal 4 fait passer l’API au niveau supérieur en permettant aux développeurs de proposer les jeux et les apps les plus exigeants. Metal 4 est conçu pour les jeux, les graphismes et les apps de nouvelle génération. Elle libère tout le potentiel de performances de la puce Apple, tout en vous garantissant une expérience familière si vous venez d’autres API telles que DirectX. Metal 4 fait partie du même framework Metal que celui que vous avez peut-être déjà dans votre app. Elle est prise en charge par les appareils équipés de la puce Apple M1 et modèles ultérieurs et de la puce A14 Bionic et modèles ultérieurs. Metal 4 s’appuie sur une structure de commandes nouvelle avec une gestion explicite de la mémoire et modifie la façon dont les ressources sont gérées pour produire des visuels plus riches et plus complexes. La compilation des shaders est plus rapide avec plus d’options afin que votre app puisse réduire la compilation redondante et l’apprentissage automatique s’intègre parfaitement au reste de votre app Metal. De nouvelles solutions intégrées sont disponibles via MetalFX pour améliorer les performances de votre app. Je vais vous montrer comment adopter facilement Metal 4. Abordons la façon dont votre app encode et envoie les commandes. Metal est représenté dans le système par un appareil Metal, que le système d’exploitation fournit à votre app. Une fois que vous disposez d’un appareil Metal, vous pouvez créer des files d’attente de commandes pour envoyer des tâches au matériel. Et des tampons de commande qui contiennent les tâches à envoyer. Les encodeurs de commandes vous permettent d’encoder des commandes dans ces tampons de commandes. Vous pouvez tirer parti de Metal 4 en utilisant le même MTLDevice que votre app utilise déjà. Metal 4 fournit un nouveau modèle familier pour l’encodage des commandes et introduit de nouvelles versions des autres objets. Ces modifications commencent par le nouveau MTL4CommandQueue que votre app peut obtenir avec MTLDevice. Metal 4 dissocie les tampons de commande de la file d’attente qui les utilisera. Ainsi, votre app demande également un MTL4CommandBuffer à l’appareil. Les tampons de commande sont indépendants, ce qui facilite leur encodage en parallèle pour votre app. Les apps tirent parti des encodeurs pour différents types de commandes, notamment les dessins, les dispatchs, les blits et les constructions de structures d’accélération. Metal 4 consolide les encodeurs de commande existants. Avec le nouvel encodeur de calcul unifié, votre app peut gérer l’encodage des commandes blit et de structure d’accélération. Cela réduit le nombre total d’encodeurs nécessaires. Il y a aussi un nouveau MTL4RenderCommandEncoder. Il propose une carte des attachements que votre app peut utiliser pour associer les sorties logiques des shaders aux attachements physiques de couleur. Votre app peut configurer la carte des attachments d’un seul encodeur de rendu avec tous les attachements de couleur nécessaires, et peut basculer entre eux à la volée. Cela vous évite d’allouer des encodeurs de rendu supplémentaires. Votre app économise ainsi de la mémoire et du code inutile. Votre app peut utiliser n’importe quelle combinaison des types d’encodeurs disponibles pour encoder des commandes dans des tampons de commandes. Les tampons de commande sont sauvegardés par la mémoire. Lorsque votre app encode les commandes, les données sont écrites dans cette mémoire. Dans Metal 4, cette mémoire est gérée par un allocateur de commandes Metal 4. Utilisez l’appareil pour créer un allocateur de commandes afin de prendre le contrôle direct de l’utilisation de la mémoire tampon de commandes de votre app. La gestion de la mémoire est essentielle pour maximiser les ressources système disponibles des apps modernes. Et ces apps utilisent plus de ressources que jamais. Dans Metal 4, votre app gère les ressources différemment. Metal utilise deux types de ressources fondamentales. Les tampons Metal stockent les données génériques mises en forme par votre app et les textures Metal stockent les données au format image. Dans le passé, les apps utilisaient moins de ressources, parfois même un seul tampon et une seule texture par objet. Et puis, les apps ont ajouté plus de textures pour améliorer le niveau de détails de surface. Pour introduire plus de variété dans leur rendu, elles ont également ajouté plus de géométrie. Les apps modernes ont poursuivi la tendance et ont mobilisé plus de ressources pour prendre en charge de nouveaux cas d’utilisation complexes. Alors que le nombre de ressources augmentait, les API n’exposaient qu’un ensemble fixe de points de liaison de ressources, pour définir les ressources à chaque opération de dessin ou de dispatch. Historiquement, chaque dessin n’en utilisait généralement que quelques-uns. Par exemple, ce lapin n’a qu’une texture et un tampon pour sa géométrie. Et puis, pour chaque dessin, chaque objet peut modifier les tampons de géométrie et de texture pour modifier l’apparence de la surface. Cependant, à mesure que le nombre d’appels de dessin augmentait et que les shaders devenaient plus complexes, la gestion des points de liaison des ressources pour chaque dessin ajoutait du temps de traitement CPU. Les apps sont passées au modèle bindless, où les ressources à lier sont déplacées vers un autre tampon destiné à stocker les liaisons. De cette façon, l’app n’a qu’à lier un seul tampon d’arguments pour chaque objet, voire pour toute la scène. Cela signifie que vous pouvez réduire le nombre de points de liaison nécessaires. Pour éviter à votre app le coût de points de liaison supplémentaires, Metal 4 propose un nouveau type de table d’arguments Metal 4 permettant de stocker les points de liaison dont votre app a besoin. Les tables d’arguments sont spécifiées pour chaque étape d’un encodeur, mais peuvent être partagées entre les étapes. Vous créez des tables avec une taille basée sur les points de liaison dont votre app a besoin. Par exemple, dans le cas bindless, la table d’arguments n’a besoin que d’une seule liaison de tampon. Le GPU doit également pouvoir accéder à toutes ces ressources. C'est là qu’intervient la résidence. La puce Apple vous offre un vaste espace de mémoire unifiée. Vous pouvez l’utiliser pour stocker toutes les ressources de votre app, mais Metal a toujours besoin de savoir quelles ressources rendre résidentes. Dans Metal 4, votre app utilise des ensembles de résidence pour spécifier les ressources que Metal doit rendre résidentes. Cela permet de s’assurer qu’elles sont accessibles au matériel. Les ensembles de résidence sont faciles à intégrer dans l’encodage et la validation par image des tampons de commande. Il vous suffit de vous assurer que l’ensemble de résidence contient toutes les ressources requises pour le tampon de commande que vous validez. Mais, comme le contenu de l’ensemble de résidence change rarement, le remplissage de l’ensemble de résidence peut être effectué au démarrage de l’app. Et une fois l’ensemble créé, vous pouvez l’ajouter à une file d’attente de commandes Metal 4. Tous les tampons de commande validés dans cette file d’attente incluront ensuite ces ressources. Si vous devez effectuer des mises à jour, cela devrait être beaucoup moins coûteux lors de l’exécution. Pour les apps qui chargent/déchargent des ressources en stream sur un thread séparé, vous pouvez déplacer le coût de mise à jour de l’ensemble de résidence vers ce thread et mettre à jour l’ensemble de résidence en parallèle de l’encodage. Un excellent exemple d’un jeu qui a bénéficié d’ensemble de résidence est Control Ultimate Edition. Le directeur de la publication technique de Remedy Entertainment, Tuukka Taipalvesi, a déclaré ceci : - Control Ultimate Edition a trouvé les ensembles de résidence faciles à intégrer. Lors de la séparation des ressources en ensembles de résidence en fonction de l’utilisation et de la gestion de la résidence des ressources sur un thread d’arrière-plan, nous avons constaté des réductions significatives des frais de gestion de la résidence et une utilisation plus faible de la mémoire lorsque le ray tracing est désactivé.

    Créer de beaux jeux comme Control nécessite plus de ressources que jamais. Vous pouvez même avoir besoin de plus de mémoire que celle disponible, en particulier lorsque vous ciblez une gamme d’appareils. Pour exploiter au mieux la mémoire disponible, votre app peut contrôler dynamiquement la façon dont les ressources utilisent cette mémoire. Cela nécessite un contrôle précis de la façon dont la mémoire est allouée aux ressources, car toutes les ressources ne sont pas nécessaires en même temps. Les apps peuvent ajuster la qualité en contrôlant le niveau de détail résident afin de prendre en charge le même contenu sur une plus grande variété d’appareils. Votre app peut y parvenir en utilisant des ressources sparse de placement

    Metal 4 prend en charge les tampons et les textures alloués en tant que ressources sparse de placement. Ces ressources sont allouées sans aucune page pour stocker leurs données. Avec des ressources sparse de placement, les pages proviennent d’un tas de placement. Votre app alloue des pages du tas de placement pour fournir un espace de stockage pour le contenu des ressources. Metal 4 mettant l’accent sur la concurrence par défaut, vous devez vous assurer que les mises à jour des ressources sont synchronisées. Pour simplifier la synchronisation, Metal 4 introduit une API de barrière qui fournit une synchronisation étape à étape à faible surcharge qui correspond bien aux barrières des autres API. Vous pouvez voir les barrières en action dans l’exemple Metal 4, « Processing a Texture in a Compute Function ». L’app commence par une image colorée, applique un shader de calcul qui la convertit en niveaux de gris, puis affiche cette texture convertie à l’écran. Ces étapes dépendent de la ressource partagée : la sortie du traitement de texture. L’exemple garantit que les écritures et les lectures de ressources se produisent dans le bon ordre, à l’aide de barrières Metal 4. Sans synchronisation, ces étapes pourraient s’exécuter dans n’importe quel ordre, ce qui signifierait soit utiliser le mauvais contenu de texture ou pire encore, si les deux étapes se chevauchent, cela entraînera une sortie corrompue. Pour obtenir le bon ordre, l’app utilise une barrière. Les barrières fonctionnent d’étape en étape. Vous devrez donc déterminer dans quelle étape chaque opération s’exécute, en fonction des étapes de l’encodeur.

    Le traitement de la texture s’exécute sur un encodeur de commande de calcul via une opération de dispatch. Le rendu fera partie d’un encodeur de commande de rendu, qui lit la texture dans une opération de fragment. La barrière nécessaire ici est une barrière dispatch-fragment, qui attend la fin des tâches de calcul avant le démarrage des opérations de fragment. Il est important d’utiliser efficacement les barrières pour obtenir les meilleures performances de votre app, en particulier avec un grand nombre de ressources.

    En plus des ressources, les apps modernes gèrent également un grand nombre de shaders. Ces shaders doivent être compilés avant de pouvoir être envoyés au matériel, pour assurer le rendu et le calcul de votre app. Les shaders sont écrits dans le langage d’ombrage Metal, puis convertis en Metal IR. L’IR est ensuite compilée en binaires GPU, exécutables directement par le matériel. En tant que développeur, vous contrôlez le moment où la compilation des shaders a lieu. L’appareil Metal fournit une interface permettant d’envoyer les shaders au système d’exploitation pour compilation par le CPU. Metal 4 gère la compilation avec des contextes de compilation dédiés. La nouvelle interface MTL4Compiler est maintenant séparée de l’appareil. Votre app utilise l’appareil pour allouer l’interface du compilateur. L’interface offre un contrôle clair et explicite sur le moment où votre app effectue la compilation sur le CPU. Vous pouvez profiter de MTL4Compiler pour tirer parti des améliorations de planification dans la pile de compilation des shaders. Le MTL4Compiler hérite de la classe de qualité de service affectée au thread demandant la compilation. Lorsque plusieurs threads sont compilés en même temps, le système d’exploitation donne la priorité aux demandes provenant de threads de priorité plus élevée afin de s’assurer que les shaders les plus importants de votre app sont traités en premier, avant de passer à d’autres compilations. Le contrôle explicite de la compilation des shaders est important, car les apps modernes ont plus de shaders que jamais. Lors de la génération de l’état du pipeline, votre app doit compiler chaque shader une première fois avant que le processeur graphique ne puisse commencer. Parfois, les pipelines partagent un Metal IR commun. Par exemple, votre app peut appliquer différents états de couleur pour un rendu avec une transparence différente. Et la même situation peut s’appliquer à d’autres ensembles de pipelines. Avec Metal 4, vous pouvez optimiser ce cas, ce qui vous permet de réduire le temps passé à compiler des shaders. Les pipelines de rendu peuvent utiliser des états de pipeline de rendu flexibles pour créer une fois un Metal IR commun. Cela crée un pipeline non spécialisé. Votre app spécialise ensuite le pipeline avec l’état de couleur prévu. Metal réutilisera la compilation Metal IR pour créer efficacement un pipeline spécialisé à exécuter. Les états de pipeline de rendu flexibles permettent de gagner du temps de compilation lors de la réutilisation de Metal IR dans les pipelines de shader. Votre app crée un pipeline non spécialisé une fois avant de le spécialiser pour chacun des états de couleur nécessaires. Vous pouvez répéter ce processus pour d’autres pipelines qui partagent Metal IR et partager les résultats de compilation de chacun d’entre eux afin de réduire le temps que votre app passe à compiler les shaders. La compilation sur l’appareil requiert toujours du temps de processeur. Le chemin le plus performant reste d’éliminer complètement la compilation sur l’appareil. Metal 4 rationalise la récolte des configurations de pipelines. Pour des infos sur le flux de travail de compilation de Metal 4, et sur l’encodage des commandes, découvrez « Explore Metal 4 games ». Metal 4 facilite plus que jamais l’intégration de l’apprentissage automatique, ce qui ouvre de nouvelles possibilités pour votre app. Les techniques de rendu telles que la mise à l’échelle, la compression des ressources, la fusion d’animations et le Neural Shading bénéficient toutes de l’application ciblée de l’apprentissage automatique. Pour appliquer efficacement ces techniques, les apps doivent fonctionner sur des ensembles de données et des structures complexes. Les tampons sont flexibles, mais laissent une grande partie du travail à l’app et les textures ne sont pas vraiment adaptées. Metal 4 ajoute la prise en charge des tenseurs, un type de ressource fondamental d’apprentissage automatique, pris en charge dans tous les contextes. Les tenseurs Metal sont des conteneurs de données multidimensionnels. Ils sont extensibles bien au-delà de deux dimensions, offrant la flexibilité nécessaire pour décrire la disposition des données nécessaire à une utilisation pratique de l’apprentissage automatique. Metal 4 intègre les tenseurs directement dans l’API ainsi que dans le langage du Metal Shading. Les tenseurs déchargent l’indexation complexe en données multidimensionnelles, afin que votre app Metal 4 puisse se concentrer sur leur utilisation pour appliquer l’apprentissage automatique de manière innovante. Pour rendre cela encore plus facile, Metal 4 élargit l’ensemble des encodeurs de commande pris en charge. Le nouvel encodeur de commande d’apprentissage automatique vous permet d’exécuter des réseaux à grande échelle directement dans votre app Metal. Les encodeurs d’apprentissage automatique fonctionnent de la même manière que les types d’encodeurs Metal existants. Les tenseurs sont consommés en tant que ressources mappées dans une table d’arguments. L’encodage est effectué sur les mêmes tampons de commande Metal 4 et prend en charge les barrières pour la synchronisation avec vos autres encodeurs Metal 4. Les encodeurs d’apprentissage automatique Metal 4 sont compatibles avec les réseaux exprimés dans le format de package CoreML existant. Utilisez la chaîne d’outils Metal pour les convertir en un package Metal, puis alimentez le réseau directement sur votre encodeur. Le nouvel encodeur d’apprentissage automatique est idéal pour les grands réseaux qui ont besoin d’un entrelacement de niveau commande avec le reste de votre app Metal. Si vous avez des réseaux plus petits, Metal 4 vous donne la possibilité de les intégrer directement dans vos pipelines de shaders existants. Par exemple, l’évaluation neuronale des matériaux remplace les textures traditionnelles des matériaux par des données de texture latentes. Votre app échantillonne ces textures latentes pour créer des tenseurs d’entrée, effectue l’inférence à l’aide des valeurs échantillonnées et exploite le résultat pour effectuer le shading. La division de chaque étape dans son propre pipeline est inefficace, car chaque étape doit synchroniser les tenseurs de la mémoire de l’appareil, de les traiter, puis de synchroniser les résultats pour des opérations ultérieures. Pour obtenir les meilleures performances, votre app doit combiner ces étapes en une seule répartition de shader, afin que chaque opération puisse partager une mémoire de thread commune. L’implémentation de l’inférence est une tâche complexe, mais Metal 4 la simplifie avec les primitives de performance Metal. Les primitives de performance Metal sont des primitives de shader conçues pour exécuter des calculs complexes et peuvent fonctionner nativement avec des tenseurs. Chacune d’entre elles est optimisée pour s’exécuter à une vitesse fulgurante sur les puces Apple. Les opérations de tenseur sont idéales pour intégrer de petits réseaux dans vos shaders. Votre app peut en tirer parti dans le cadre du langage de shading Metal. Lorsque vous le faites, le compilateur de shader du système d’exploitation incorpore le code du shader, optimisé pour l’appareil utilisé, directement dans votre shader. Pour en savoir plus sur les nouvelles capacités d’apprentissage automatique de Metal, regardez « Combine Metal 4 machine learning and graphics ». Metal 4 vous fournit tous les outils nécessaires pour intégrer des techniques d’apprentissage automatique de pointe. Vous pouvez également profiter des solutions prêtes pour la production intégrées à MetalFX. Les appareils Apple sont dotés d’incroyables écrans haute résolution, parfaits pour présenter vos jeux exceptionnels. MetalFX permet à votre app d’offrir des résolutions élevées à des fréquences de rafraîchissement élevées lors du rendu de scènes complexes avec des reflets réalistes.

    Le rendu d’images haute résolution peut solliciter la carte graphique pendant une période de temps importante. Votre app peut effectuer le rendu des images en basse résolution et les agrandir à l’aide de MetalFX. Le temps combiné pour le rendu de votre image finale est réduit. Ainsi, votre app peut gagner du temps pour chaque image traitée. Vous pouvez utiliser le temps gagné pour effectuer le rendu de l’image suivante plus rapidement. Et si vous voulez atteindre les taux de rafraîchissement les plus élevés sans sacrifier la qualité, MetalFX a une excellente solution intégrée. MetalFX ajoute la prise en charge de l’interpolation d’images. Votre app peut l’utiliser pour générer des images intermédiaires en beaucoup moins de temps qu’il n’en faudrait pour effectuer le rendu de chaque image à partir de zéro. Vous pouvez utiliser ces trames intermédiaires pour atteindre des fréquences d’images encore plus élevées. Le ray tracing est une autre technique utilisée par les apps pour obtenir des résultats de rendu réalistes, en traçant les rayons de l’appareil photo à une source lumineuse. Cependant, si trop peu de rayons sont projetés, l’image résultante comportera trop de bruit pour être utilisée. MetalFX prend en charge le débruitage pendant le processus de mise à l’échelle, afin que votre app puisse supprimer le bruit des images rendues avec moins de rayons et fournir des résultats en pleine résolution. MetalFX vous aide à produire des résultats de haute qualité que vos joueurs adoreront, à des taux de rafraîchissement accrus. Votre jeu peut le combiner avec le ray tracing Metal 4 pour obtenir des résultats incroyables. Pour en savoir plus sur ces fonctionnalités, consultez « Go further with Metal 4 games ». Votre app peut combiner toutes ces fonctionnalités pour faire des choses incroyables. Et Metal 4 est conçu pour rendre le portage à la fois accessible et modulaire. Une app est composée de plusieurs catégories de fonctionnalités clés, notamment : la manière dont elle compile les shaders, dont elle encode et soumet les commandes au matériel, et enfin, sa gestion des ressources. Chacun de ces éléments peut être abordé séparément dans ses propres phases distinctes. La compilation est sans doute la première étape la plus simple. Vous pouvez allouer un compilateur Metal 4 et l’insérer dans les flux de compilation de votre app pour améliorer la qualité de service. Une fois que vous avez adopté la nouvelle interface de compilation, votre app peut intégrer des pipelines de rendu flexibles pour accélérer la compilation du pipeline de rendu ou tirer parti des améliorations apportées à la collecte pour améliorer la compilation à l’avance. Que vous adoptiez ou non le nouveau compilateur, votre app peut également bénéficier de la génération de commandes avec Metal 4. Avec le modèle d’encodage et de génération de commandes de Metal 4, vous pouvez mieux contrôler vos allocations de mémoire. Vous pouvez également tirer parti de l’encodage parallèle natif sur tous les types d’encodeurs pour que l’encodage soit effectué plus rapidement. Le tout nouvel ensemble de capacités d’apprentissage automatique de Metal 4 ouvre de nouvelles possibilités pour vos pipelines de rendu. Votre app peut adopter l’encodeur d’apprentissage automatique, ou shader ML, en fonction du réseau que vous souhaitez intégrer. Vous pouvez ensuite aller plus loin avec la gestion des ressources de Metal 4. Les ensembles de résidence sont une stratégie gagnante. Intégrez-les pour simplifier le processus de gestion de la résidence. Des barrières permettent à votre app de synchroniser efficacement l’accès aux ressources entre différents passes. Et les ressources spare de placement vous permettent d’intégrer le streaming de ressources dans votre app Metal. En tant que développeur, vous êtes le mieux placé pour juger de la façon d’améliorer votre app. Metal 4 vous offre la flexibilité nécessaire pour adopter les nouvelles fonctionnalités là où vous en avez le plus besoin. La gestion sparse de placement est un excellent exemple d’une fonctionnalité qui active un cas d’utilisation spécifique. Voici comment l’intégrer à votre app Metal existante. Votre app Metal valide déjà le travail en utilisant la file d’attente de commandes Metal existante tandis que les opérations de mappage sparse de placement nécessitent une file de commandes Metal 4. Vous pouvez utiliser un MTLEvent pour synchroniser le travail entre les files d’attente de commandes Metal et Metal 4 de votre app. Le premier appel d’événement de signal débloque MTL4CommandQueue pour mettre à jour les mappages des ressources sparse de placement. Un deuxième appel d’événement de signal informe votre app de poursuivre le travail de rendu à l’aide des ressources sparse de placement. Vous pouvez utiliser le même MTLEvent d’avant. Votre app doit soumettre les tâches qui ne dépendent pas de ces ressources avant d’attendre l’événement, afin de garantir une utilisation optimale du matériel. Metal est livré avec un ensemble avancé d’outils de développement pour vous aider à déboguer et à optimiser vos apps Metal. Et cette année, ces mêmes outils prennent en charge Metal 4. La validation des API et des shaders vous fait gagner un temps précieux en identifiant les problèmes courants. Et le débogueur Metal complet vous aide à approfondir votre utilisation de Metal 4. Le HUD de performance Metal fournit une superposition en temps réel pour surveiller les performances de votre app, et Metal System Trace permet d’extraire les traces de performances de votre app. Vous pouvez en savoir plus sur tous ces outils et trouver leur documentation sur le site Apple Developer. Consultez « Level up your games » pour découvrir d’excellentes techniques de débogage et d’optimisation de vos jeux. Xcode 26 intègre également un nouveau modèle Metal 4. Démarrez un nouveau projet et sélectionnez Modèles de jeu avant de choisir Metal 4 comme technologie de jeu. Grâce au modèle Xcode intégré, il est facile d’obtenir un rendu de base et de débuter avec Metal 4. Vous venez de découvrir tout ce que Metal 4 peut faire. Vous êtes prêt à l’appliquer aux besoins de votre app. Si vous développez un jeu, explorez comment utiliser les nouvelles fonctionnalités d’encodage et de compilation de commandes de Metal 4. Après cela, vous pourrez apprendre à optimiser votre jeu avec MetalFX, et découvrir comment tirer parti du ray-tracing Metal 4. Vous pouvez apprendre à utiliser Metal 4 pour combiner l’apprentissage automatique et les graphiques dans votre app Metal. Metal 4 inaugure une nouvelle génération d’apps et de jeux dotés d’un ensemble incroyable de fonctionnalités. Vous n’avez découvert que les bases. Vous pouvez commencer à utiliser Metal 4 dans vos apps avec la prochaine version bêta de développement. L’exemple de code est un excellent exemple de la façon de commencer votre adoption de Metal 4. Il est disponible dès maintenant. Merci de votre attention !

    • 0:00 - Introduction
    • L’API Metal d’Apple fait l’objet d’une mise à jour majeure avec Metal 4, conçu pour les prochaines générations de jeux, de graphiques et d’apps de calcul. Elle offre une gestion explicite de la mémoire, un pilotage renforcé des ressources, une compilation plus rapide des shaders, une intégration ML transparente et de nouvelles fonctionnalités de performance MetalFX. Metal 4 est compatible avec les puces Apple M1 (et modèles ultérieurs) et A14 Bionic (et modèles ultérieurs) et s’appuie sur le framework Metal existant.

    • 1:44 - Commandes d’encodage
    • Vous pouvez tirer parti de Metal 4 en utilisant le même MTLDevice que celui utilisé par votre app. Metal 4 introduit de nouveaux objets pour accroître la flexibilité, tels que MTL4CommandAllocator pour le contrôle direct de la mémoire tampon de commandes et MTL4RenderCommandEncoder avec une carte des attachements qui mappe les sorties logiques des shaders aux attachements physiques de couleur. Votre app peut configurer des attachements de couleur et passer de l’un à l’autre à l’aide d’un seul encodeur de rendu, ce qui permet d’économiser de la mémoire et du code.

    • 4:03 - Gérer les ressources
    • Metal 4 optimise la gestion des ressources pour les apps modernes, qui utilisent beaucoup plus de tampons et de textures qu’auparavant. Avec le nouveau type MTL4ArgumentTable, vous pouvez stocker les points de liaison aux ressources dont votre app a besoin. Utilisez les ensembles de résidence pour spécifier les ressources que Metal doit rendre résidentes sur le processeur graphique. Le remplissage de l’ensemble de résidence peut se faire au démarrage de l’app, et les mises à jour ultérieures ont un coût de processeur minimal. Les tampons et les textures Metal 4 peuvent être alloués en tant que ressources éparses de placement, ce qui vous permet de contrôler finement la manière dont la mémoire est allouée à ces ressources. Metal 4 introduit également une API de barrière à faible surcharge pour la synchronisation des ressources d’étape en étape.

    • 10:43 - Compiler les shaders
    • Metal 4 introduit la nouvelle interface MTL4Compiler, qui vous permet de contrôler explicitement le moment où votre app effectue la compilation des shaders sur le CPU. Grâce aux nouveaux états flexibles du pipeline de rendu, vous pouvez créer un pipeline non spécialisé qui peut ensuite être spécialisé en réutilisant un Metal IR commun pour différents états de couleur, ce qui réduit le temps passé par votre app à compiler les shaders.

    • 13:52 - Intégrer l’apprentissage automatique
    • Metal 4 facilite plus que jamais l’intégration de l’apprentissage automatique dans vos apps et vos jeux. Des techniques de rendu telles que l’upscaling, la compression des ressources, la fusion d’animations et le Neural Shading en bénéficient. Metal 4 ajoute la prise en charge des tenseurs, des conteneurs de données multidimensionnels spécialement conçus pour l’apprentissage automatique, des tenseurs directement dans l’API ainsi que dans le langage de shading Metal.

    • 17:26 - Optimiser les performances avec MetalFX
    • MetalFX permet à votre app d’offrir des résolutions élevées à des fréquences de rafraîchissement supérieures lors du rendu de scènes complexes avec des reflets réalistes. Votre app peut effectuer le rendu des images en basse résolution et MetalFX les agrandira. MetalFX prend également en charge l’interpolation d’images, que votre app peut utiliser pour générer des images intermédiaires beaucoup plus rapidement qu’en partant de zéro, afin que vous puissiez atteindre des fréquences d’images encore plus élevées. Pour les scènes en ray tracing, MetalFX prend également en charge le débruitage pendant le processus d’agrandissement, afin que votre app puisse fournir des résultats en pleine résolution à partir des images rendues avec moins de rayons.

    • 19:22 - Passer à Metal 4
    • Metal 4 est conçu pour rendre le portage à la fois accessible et modulaire. Vous pouvez l’intégrer à votre app ou jeu Metal existant en utilisant une approche modulaire. Concentrez-vous sur le domaine qui aura le plus d’impact : la manière dont il compile les shaders, dont il encode et soumet les commandes au matériel ou sa gestion des ressources. Pour beaucoup, les ensembles de résidence sont une stratégie gagnante. La gestion sparse de placement est aussi un excellent exemple d’une fonctionnalité qui active un cas d’utilisation spécifique, et il est simple de l’intégrer dans une app Metal existante. Au fil du temps, utilisez l’ensemble avancé d’outils de développement de Metal qui prend en charge Metal 4, vous aidant à déboguer et à optimiser vos apps Metal. Au-delà de la compilation, Metal 4 propose des modèles d’encodage et de génération de commandes qui offrent un meilleur contrôle des allocations de mémoire, activent l’encodage parallèle natif et introduisent des capacités d’apprentissage automatique pour optimiser les pipelines de rendu. La gestion des ressources dans Metal 4 est également simplifiée grâce à des fonctionnalités telles que les ensembles de résidence, les barrières et les ressources sparse de placement, qui permettent un streaming efficace des ressources. Metal 4 est livré avec un ensemble avancé d’outils de développement pour le débogage, l’optimisation et la surveillance des performances. Xcode 26 inclut un nouveau modèle Metal 4, qui facilite la création et l’optimisation d’apps Metal 4.

    • 23:08 - Étapes suivantes
    • Metal 4 inaugure une nouvelle génération d’apps et de jeux dotés d’un ensemble incroyable de fonctionnalités. L’exemple de code, qui montre comment commencer à adopter Metal 4, est disponible dès maintenant.

Developer Footer

  • Vidéos
  • WWDC25
  • Découvrez Metal 4
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • App Store
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Fonts
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Open Source
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Sample Code
    • Tutorials
    • Downloads
    • Forums
    • Videos
    Open Menu Close Menu
    • Support Articles
    • Contact Us
    • Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Get the Apple Developer app.
    Copyright © 2025 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines