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

Il progetto Wine ha pubblicato la versione del pacchetto vkd3d 1.14 con l'implementazione di Direct3D 12, funzionante 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 gli shader di modello 4 e 5 e libvkd3d-utils con funzioni per semplificare il porting delle applicazioni Direct3D 12, insieme a un insieme di esempi dimostrativi, incluso il port di glxgears su Direct3D 12. Il codice del progetto è distribuito sotto la licenza LGPLv2.1.

La libreria libvkd3d supporta gran parte delle funzionalità di Direct3D 12, inclusi strumenti per grafiche e calcoli, code e liste di comandi, deskriptori e heap descriptor, root signatures, accesso non ordinato, Sampler, command signatures, root constants, rendering indiretto, metodi Clear*() e Copy*(). In libvkd3d-shader è implementata la traduzione del bytecode dei modelli di shader in una rappresentazione intermedia SPIR-V. Sono supportati shader di vertice, pixel, tessellazione, computazionali e shader geometrici semplici, serializzazione e deserializzazione delle root signature. Tra le istruzioni shader sono implementate operazioni aritmetiche, atomiche e bitwise, operatori di confronto e controllo del flusso di dati, istruzioni sample, gather e load, operazioni di accesso non ordinato (UAV, Unordered Access View).

Nella nuova versione:

  • Aggiunta la supporto iniziale per il linguaggio degli shader MSL (Metal Shading Language), utilizzato da Apple nell'API grafica Metal.
  • Implementato il supporto per il disassemblatore per effetti binari.
  • Nella libreria libvkd3, nell'interfaccia ID3D12GraphicsCommandList1, è stato implementato il metodo OMSetDepthBounds() per modificare dinamicamente l'intervallo di valori di profondità consentito nel buffer Z.
  • Aggiunta la variabile d'ambiente VKD3D_CAPS_OVERRIDE per sovrascrivere le informazioni sulle capacità disponibili restituite alle applicazioni, come i livelli massimi di funzionalità supportati e il binding delle risorse.
  • Aggiunto il supporto iniziale per gli shader di tesselazione nell'implementazione del linguaggio degli shader HLSL. Implementate le funzioni integrate dst(), f32tof16(), mad(), modf() e sincos(). Per i profili 1, 2 e 3 degli shader è stato aggiunto il supporto all'operazione «discard». Aggiunto il supporto alla semantica dei dati di ingresso SV_SampleIndex per gli shader di frammento e SV_GroupIndex per gli shader di calcolo.
  • Implementata una grande quantità 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