Il progetto Wine ha rilasciato Vkd3d 1.13 con l'implementazione di Direct3D 12

Il progetto Wine ha pubblicato la versione del pacchetto vkd3d 1.13 con l'implementazione di Direct3D 12, operante 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, tra cui 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 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:

  • Nel compilatore HLSL è stata aggiunta la supporto per lo srotolamento dei cicli (loop unrolling, un'ottimizzazione che sostituisce le operazioni cicliche con più copie consecutive del codice per un utilizzo più efficiente della cache del processore e per ridurre il branching).
  • È stata aggiunta la supporto per il compilatore di effetti per alcuni oggetti di stato del quarto modello di shader.
  • È stata garantita la supporto per i tipi del quarto modello di shader BlendState, ComputeShader, DomainShader, GeometryShader, HullShader, DepthStencilState e RasterizerState, nonché per le funzioni OMSetRenderTargets(), SetBlendState(), SetComputeShader(), SetDomainShader(), SetGeometryShader(), SetHullShader(), SetPixelShader(), SetVertexShader(), SetDepthStencilState() e SetRasterizerState().
  • Nel compilatore di shader è stata implementata la supporto per l'analisi e la memorizzazione in vari formati dei valori di inizializzazione per le variabili globali, i parametri delle funzioni e le annotazioni.
  • Aggiunta la supporto per lo spazio dei registri del modello shader 5.1.
  • Implementate le funzioni integrate tex1D(), tex2D(), tex3D(), texCUBE(), asint(), f16tof32(), faceforward(), GetRenderTargetSampleCount(), rcp(), tex2Dbias(), tex1Dgrad(), tex2Dgrad(), tex3Dgrad() e texCUBEgrad().
  • Nella libvkd3d è stata aggiunta l'interfaccia ID3D12CommandList6 e implementata la possibilità di creare texture la cui compressione avviene a livello di singoli blocchi (ad esempio, blocchi di dimensioni 4×4 pixel comprimibili separatamente).
  • Aggiunto il supporto per la struttura vkd3d_shader_parameter_info e i parametri VKD3D_SHADER_PARAMETER_DATA_TYPE_FLOAT32, VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_FUNC, VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_REF, VKD3D_SHADER_PARAMETER_NAME_FLAT_INTERPOLATION e VKD3D_SHADER_PARAMETER_TYPE_BUFFER.

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