AMD étend le SDK Radeon Cauldron 1.0 à la communauté de programmation qui utilise C ++ simplifié

Matériel / AMD étend le SDK Radeon Cauldron 1.0 à la communauté de programmation qui utilise C ++ simplifié 4 minutes de lecture

Après des tests internes approfondis et une adoption étonnamment rapide en interne, AMD propose désormais le kit de développement logiciel (SDK) Radeon Cauldron 1.0 à la communauté de programmation. L'entreprise assure que le cadre est non seulement très simplifié, mais aussi remarquablement polyvalent. En d'autres termes, le SDK Radeon Cauldron est facilement accessible pour les débutants. De plus, le framework est extrêmement flexible pour les programmeurs qui cherchent à l'étendre avec de nouvelles fonctionnalités.



AMD propose l'un de ses cadres de développement logiciel aux masses. La première version complète et stable du SDK Radeon Cauldron est désormais disponible pour les programmeurs. Radeon Cauldron est essentiellement une bibliothèque de cadres pour le prototypage rapide. Il est utilisé dans les échantillons et effets AMD SDK. Le SDK fonctionne de manière transparente avec les API Vulkan ou Direct3D 12. AMD a fait tout le framework disponible en téléchargement sur GitHub , le référentiel le plus populaire de logiciels open source récemment acquis par Microsoft. Fait intéressant, AMD a également a téléchargé un GltfSample . L'application au nom étrange a été conçue, développée et construite à l'aide du framework Cauldron. Par ailleurs, toutes les ressources pertinentes du SDK Radeon Cauldron sont également disponibles sur GitHub.

Qu'est-ce que le SDK Radeon Cauldron et quel sera son impact sur le développement de logiciels, d'applications ou de jeux?

Radeon Cauldron est essentiellement un framework complet ou un kit de développement logiciel complet pour le prototypage rapide. Il sera principalement utilisé dans les échantillons et effets AMD SDK. Comme mentionné ci-dessus, il peut fonctionner de manière optimale avec Vulkan, qui est une API graphique et informatique 3D multiplateforme à faible coût. De plus, le SDK fonctionne également avec la dernière version de Direct3D, Direct3D 12.



Le SDK Radeon Cauldron a été publié pour la première fois en interne chez AMD. Bien que prévue, la version initiale a été exceptionnellement acceptée et adoptée par les équipes de développement logiciel internes d’AMD. Après le premier projet pilote, AMD a confirmé que même d'autres groupes tangentiels au sein de l'entreprise ont commencé à manifester leur intérêt. Finalement, le SDK est devenu l'un des cadres préférés des équipes qui géraient des outils, des pilotes et même des démonstrations de logiciels et de fonctionnalités.



AMD fournit Radeon Cauldron 1.0 sur GPUOpen sous la licence open source MIT. La société a souligné à plusieurs reprises la facilité de compréhension du code et la facilité de son extension. En d'autres termes, même si les programmeurs expérimentés ne sont pas disponibles, les nouveaux utilisateurs peuvent rapidement déchiffrer les multiples composants et leurs fonctions individuelles ainsi que les dépendances. Cela devrait considérablement simplifier le processus de développement complexe et garantir que tous les utilisateurs sont confiants et à l'aise lorsqu'ils utilisent le même. De plus, les programmeurs peuvent étendre rapidement et efficacement le code sans se soucier d'entraver le travail passé ou de casser quelque chose dans le processus.



Le cadre est étonnamment flexible et polyvalent, assure AMD. Les affirmations semblent vraies principalement parce que le SDK utilise du C ++ vanilla. AMD a développé la même chose avec un objectif clair de suivre une philosophie «une fonctionnalité, une classe, un fichier». Inutile de mentionner que cela signifie que les programmeurs n'ont pas besoin de naviguer dans des fichiers complexes et multiples tout en essayant simplement de comprendre le fonctionnement d'une application ou d'une plate-forme Web. AMD a veillé à ce que le SDK Radeon Cauldron reste fidèle à la forme la plus simple de classes. En d'autres termes, dans la mesure du possible, la plupart des classes implémenteront les méthodes suivantes:

