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

Il progetto Wine ha pubblicato la versione del pacchetto vkd3d 1.16 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 dei modelli di shader 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 la grafica e il calcolo, code e liste di comandi, descrittori e descrittori di heap, firme radice, accesso non ordinato, Sampler, firme di comando, costanti radice, rendering indiretto, metodi Clear*() e Copy*(). In libvkd3d-shader è stata implementata la traduzione del bytecode dei modelli di shader in rappresentazione intermedia SPIR-V. Sono supportati shader di vertici, pixel, tessellazione, calcolo e shader geometrici semplici, serializzazione e deserializzazione delle firme radice. Tra le istruzioni per shader sono state implementate operazioni aritmetiche, atomiche e bitwise, operatori di confronto e di controllo del flusso di dati, istruzioni sample, gather e load, operazioni di accesso non ordinato (UAV, Unordered Access View).

Nella nuova versione:

  • Stabilita e inclusa per impostazione predefinita il supporto per gli shader DXIL (DirectX Intermediate Language).
  • Aggiunto nel compilatore del linguaggio shader HLSL il supporto iniziale per gli shader geometrici. Per i modelli di shader 1, 2, 3 è stata implementata la supporto per l'indirizzamento indiretto, i moduli e le limitazioni sui valori.
  • Nella libreria libvkd3d è dichiarato il supporto per il modello di shader 6.0. Nell'interfaccia ID3D12Device1 è implementato il metodo SetEventOnMultipleFenceCompletion(). Aggiunto il supporto per l'estensione Vulkan VK_KHR_zero_initialize_workgroup_memory per l'inizializzazione a zero della memoria per gli shader. Tra le obbligatorie è inclusa l'estensione Vulkan VK_KHR_maintenance2, proposta nella specifica Vulkan 1.1.
  • Aggiunto il supporto per la disassemblatura degli shader SPIR-V e degli effetti binari «fx_2_0».
  • Aggiunto il supporto sperimentale per l'indirizzamento indiretto dei buffer costanti in GLSL (OpenGL Shading Language).
  • Nell'implementazione del linguaggio shader MSL (Metal Shading Language), utilizzato da Apple nell'API grafica Metal, è stata aggiunta la possibilità di caricare texture.
  • Aggiunto il supporto per le funzioni integrate HLSL: AllMemoryBarrier(), AllMemoryBarrierWithGroupSync(), DeviceMemoryBarrier(), DeviceMemoryBarrierWithGroupSync(), GroupMemoryBarrier() e GroupMemoryBarrierWithGroupSync().
  • Implementati i flag VKD3D_SHADER_COMPILE_OPTION_FEATURE_ZERO_INITIALIZE_WORKGROUP_MEMORY, VKD3D_SHADER_COMPONENT_INT64, VKD3D_SHADER_COMPONENT_FLOAT16, VKD3D_SHADER_COMPONENT_UINT16, VKD3D_SHADER_COMPONENT_INT16, VKD3D_SHADER_RESOURCE_DATA_NONE e VKD3D_SHADER_RESOURCE_DATA_UINT.

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