AMD extiende el SDK de Radeon Cauldron 1.0 a la comunidad de programación que usa C ++ simplificado

Hardware / AMD extiende el SDK de Radeon Cauldron 1.0 a la comunidad de programación que usa C ++ simplificado 4 minutos de lectura

Después de extensas pruebas internas y una adopción sorprendentemente rápida, AMD ahora ofrece el kit de desarrollo de software (SDK) Radeon Cauldron 1.0 a la comunidad de programación. La compañía asegura que el marco no solo está muy simplificado sino que también es notablemente versátil. En otras palabras, Radeon Cauldron SDK es fácilmente accesible para principiantes. Además, el marco es muy flexible para los programadores que buscan ampliarlo con nuevas funciones.



AMD ofrece uno de sus productos más populares. marcos de desarrollo de software a las masas. La primera versión completa y estable de Radeon Cauldron SDK ya está disponible para los programadores. Radeon Cauldron es esencialmente una biblioteca marco para la creación rápida de prototipos. Se utiliza en muestras y efectos de AMD SDK. El SDK funciona a la perfección con las API de Vulkan o Direct3D 12. AMD ha creado todo el marco disponible para descargar en GitHub , el repositorio más popular de software de código abierto adquirido recientemente por Microsoft. Curiosamente, AMD también subió un GltfSample . La aplicación de nombre extraño ha sido diseñada, desarrollada y construida utilizando el marco de trabajo de Cauldron. Por cierto, todos los recursos relevantes para Radeon Cauldron SDK también están disponibles en GitHub.

¿Qué es Radeon Cauldron SDK y cómo afectará el desarrollo de software, aplicaciones o juegos?

Radeon Cauldron es esencialmente un marco completo o un kit de desarrollo de software completo para la creación rápida de prototipos. Se utilizará principalmente en muestras y efectos de AMD SDK. Como se mencionó anteriormente, puede funcionar de manera óptima con Vulkan, que es una API de computación y gráficos 3D multiplataforma de baja sobrecarga preferida. Además, el SDK también funciona con la última versión de Direct3D, que es Direct3D 12.



El SDK de Radeon Cauldron se lanzó por primera vez internamente en AMD. Aunque se esperaba, la versión inicial fue excepcionalmente aceptada y adoptada por los equipos internos de desarrollo de software de AMD. Después del primer proyecto piloto, AMD confirmó que incluso otros grupos tangenciales dentro de la empresa comenzaron a mostrar interés. Con el tiempo, el SDK se convirtió en uno de los marcos preferidos para los equipos que manejaban herramientas, controladores e incluso demostraciones de software y funciones.



AMD ofrece Radeon Cauldron 1.0 en GPUOpen bajo la licencia de código abierto del MIT. La compañía ha enfatizado repetidamente la facilidad para comprender el código y la facilidad para extenderlo. En otras palabras, incluso si los programadores experimentados no están disponibles, los nuevos usuarios pueden descifrar rápidamente los múltiples componentes y sus funciones individuales, así como las dependencias. Esto debería simplificar en gran medida el proceso de desarrollo complejo y garantizar que todos los usuarios se sientan seguros y cómodos al usar el mismo. Además, los programadores pueden extender el código de manera rápida y eficiente sin preocuparse por obstaculizar el trabajo anterior o romper algo en el proceso.



El marco es sorprendentemente flexible y versátil, asegura AMD. Las afirmaciones parecen ciertas principalmente porque el SDK usa C ++ vanilla. AMD ha desarrollado lo mismo con el claro objetivo de seguir la filosofía de 'una característica, una clase, un archivo'. No hace falta mencionar que esto significa que los programadores no necesitan navegar por archivos complejos y múltiples mientras simplemente intentan comprender cómo funciona una aplicación o plataforma web. AMD se ha asegurado de que Radeon Cauldron SDK se adhiera a la forma más simple de clases. En otras palabras, siempre que sea posible, la mayoría de las clases implementarán los siguientes métodos:

