È iniziato il test del primo candidato per il rilascio di Wine 8.0, un'implementazione open source di WinAPI. Il codice sorgente è stato congelato in preparazione al rilascio, previsto per metà gennaio. Rispetto al rilascio di Wine 7.22, sono stati chiusi 52 rapporti di bug e apportate 538 modifiche.
Le modifiche più importanti:
- Il pacchetto vkd3d, con l'implementazione di Direct3D 12 che funziona tramite la traduzione delle chiamate nell'API grafica Vulkan, è stato aggiornato alla versione 1.6.
- È stata ottimizzata la conversione delle chiamate di sistema (thunk) per Vulkan e OpenGL.
- In WinPrint è stato ampliato il supporto per i gestori di output di stampa (Print processor).
- Migliorata dashboard con il joystick.
- È stato completato il lavoro per garantire il supporto del tipo 'long' nel codice della funzione printf.
- Sono stati chiusi i rapporti di bug relativi a giochi come: Tom Clancy’s Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
- Sono stati chiusi i rapporti di bug relativi a applicazioni come: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.
Inoltre, si segnala la pubblicazione da parte del progetto Wine del pacchetto vkd3d 1.6 con l'implementazione di Direct3D 12, che funziona tramite la traduzione delle chiamate nell'API grafica Vulkan. Il pacchetto contiene le librerie libvkd3d con l'implementazione di Direct3D 12, libvkd3d-shader con un traduttore per i modelli 4 e 5 di shader e libvkd3d-utils con funzioni per semplificare il porting delle applicazioni Direct3D 12, oltre a un set di esempi dimostrativi, incluso il porting di glxgears su Direct3D 12. Il codice del progetto è distribuito sotto 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 è continuato il lavoro di miglioramento del compilatore di shader in linguaggio HLSL (High-Level Shader Language), fornito a partire da DirectX 9.0. Tra i miglioramenti relativi a HLSL:
- È stato implementato il supporto iniziale per gli shader di calcolo.
- È stato migliorato il supporto per l'inizializzazione e l'assegnazione di oggetti complessi, come strutture e array.
- È stata aggiunta la possibilità di caricare e salvare risorse texture utilizzando un accesso non ordinato (UAV).
- È stato aggiunto il supporto per gli attributi delle funzioni ed è stata implementata la funzionalità integrata asuint(), length(), normalize().
- È stato aggiunto il supporto per i moduli per i calcoli in virgola mobile.
- È stato implementato il flag VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS per indicare le operazioni atomiche sui descrittori per l'accesso non ordinato (UAV).
Fonte: opennet.ru
