Proyecto Wine publicado Vkd3d 1.16 con implementación Direct3D 12

El proyecto Wine ha publicado el lanzamiento del paquete vkd3d 1.16 con una implementación de Direct3D 12 que funciona mediante llamadas de difusión a la API de gráficos Vulkan. El paquete incluye bibliotecas libvkd3d con implementaciones de Direct3D 12, libvkd3d-shader con un traductor de los modelos de sombreado 4 y 5 y libvkd3d-utils con funciones para simplificar la migración de aplicaciones Direct3D 12, así como un conjunto de ejemplos de demostración, incluido un puerto. de glxgears a Direct3D 12. El código del proyecto se distribuye con licencia LGPLv2.1.

La biblioteca libvkd3d admite la mayoría de las características de Direct3D 12, incluidas las funciones gráficas y de cálculo, colas y listas de comandos, descriptores y descriptores de montón, firmas raíz, acceso no ordenado, samplers, firmas de comandos, constantes raíz, renderizado indirecto y métodos Clear*() y Copy*(). libvkd3d-shader implementa la traducción del código de bytes del modelo de sombreado en la representación intermedia SPIR-V. Se admiten sombreadores de vértices, píxeles, teselaciones, cómputo y geometría simple, serialización y deserialización de firmas raíz. Las instrucciones del sombreador incluyen operaciones aritméticas, atómicas y de bits, operadores de comparación y control de flujo de datos, instrucciones de muestreo, recopilación y carga, y operaciones de vista de acceso no ordenado (UAV).

Versículos nuevos:

  • Compatibilidad con sombreadores DXIL (lenguaje intermedio DirectX) estabilizada y habilitada de forma predeterminada.
  • Se ha agregado soporte inicial para sombreadores de geometría al compilador del lenguaje de sombreadores HLSL. Para los modelos de sombreado 1,2,3, XNUMX y XNUMX, se ha implementado soporte para direccionamiento indirecto, módulos y límites de valores.
  • La biblioteca libvkd3d afirma ser compatible con el modelo de sombreado 6.0. La API ID3D12Device1 implementa el método SetEventOnMultipleFenceCompletion(). Se agregó soporte para la extensión Vulkan VK_KHR_zero_initialize_workgroup_memory para inicializar la memoria del sombreador a ceros. La extensión Vulkan VK_KHR_maintenance2 propuesta en la especificación Vulkan 1.1 ahora está incluida en la lista obligatoria.
  • Se agregó soporte para desmontar sombreadores SPIR-V y efectos binarios "fx_2_0".
  • Se agregó soporte experimental para direccionamiento indirecto de buffers persistentes en GLSL (OpenGL Shading Language).
  • La implementación del lenguaje de sombreado Metal Shading Language (MSL) utilizado por Apple en la API de gráficos Metal se ha actualizado para incluir la capacidad de cargar texturas.
  • Se agregó soporte para funciones HLSL integradas: AllMemoryBarrier(), AllMemoryBarrierWithGroupSync(), DeviceMemoryBarrier(), DeviceMemoryBarrierWithGroupSync(), GroupMemoryBarrier() y GroupMemoryBarrierWithGroupSync().
  • Se implementaron las banderas 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

Añadir un comentario