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

Il progetto Wine ha pubblicato il pacchetto vkd3d 1.11 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 i 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, inclusa la porting di glxgears su Direct3D 12. Il codice del progetto è distribuito con la licenza LGPLv2.1.

La libreria libvkd3d supporta la maggior parte delle funzionalità di Direct3D 12, inclusi strumenti per grafica e calcolo, code e liste di comandi, descrittori e descrittori di heap, 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 per gli shader di modello 4 e 5 in rappresentazione intermedia SPIR-V. Sono supportati shader vertex, pixel, tessellatori, computazionali e shader geometrici semplici, serializzazione e deserializzazione di una firma radice. Tra le istruzioni per shader sono implementate operazioni aritmetiche, atomiche e bit a bit, 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:

  • Aggiunta la supporto iniziale per la compilazione di vecchi bytecode Direct3D in una rappresentazione intermedia di shader SPIR-V.
  • Nel compilatore HLSL è stata aggiunta la supporto iniziale per la compilazione dei profili di effetti Direct3D ("fx_2_0", "fx_4_0", "fx_4_1" e "fx_5_0").
  • Aggiunta la supporto sperimentale per la compilazione del linguaggio intermedio DXIL (DirectX Intermediate Language) in rappresentazione SPIR-V e istruzioni assembly per gli shader Direct3D.
  • In HLSL è stata aggiunta la supporto per i profili "fx_2_0", "fx_4_0", "fx_4_1" e "fx_5_0", implementate le funzioni integrate acos(), asin(), atan() e atan2(), garantita la supporto per le risorse "Buffer".
  • Aggiunta un'ottimizzazione che esegue l'aggiornamento dei descrittori in modalità asincrona, che può portare a un'accelerazione delle applicazioni che aggiornano un grande numero di descrittori in ogni fotogramma.
  • Garantita l'utilizzazione delle estensioni Vulkan VK_EXT_mutable_descriptor_type e VK_EXT_shader_viewport_index_layer per migliorare l'efficienza nella gestione del pool di descrittori e accelerare il rendering degli shader di vertici e tessellatori.
  • Aggiunta la supporto per le interfacce ID3D12Device7 e ID3D12Resource2. Nella interfaccia ID3D12Device4 è stato aggiunto il metodo GetResourceAllocationInfo1().
  • Aggiunta la supporto per le interfacce D3DReflect() e D3DDisassemble().
  • Implementate le query di verifica D3D12_FEATURE_D3D12_OPTIONS6, D3D12_FEATURE_D3D12_OPTIONS7, D3D12_FEATURE_D3D12_OPTIONS8, D3D12_FEATURE_D3D12_OPTIONS9, D3D12_FEATURE_D3D12_OPTIONS10, D3D12_FEATURE_D3D12_OPTIONS11, D3D12_FEATURE_D3D12_OPTIONS12, D3D12_FEATURE_D3D12_OPTIONS13.
  • Aggiunte nuove opzioni di compilazione: VKD3D_SHADER_COMPILE_OPTION_FEATURE, VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64, VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64, VKD3D_SHADER_API_VERSION_1_10 e VKD3D_SHADER_SPIRV_EXTENSION_EXT_VIEWPORT_INDEX_LAYER.
  • Nelle funzioni D3D12CreateDeviceVKD3D() e D3D12CreateDevice() sono state utilizzate le estensioni Vulkan VK_KHR_android_surface, VK_KHR_wayland_surface, VK_KHR_win32_surface, VK_KHR_xlib_surface, VK_EXT_metal_surface e VK_MVK_ios_surface.

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