Il progetto Wine ha pubblicato Vkd3d 1.7 con l'implementazione di Direct3D 12

Il progetto Wine ha pubblicato il rilascio del pacchetto vkd3d 1.7 con un'implementazione di Direct3D 12 che funziona tramite chiamate broadcast all'API grafica Vulkan. Il pacchetto include le librerie libvkd3d con implementazioni di Direct3D 12, libvkd3d-shader con un traduttore dei modelli shader 4 e 5 e libvkd3d-utils con funzioni per semplificare il porting delle applicazioni Direct3D 12, nonché una serie di esempi demo, incluso un port di glxgears su Direct3D 12. Il codice del progetto è distribuito con licenza LGPLv2.1.

La libreria libvkd3d supporta la maggior parte delle funzionalità di Direct3D 12, incluse funzionalità grafiche e di calcolo, code ed elenchi di comandi, handle e handle di heap, firme root, accesso fuori ordine, campionatori, firme di comandi, costanti root, rendering indiretto, metodi Clear *( ) e Copia*(). In libvkd3d-shader è implementata la traduzione del bytecode dei modelli shader 4 e 5 in una rappresentazione SPIR-V intermedia. Supporta vertex, pixel, tassellazione, shader di geometria semplice e di calcolo, serializzazione e deserializzazione della firma root. Le istruzioni shader includono operazioni aritmetiche, atomiche e di bit, operatori di confronto e di controllo del flusso di dati, istruzioni di campionamento, raccolta e caricamento, operazioni di accesso non ordinato (UAV, Unordered Access View).

Nella nuova versione:

  • È continuato il lavoro per migliorare il compilatore shader in HLSL (High-Level Shader Language):
    • Aggiunta la possibilità di chiamare funzioni personalizzate e utilizzare array come parametri per funzioni personalizzate.
    • Aggiunto il supporto per i parametri SV_DispatchThreadID, SV_GroupID e SV_GroupThreadID.
    • Aggiunte funzioni integrate all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt (), passo(), trasposizione().
    • Aggiunto il supporto iniziale per tipi a virgola mobile a bassa precisione come "min16float".
  • Supporto notevolmente migliorato per i profili dei modelli shader Direct3D 1/2/3.
  • Aggiunta API pubblica per l'analisi (vkd3d_shader_parse_dxbc) e la serializzazione (vkd3d_shader_serialize_dxbc) dei dati binari DXBC.

Fonte: opennet.ru

Aggiungi un commento