classe MyTechnique

{



booléen OnCreate (…); // crée les pipelines, la géométrie statique et d'autres initialisations ponctuelles

vide OnDestroy (…);

void OnDraw (…) // utilise les ressources créées pour dessiner la technique

}

Le SDK Radeon Cauldron permet deux techniques nécessaires pour rendre les modèles glTF 2.0. Alors que l'un est nécessaire pour la passe PBR (rendu basé sur physique), l'autre est destinée à la passe en profondeur uniquement. En tant qu'extension, il existe deux classes appelées GltfPbrPass et GltfDepthPass. Les données d'un modèle glTF sont divisées en trois fichiers:

  1. GltfCommon, une classe indépendante de l'API qui charge et prend en charge la transformation et l'animation de la scène, y compris la classe skinnin MyTechnique {bool OnCreate (…); // crée les pipelines, la géométrie statique et d'autres initialisations ponctuelles void OnDestroy (…); void OnDraw (…) // utilise les ressources créées pour dessiner la technique} g.
  2. GltfTexturesAndBuffers, une classe qui charge et contient toutes les textures, matrices de skinning et tampons géométriques.
  3. GltfPbrPass et GltfDepthPass, deux classes qui utilisent les classes ci-dessus pour rendre la scène avec les techniques mentionnées.

Le framework Radeon Cauldron contient à la fois du code non graphique et dépendant du graphique. Par conséquent, le framework peut être divisé en trois projets Visual Studio:

  1. Framework_DX12: Comme le montre son nom, cette partie concerne le DirectX12. En d'autres termes, il contient tout le code Direct3D 12.
  2. Framework_VK: Cette partie contient tout le code Vulkan pertinent.

Incidemment, il existe également un troisième composant, qui est commun aux deux types de projets Visual Studio mentionnés ci-dessus. Cette partie est appelée «Framework_Common». Le composant commun contient les aspects suivants:

Structures GLTF

  • Code de transformation et d'animation
  • Chargement des images
  • Manipulation des fenêtres
  • Caméra

Le framework Radeon Cauldron prend en charge les techniques de post-traitement telles que le bloom, le flou, le sous-échantillonnage et le tone-mapping. Le SDK introduit deux nouveaux sous-membres. Ceux-ci sont utiles dans la création de cibles de rendu temporaires:

bool OnCreateWindowSizeDependentResources (…) // crée les cibles de rendu temporaires nécessaires à l'effet

void OnDestroyWindowSizeDependentResources (…)

Fait intéressant, le SDK AMD Radeon Cauldron 1.0 testé en interne permet également aux programmeurs d'implémenter les choses à un niveau inférieur. Étonnamment, même à ces niveaux, ils peuvent utiliser plusieurs gestionnaires de mémoire pour s'assurer que les choses se passent bien. Certains des gestionnaires de mémoire qui fonctionnent encore même à un niveau inférieur sont les suivants:

  • StaticBufferPool: ce composant contient les données statiques. De plus, il comporte également une sous-allocation.
  • DynamicBufferRing: Il s'agit d'un système de tampon circulaire. Les programmeurs peuvent compter sur cela pour des tampons constants.
  • Texture: permet le chargement de textures et la création de cibles de rendu. Fait intéressant, le système Texture permet également la création de vues pour les cibles de rendu.
  • ShaderCompilerHelper: C'est un outil puissant qui aide à compiler le code source. Le ShaderCompilerHelper met également en cache les binaires. Inutile de mentionner que cela réduit considérablement les temps de chargement.
  • UploadHeap: Cet outil permet aux programmeurs de sous-allouer à partir d'un pool de mémoire système pour télécharger des données, qui comprennent essentiellement des textures ainsi que des tampons vers une mémoire tampon vidéo.

Comme il s'agit d'un SDK open-source, AMD exhorte les premiers utilisateurs extérieurs à tester le même et à offrir leurs commentaires. Il est fort probable qu'AMD analysera la même chose et implémentera certaines des suggestions pour améliorer le SDK Radeon Cauldron.

Mots clés amd AMD Navi radeon