Candidato al rilascio di Wine 8.0 e rilascio di vkd3d 1.6

Sono iniziati i test sulla prima release candidate Wine 8.0, un'implementazione aperta di WinAPI. Il codice base è stato messo in una fase di congelamento prima del rilascio, previsto per metà gennaio. Dal rilascio di Wine 7.22, sono state chiuse 52 segnalazioni di bug e sono state apportate 538 modifiche.

Le modifiche più importanti:

  • Il pacchetto vkd3d con un'implementazione Direct3D 12 che funziona tramite chiamate broadcast all'API grafica Vulkan è stato aggiornato alla versione 1.6.
  • È stata effettuata l'ottimizzazione dei convertitori di chiamate di sistema (thunk) per Vulkan e OpenGL.
  • WinPrint ha ampliato il supporto per i processori di stampa.
  • Pannello di controllo joystick migliorato.
  • È stato completato il lavoro per fornire il supporto per il tipo 'long' nel codice della funzione printf.
  • Sono chiuse le segnalazioni di errori relativi al funzionamento dei giochi: Tom Clancy's Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
  • Segnalazioni di errori chiusi relativi al funzionamento delle applicazioni: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.

Inoltre, possiamo notare la pubblicazione da parte del progetto Wine del pacchetto vkd3d 1.6 con un'implementazione di Direct3D 12, che funziona attraverso la traduzione delle chiamate alle API grafiche Vulkan. Il pacchetto include le librerie libvkd3d con implementazioni di Direct3D 12, libvkd3d-shader con un traduttore dei modelli shader 4 e 5 e libvkd3d-utils con funzioni per semplificare il porting delle applicazioni Direct3D 12, nonché una serie di esempi demo, incluso un port di glxgears su Direct3D 12. Il codice del progetto è distribuito con licenza LGPLv2.1.

La libreria libvkd3d supporta la maggior parte delle funzionalità di Direct3D 12, incluse funzionalità grafiche e di calcolo, code ed elenchi di comandi, handle e handle di heap, firme root, accesso fuori ordine, campionatori, firme di comandi, costanti root, rendering indiretto, metodi Clear *( ) e Copia*(). In libvkd3d-shader è implementata la traduzione del bytecode dei modelli shader 4 e 5 in una rappresentazione SPIR-V intermedia. Supporta vertex, pixel, tassellazione, shader di geometria semplice e di calcolo, serializzazione e deserializzazione della firma root. Le istruzioni shader includono operazioni aritmetiche, atomiche e di bit, operatori di confronto e di controllo del flusso di dati, istruzioni di campionamento, raccolta e caricamento, operazioni di accesso non ordinato (UAV, Unordered Access View).

La nuova versione continua a migliorare il compilatore shader in HLSL (High-Level Shader Language), fornito a partire da DirectX 9.0. I miglioramenti relativi a HLSL includono:

  • È stato implementato il supporto iniziale per gli shader di calcolo.
  • Supporto migliorato per l'inizializzazione e l'assegnazione di oggetti compositi come strutture e array.
  • Aggiunta la possibilità di caricare e salvare risorse texture utilizzando l'accesso fuori ordine (UAV).
  • Aggiunto il supporto per gli attributi delle funzioni e implementate le funzioni integrate assuint(), length(), normalize().
  • Aggiunto il supporto per i moduli a virgola mobile.
  • Implementato il flag VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS per indicare operazioni atomiche sui descrittori di rappresentazione di accesso non ordinato (UAV).

Fonte: opennet.ru

Aggiungi un commento