Il progetto Wine ha rilasciato Vkd3d 1.4 con l'implementazione di Direct3D 12

Il progetto Wine ha pubblicato il rilascio del pacchetto vkd3d 1.4 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.
  • È stata proposta una nuova implementazione del Descriptor Heap, utilizzando l'estensione Vulkan VK_EXT_descriptor_indexing.
  • Aggiunta una nuova implementazione del recinto basata sull'estensione Vulkan K_KHR_timeline_semaphore.

Fonte: opennet.ru

Aggiungi un commento