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

Il progetto Wine ha pubblicato la versione del pacchetto vkd3d 1.7 con l'implementazione di Direct3D 12, funzionante tramite la traduzione delle chiamate nell'API grafica Vulkan. Il pacchetto comprende le librerie libvkd3d con l'implementazione di Direct3D 12, libvkd3d-shader con il traduttore per shader di modello 4 e 5 e libvkd3d-utils con funzioni per semplificare il porting delle applicazioni Direct3D 12, oltre a un insieme di esempi dimostrativi, incluso il porting di glxgears su Direct3D 12. Il codice del progetto è distribuito con licenza LGPLv2.1.

La libreria libvkd3d supporta gran parte delle funzionalità di Direct3D 12, inclusi gli strumenti per grafica e calcoli, code e liste di comandi, descrittori e descrittori heap, firme root, accesso non ordinato, sampler, firme di comandi, costanti root, rendering indiretto, metodi Clear*() e Copy*(). In libvkd3d-shader è implementata la traduzione del codice byte dei modelli di shader 4 e 5 in una rappresentazione intermedia SPIR-V. Sono supportati shader vertex, pixel, tessellazione, calcolo e geometria semplice, serializzazione e deserializzazione della firma root. Tra le istruzioni degli shader sono implementate operazioni aritmetiche, atomiche e bitwise, operatori di confronto e controllo del flusso di trasferimento dati, istruzioni sample, gather e load, e operazioni di accesso non ordinato (UAV, Unordered Access View).

Nella nuova versione:

  • Continua il lavoro per migliorare il compilatore di shader in linguaggio HLSL (High-Level Shader Language):
    • Aggiunta la possibilità di chiamare funzioni personalizzate e di utilizzare array come parametri delle funzioni personalizzate.
    • Aggiunta la supporto per i parametri SV_DispatchThreadID, SV_GroupID e SV_GroupThreadID.
    • Aggiunte le funzioni integrate all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt(), step(), transpose().
    • Aggiunto il supporto iniziale per i tipi a precisione ridotta con virgola mobile, come «min16float».
  • Notevolmente migliorato il supporto per i profili di modello di shader Direct3D 1/2/3.
  • Aggiunto un API pubblico per l'analisi (vkd3d_shader_parse_dxbc) e la serializzazione (vkd3d_shader_serialize_dxbc) dei dati binari DXBC.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster