El proyecto Wine ha publicado vkd3d 1.16 con implementación de Direct3D 12

El proyecto Wine publicó la versión del paquete vkd3d 1.16 con la implementación de Direct3D 12, que funciona a través de la traducción de llamadas a la API gráfica Vulkan. El paquete incluye las bibliotecas libvkd3d con la implementación de Direct3D 12, libvkd3d-shader con el traductor de shaders de modelos 4 y 5, y libvkd3d-utils con funciones para simplificar la portación de aplicaciones Direct3D 12, así como un conjunto de ejemplos de demostración, incluyendo el puerto de glxgears a Direct3D 12. El código del proyecto se distribuye bajo la licencia LGPLv2.1.

La biblioteca libvkd3d soporta la mayor parte de las características de Direct3D 12, incluyendo herramientas para gráficos y cálculos, colas y listas de comandos, descriptores y descriptores de pilas, firmas raíz, acceso desordenado, samplers, firmas de comandos, constantes raíz, renderizado indirecto, métodos Clear*() y Copy*(). En libvkd3d-shader se ha implementado la traducción de bytecode de modelos de shaders a la representación intermedia SPIR-V. Se soportan shaders de vértices, píxeles, teselación, cómputo y shaders geométricos simples, así como la serialización y deserialización de la firma raíz. Se han implementado operaciones aritméticas, atómicas y bit a bit, operadores de comparación y control de flujo, instrucciones sample, gather y load, operaciones de acceso desordenado (UAV, Unordered Access View) a partir de instrucciones de shader.

En la nueva versión:

  • Se ha estabilizado y se incluye por defecto el soporte para shaders DXIL (DirectX Intermediate Language).
  • El compilador del lenguaje de shaders HLSL ha añadido soporte inicial para shaders geométricos. Para los modelos de shaders 1, 2, 3 se ha implementado soporte para direccionamiento indirecto, módulos y limitación de valores.
  • La biblioteca libvkd3d ha declarado soporte para el modelo de shader 6.0. En la interfaz ID3D12Device1 se ha implementado el método SetEventOnMultipleFenceCompletion(). Se ha añadido soporte para la extensión Vulkan VK_KHR_zero_initialize_workgroup_memory para inicializar a cero la memoria para shaders. Se incluye la extensión Vulkan VK_KHR_maintenance2, propuesta en la especificación Vulkan 1.1.
  • Se ha añadido soporte para la desensambladura de shaders SPIR-V y efectos binarios "fx_2_0".
  • Se ha añadido soporte experimental para el direccionamiento indirecto de buffers constantes en GLSL (OpenGL Shading Language).
  • La implementación del lenguaje de shaders MSL (Metal Shading Language), utilizado por Apple en la API gráfica Metal, ahora permite la carga de texturas.
  • Se ha añadido soporte para las funciones integradas de HLSL: AllMemoryBarrier(), AllMemoryBarrierWithGroupSync(), DeviceMemoryBarrier(), DeviceMemoryBarrierWithGroupSync(), GroupMemoryBarrier() y GroupMemoryBarrierWithGroupSync().
  • Se han implementado las opciones de compilación VKD3D_SHADER_COMPILE_OPTION_FEATURE_ZERO_INITIALIZE_WORKGROUP_MEMORY, VKD3D_SHADER_COMPONENT_INT64, VKD3D_SHADER_COMPONENT_FLOAT16, VKD3D_SHADER_COMPONENT_UINT16, VKD3D_SHADER_COMPONENT_INT16, VKD3D_SHADER_RESOURCE_DATA_NONE y VKD3D_SHADER_RESOURCE_DATA_UINT.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster