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

Il progetto Wine ha pubblicato il pacchetto vkd3d 1.14 contenente l'implementazione di Direct3D 12, che funziona tramite la traduzione delle chiamate nell'API grafica Vulkan. Il pacchetto include 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 una serie di esempi dimostrativi, incluso il port di glxgears su Direct3D 12. Il codice del progetto è distribuito con la licenza LGPLv2.1.

La libreria libvkd3d supporta gran parte delle funzionalità di Direct3D 12, inclusi strumenti per grafica e calcolo, code e liste di comandi, descrittori e heap descrittori, firme radice, accesso non ordinato, Sampler, firme di comandi, costanti radice, rendering indiretto, metodi Clear*() e Copy*(). In libvkd3d-shader è implementata la traduzione del bytecode dei modelli di shader in rappresentazione intermedia SPIR-V. Sono supportati shader di vertici, pixel, tessellazione, calcolo e semplici shader geometrico, oltre alla serializzazione e deserializzazione della firma radice. Tra le istruzioni degli shader sono implementate operazioni aritmetiche, atomiche e bit, operatori di confronto e controllo del flusso dei dati, istruzioni sample, gather e load, operazioni di accesso non ordinato (UAV, Unordered Access View).

Nella nuova versione:

  • È stato aggiunto il supporto iniziale per il linguaggio di shader MSL (Metal Shading Language), utilizzato da Apple nell'API grafica Metal.
  • È stato implementato il supporto per il disassemblatore degli effetti binari.
  • Nella libreria libvkd3, nell'interfaccia ID3D12GraphicsCommandList1, è stato implementato il metodo OMSetDepthBounds() per modificare dinamicamente l'intervallo di valori della profondità consentiti nel buffer Z.
  • È stata aggiunta la variabile d'ambiente VKD3D_CAPS_OVERRIDE per sovrascrivere le informazioni sulle funzionalità disponibili fornite alle applicazioni, come i livelli massimi di funzionalità supportati e il binding delle risorse.
  • Nell'implementazione del linguaggio degli shader HLSL è stato aggiunto il supporto iniziale per gli shader di tessellazione. Sono state implementate le funzioni incorporate dst(), f32tof16(), mad(), modf() e sincos(). Per i profili di shader di modelli 1, 2 e 3 è stata aggiunta la supporto per l'operazione 'discard'. È stato aggiunto il supporto per la semantica degli input SV_SampleIndex per gli shader di frammento e SV_GroupIndex per gli shader computazionali.
  • È stata implementata una vasta gamma di nuove istruzioni per il linguaggio degli shader GLSL.

Fonte: opennet.ru

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