Estándar de gráficos Vulkan 1.2 publicado

O consorcio Khronos, que desenvolve estándares gráficos,
publicado especificación Vulkan 1.2, que define unha API para acceder ás capacidades gráficas e informáticas da GPU. O novo prego incorpora correccións acumuladas ao longo de dous anos e ampliación. Os controladores que admiten a nova versión de Vulkan xa están liberado empresa Intel, AMD, ARM, Tecnoloxías da Imaxinación e NVIDIA. Mesa ofrece compatibilidade con Vulkan 1.2 para controladores RADV (tarxetas AMD) e ANV (Intel). O soporte de Vulkan 1.2 tamén está implementado no depurador RenderDoc 1.6, LunarG Vulkan SDK e un conxunto de exemplos Vulkan-Mostras.

O principal innovacións:

  • Traído para ti implementación dunha linguaxe de programación shader ata que estea listo para o seu uso xeneralizado HLSL, desenvolvido por Microsoft para DirectX. O soporte HLSL en Vulkan fai posible usar os mesmos sombreadores HLSL en aplicacións baseadas en Vulkan e DirectX, e tamén simplifica a tradución de HLSL a SPIR-V. Para compilar shaders, recoméndase utilizar un compilador estándar
    DXC, que foi aberta por Microsoft en 2017 e está baseada na tecnoloxía LLVM. O soporte de Vulkan implícase a través dun backend separado, que lle permite traducir HLSL nunha representación intermedia dos sombreadores SPIR-V. A implementación abarca non só todas as capacidades integradas
    HLSL, incluíndo tipos matemáticos, fluxos de control, funcións, conxuntos, tipos de recursos, espazos de nomes, Shader Model 6.2, estruturas e métodos, pero tamén permite o uso de extensións específicas de Vulkan como VKRay de NVIDIA. No modo HLSL enriba de Vulkan, foi posible organizar o traballo de xogos como Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey e Tomb Raider.

    Estándar de gráficos Vulkan 1.2 publicado

  • Especificación actualizada SPIR-V 1.5, que define unha representación intermedia de sombreadores que é universal para todas as plataformas e que se pode usar tanto para gráficos como para computación paralela.
    SPIR-V implica separar unha fase separada de compilación de sombreadores nunha representación intermedia, que lle permite crear frontends para varias linguaxes de alto nivel. Baseándose en varias implementacións de alto nivel, xérase un único código intermedio por separado, que pode ser usado polos controladores OpenGL, Vulkan e OpenCL sen usar o compilador de sombreadores integrado.

    Estándar de gráficos Vulkan 1.2 publicado

  • A API principal de Vulkan inclúe 23 extensións que aumentan o rendemento, melloran a calidade de renderizado e simplifican o desenvolvemento. Entre as extensións engadidas:
    • Semáforos cronolóxicos (Semáforo da liña de tempo), unificando a sincronización coas filas do host e do dispositivo (permítelle usar unha primitiva para a sincronización omnidireccional entre o dispositivo e o host, sen usar primitivas VkFence e VkSemaphore separadas). Os novos semáforos están representados por un valor de 64 bits que aumenta monótonamente que se pode rastrexar e actualizar en varios fíos.
      Estándar de gráficos Vulkan 1.2 publicado

    • Capacidade para usar tipos numéricos con precisión reducida nos sombreadores;
    • opción de disposición de memoria compatible con HLSL;
    • Recursos non vinculados (sen vincular), que elimina a limitación do número de recursos dispoñibles para os sombreadores mediante o uso do espazo virtual compartido da memoria do sistema e da memoria da GPU;
    • Modelo formal da memoria, que define como os fíos simultáneos poden acceder aos datos compartidos e ás operacións de sincronización;
    • Indización de descriptores para reutilizar descritores de deseño en varios sombreadores;
    • Ligazóns de búfer.

    Lista completa de extensións engadidas:

  • Engadido máis de 50 novas estruturas e 13 funcións;
  • Preparáronse versións reducidas da especificación para plataformas de destino típicas, simplificando o traballo en plataformas para as que aínda non se admiten todas as extensións e permitindo prescindir da activación selectiva das capacidades básicas da API Vulkan.
  • Continúa o traballo no proxecto para garantir a portabilidade con outras API gráficas. Por exemplo, Vulkan ofrece extensións que permiten a tradución de OpenGL (Zink), OpenCL (clspv, clvk), OpenGL ES (LUVANTE, Ángulo) e DirectX (DXVK, vkd3d) a través da API de Vulkan, e tamén, pola contra, para permitir que Vulkan funcione en plataformas sen o seu soporte nativo (gfx-rs и Gris por traballar enriba de OpenGL e DirectX, MoltenVK e gfx-rs para traballar encima de Metal).
    Engadíronse extensións para mellorar a compatibilidade con DirectX e HLSL
    VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layout, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts e SPIR-V implementa capacidades HLSL específicas.

Os plans para o futuro inclúen o desenvolvemento de extensións para a aprendizaxe automática, o trazado de raios, a codificación e decodificación de vídeo, soporte para VRS (sombreado de taxa variable) e sombreadores de malla.

Lembre que a API de Vulkan notable simplificando radicalmente os controladores, movendo a xeración de comandos da GPU ao lado da aplicación, a capacidade de conectar capas de depuración, unificar a API para varias plataformas e usar unha representación intermedia precompilada do código para a súa execución no lado da GPU. Para garantir un alto rendemento e previsibilidade, Vulkan ofrece ás aplicacións control directo sobre as operacións da GPU e soporte nativo para o multiproceso de GPU, o que minimiza a sobrecarga do controlador e fai que as capacidades do controlador sexan moito máis sinxelas e previsibles. Por exemplo, operacións como a xestión da memoria e a xestión de erros, implementadas en OpenGL no lado do controlador, móvense ao nivel de aplicación en Vulkan.

Vulkan abarca todas as plataformas dispoñibles e ofrece unha única API para escritorio, móbil e web, o que permite usar unha API común en varias GPU e aplicacións. Grazas á arquitectura multicapa de Vulkan, o que significa ferramentas que funcionan con calquera GPU, os OEM poden usar ferramentas estándar do sector para a revisión do código, a depuración e o perfilado durante o desenvolvemento. Para a creación de sombreadores, proponse unha nova representación intermedia portátil, SPIR-V, baseada en LLVM e compartindo tecnoloxías fundamentais con OpenCL. Para controlar dispositivos e pantallas, Vulkan ofrece a interface WSI (Window System Integration), que resolve aproximadamente os mesmos problemas que EGL en OpenGL ES. A compatibilidade con WSI está dispoñible en Wayland: todas as aplicacións que usan Vulkan poden executarse nun ambiente de servidores Wayland sen modificar. Tamén se ofrece a posibilidade de traballar a través de WSI para Android, X11 (con DRI3), Windows, Tizen, macOS e iOS.

Fonte: opennet.ru

Engadir un comentario