O proxecto Wine lanzou Vkd3d 1.3 coa implementación de Direct3D 12

Despois de ano e medio de desenvolvemento, o proxecto Wine publicou o lanzamento do paquete vkd3d 1.3 cunha implementación Direct3D 12 que funciona mediante chamadas de difusión á API de gráficos Vulkan. O paquete inclúe bibliotecas libvkd3d con implementacións de Direct3D 12, libvkd3d-shader cun tradutor dos modelos de sombreadores 4 e 5 e libvkd3d-utils con funcións para simplificar a portabilidade de aplicacións Direct3D 12, así como un conxunto de exemplos de demostración, incluíndo un porto de glxgears a Direct3D 12. O código do proxecto distribúese con licenza LGPLv2.1.

A biblioteca libvkd3d admite a maioría das funcións de Direct3D 12, incluíndo gráficos e instalacións de cálculo, filas e listas de comandos, identificadores e identificadores de montón, sinaturas raíz, acceso fóra de orde, mostradores, sinaturas de comandos, constantes raíz, renderización indirecta, métodos claros *( ) e Copiar*().

En libvkd3d-shader, implícase a tradución do bytecode dos modelos de shader 4 e 5 nunha representación SPIR-V intermedia. Admítense os sombreadores de vértices, píxeles, tessellation, computación e xeometría simple, serialización e deserialización de sinatura raíz. As instrucións de sombreado inclúen operacións aritméticas, atómicas e de bits, operadores de comparación e control de fluxo de datos, instrucións de mostra, recollida e carga, operacións de acceso sen ordenar (UAV, Vista de acceso sen ordenar).

Entre as innovacións máis significativas en Vkd3d 1.3 están:

  • Engadido soporte inicial para compilar e preprocesar sombreadores en HLSL (High-Level Shader Language), proporcionado a partir de DirectX 9.0.
  • Engadido soporte para matrices de descritores definidos no modelo sombreador 5.1.
  • Ofrece soporte para operacións de punto flotante de dobre precisión en sombreadores, direccionamento indirecto para sombreadores de teselación, exportación de stencils desde sombreadores, un modificador de sombreadores "preciso" e barreiras globais aos recursos de memoria.
  • Implementouse a capacidade de desmontar os sombreadores Direct3D do bytecode á representación de ensamblaxe.
  • Engadiuse compatibilidade para analizar o antigo formato de código de bytes Direct3D usado nos modelos de sombreadores de Direct3D 1, 2 e 3.
  • libvkd3d engade funcións de Direct3D 12 como sinaturas raíz, contadores de vista fóra de orde, operadores de combinación lóxica para a saída e modo de direccionamento de textura mirror_once. Engadiuse a estrutura vkd3d_host_time_domain_info.

Fonte: opennet.ru

Engadir un comentario