clase MyTechnique

{



bool OnCreate (…); // crea las canalizaciones, la geometría estática y otras inicializaciones únicas

void OnDestroy (…);

void OnDraw (…) // usa los recursos creados para dibujar la técnica

}

Radeon Cauldron SDK permite dos técnicas que se necesitan para renderizar modelos glTF 2.0. Mientras que uno es necesario para el pase PBR (Representación basada en la física), el otro está diseñado para el pase de solo profundidad. Como extensión, hay dos clases llamadas GltfPbrPass y GltfDepthPass. Los datos de un modelo glTF se dividen en tres archivos:

  1. GltfCommon, una clase independiente de API que carga y se encarga de la transformación y animación de la escena, incluida la clase skinnin MyTechnique {bool OnCreate (…); // crea las tuberías, la geometría estática y otras inicializaciones únicas void OnDestroy (…); void OnDraw (…) // usa los recursos creados para dibujar la técnica} g.
  2. GltfTexturesAndBuffers, una clase que carga y contiene todas las texturas, matrices de revestimiento y búferes de geometría.
  3. GltfPbrPass y GltfDepthPass, dos clases que utilizan las clases anteriores para renderizar la escena con las técnicas mencionadas.

El marco de Radeon Cauldron contiene tanto código independiente de gráficos como dependiente de gráficos. Por lo tanto, el marco se puede dividir en tres proyectos de Visual Studio:

  1. Framework_DX12: como es evidente por el nombre, esta parte pertenece a DirectX12. En otras palabras, contiene todo el código de Direct3D 12.
  2. Framework_VK: esta parte contiene todo el código Vulkan relevante.

Por cierto, también hay un tercer componente, que es común para los dos tipos de proyectos de Visual Studio mencionados anteriormente. Esta parte se llama 'Framework_Common'. El componente común contiene los siguientes aspectos:

Estructuras GLTF

  • Código de transformación y animación
  • Cargando imágenes
  • Manejo de ventanas
  • Cámara

El marco de trabajo de Radeon Cauldron admite técnicas de posprocesamiento como florecimiento, desenfoque, reducción de resolución y mapeo de tonos. El SDK presenta dos nuevos submiembros. Estos son útiles en la creación de destinos de renderización temporales:

bool OnCreateWindowSizeDependentResources (…) // crea objetivos de renderización temporales necesarios para el efecto

void OnDestroyWindowSizeDependentResources (…)

Curiosamente, el SDK AMD Radeon Cauldron 1.0 probado internamente permite a los programadores implementar cosas también en un nivel inferior. Sorprendentemente, incluso en estos niveles, pueden usar varios administradores de memoria para garantizar que todo funcione sin problemas. Algunos de los administradores de memoria que aún funcionan incluso en un nivel inferior son los siguientes:

  • StaticBufferPool: este componente contiene los datos estáticos. Además, también presenta subasignación.
  • DynamicBufferRing: este es un sistema de búfer circular. Los programadores pueden confiar en esto para búferes constantes.
  • Textura: permite cargar texturas y crear objetivos de renderizado. Curiosamente, el sistema Texture también permite la creación de vistas para los objetivos de renderizado.
  • ShaderCompilerHelper: esta es una poderosa herramienta que ayuda a compilar el código fuente. ShaderCompilerHelper también almacena en caché los binarios. No hace falta mencionar que esto reduce significativamente los tiempos de carga.
  • UploadHeap: esta herramienta permite a los programadores realizar una subasignación de un grupo de memoria del sistema para cargar datos, que esencialmente incluyen texturas y búferes en un búfer de memoria de video.

Como se trata de un SDK de código abierto, AMD insta a los primeros usuarios externos a que prueben el mismo y ofrezcan sus comentarios. Es muy probable que AMD analice lo mismo e implemente algunas de las sugerencias para mejorar el SDK de Radeon Cauldron.

Etiquetas amd AMD Navi radeon