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

Il progetto Wine ha pubblicato il rilascio del pacchetto vkd3d 1.5 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:

  • Sono stati apportati numerosi miglioramenti al compilatore shader HLSL (High-Level Shader Language) fornito a partire da DirectX 9.0. Incluso il supporto migliorato per i tipi di oggetto HLSL come Texture2D in strutture e array, aggiunto il supporto per le funzioni integrate dot(), ldexp() e lerp(), aggiunto il supporto per gli operatori logici “e”, “o” per i modelli shader 4 e 5 e "non", oltre alla possibilità di lanciare tipi booleani.
  • Implementata l'opzione VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV per caricare la rappresentazione di accesso non ordinato (UAV) per i formati multiparte SPIR-V (DXGI_FORMAT).

Fonte: opennet.ru

Aggiungi un commento