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

Progetto Vino pubblicato rilascio del pacchetto vkd3d 1.2 con un'implementazione Direct3D 12 che funziona tramite la trasmissione di chiamate 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. Codice del progetto distribuito da concesso in licenza sotto LGPLv2.1.

libreria libvkd3d поддерживает La maggior parte delle funzionalità di Direct3D 12, incluse funzionalità grafiche e di elaborazione, 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. Sono supportati vertici, pixel, tassellatura, calcolo e shader di geometria semplice, serializzazione e deserializzazione della firma radice. 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).

Tra i più significativi innovazioni in Vkd3d 1.2 sono evidenziati:

  • La libreria libvkd3d-shader è pronta per l'uso in progetti di terze parti.
  • Supporto dello shader di tassellatura.
  • Supporto per conversione, serializzazione e deserializzazione delle firme root (vkd3d_serialize_versioned_root_signature() e vkd3d_create_versioned_root_signature_deserializer()).
  • Supporto per l'output in streaming.
  • Implementazione di molte funzionalità Direct3D 12 precedentemente non disponibili, incluso il supporto per il multicampionamento, la prenotazione delle risorse,
    rendering indicizzato indiretto, rendering di profondità senza pixel shader, accesso simultaneo alle risorse da diverse code di comandi, visualizzazioni Null.

  • Aggiunte variabili di ambiente: VKD3D_CONFIG per impostare le opzioni per modificare il comportamento di libvkd3d e VKD3D_VULKAN_DEVICE per sovrascrivere il dispositivo per l'API Vulkan.
  • Aggiunto il supporto per le istruzioni dello shader bufinfo,
    eval_centroide,
    eval_sample_index,
    ld2ms,
    campione_b,
    campione_d,
    informazioni_campione,
    campionepos.

Fonte: opennet.ru

Aggiungi un commento