È stata pubblicata una versione sperimentale dell'implementazione open source dell'API Win32 — Wine 10.20. Dalla versione 10.19 sono stati chiusi 31 rapporti di bug e apportate 337 modifiche.
Le modifiche più importanti:
- Il pacchetto integrato Vkd3d con l'implementazione di Direct3D 12 è stato aggiornato alla versione 1.18.
- È stata aggiunta una finestra di dialogo per visualizzare il progresso della scansione dei documenti.
- Continua l'implementazione del meccanismo Reparse Point, che consente di allegare ai file e alle cartelle dati aggiuntivi identificabili tramite tag. È stato garantito il supporto per Reparse Point nelle funzioni CreateHardLink(), SetFileAttributes(), FindNextFile(), MoveFileWithProgress().
- Prosegue il refactoring dell'implementazione di Common Control dopo la suddivisione della libreria COMCTL32 in moduli separati per le versioni 5 e 6.
- È stato risolto un problema che causava il crash di molti giochi (ad esempio, Syberia 2) quando si utilizza la modalità WoW64 su sistemi con GPU NVIDIA.
- È stato risolto un problema con il ritardo nella reazione quando si premono i tasti di controllo della freccia in alcuni giochi, come Might and Magic VI.
- È stato risolto un problema di blocco o impossibilità di avviare alcune versioni di Windows di applicazioni che utilizzano la libreria GTK, come Meld e Geany.
- Chiusi i rapporti di bug riguardanti l'operatività delle applicazioni: SQL Server 2012/2014, installer di MS Office 365, QuarkXPress 2024, TomTom MyDrive Connect 4.x, Spine, GenLauncher, grepwinNP3, PlayOnline Viewer, tlReader 10.1.0.2004, cmd.exe, CLM Explorer, HiveMQ CE 2025.5.
- Chiusi i rapporti di bug riguardanti l'operatività dei giochi: Civilization 1.2, StarCraft, Last Stand: Aftermath, Mega Man X DiVE, Wagotabi, Geneforge 1 — Mutagen.
Il progetto Wine ha anche pubblicato la versione del pacchetto vkd3d 1.18 con l'implementazione di Direct3D 12 che funziona tramite 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 shader di modello 4 e 5 e libvkd3d-utils con funzioni per semplificare il porting delle applicazioni Direct3D 12, oltre a un insieme di esempi dimostrativi, compreso 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, comprese le risorse per la grafica e i calcoli, le code e le liste di comandi, i descrittori e i descrittori delle heap, le firme radice, l'accesso non ordinato, i sampler, le firme di comando, le costanti radice, il rendering indiretto, i metodi Clear*() e Copy*(). In libvkd3d-shader è implementata la traduzione del bytecode dei modelli di shader in rappresentazione intermedia SPIR-V. Sono supportati shader di vertice, pixel, tesselazione, calcolo e geometria semplice, serializzazione e deserializzazione della firma radice. Tra le istruzioni degli shader sono realizzate 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 di vkd3d:
- Nell'implementazione del linguaggio shader HLSL sono state aggiunte funzioni integrate countbits(), firstbithigh(), firstbitlow(), frexp() e texCUBEbias(). Per i profili Shader Model 1-3 è stata implementata la supporto per espressioni condizionali con tipi interi.
- Nel compilatore shader HLSL è stata ottimizzata la compilazione del codice con operatori condizionali if/else. È stata ampliata l'ottimizzazione delle costanti in fase di compilazione (constant folding). Tale ottimizzazione ora può essere applicata a espressioni del tipo «true ? x : y» e funzioni asfloat(), asint(), asuint(), cos(), mad(), round() e sin().
- Nella libreria libvkd3d è stato aggiunto il metodo CreateCommandList1() all'implementazione dell'interfaccia ID3D12Device4.
- Sono state aggiunte istruzioni di bytecode Direct3D: bem, tex, texbem, texbeml e texcoord.
- Prosegue lo sviluppo dell'implementazione del linguaggio shader MSL (Metal Shading Language), utilizzato da Apple nell'API grafica Metal. È stato aggiunto il supporto per shader computazionali, buffer costanti istantaneamente inizializzati, funzioni trigonometriche, operazioni di modulo e bitwise.
- Nell'implementazione del linguaggio shader GLSL (OpenGL Shading Language) sono state aggiunte operazioni di divisione e modulo interi senza segno, funzioni sin() e cos(), e la possibilità di offset dei texel al caricamento delle texture.
Inoltre, Valve ha pubblicato la versione VKD3D-Proton 3.0, un fork della base di codice vkd3d, creata per migliorare il supporto di Direct3D 12 nel pacchetto per l'esecuzione di giochi Proton. In VKD3D-Proton sono supportate modifiche, ottimizzazioni e miglioramenti specifici per Proton per un funzionamento di qualità superiore dei giochi Windows basati su Direct3D 12, non ancora integrati nel core di vkd3d. Tra le differenze si segnala anche l'orientamento verso l'utilizzo delle moderne estensioni Vulkan e delle possibilità delle nuove versioni dei driver grafici per raggiungere una piena compatibilità con Direct3D 12.
Tra le modifiche nella nuova versione di vkd3d-proton:
- È stato riscritto il backend degli shader DXBC (DirectX ByteCode), che ha sostituito il backend vkd3d-shader. Il nuovo backend ha risolto problemi in molti giochi, precedentemente causati dalla mancanza di funzionalità necessarie in vkd3d-shader, ad esempio, ha ripristinato il funzionamento del gioco Red Dead Redemption 2 in modalità D3D12.
- È stato aggiunto il supporto per la tecnologia di supersampling FSR4 (AMD FidelityFX Super Resolution).
- È stata aggiunta la sperimentale supporto per i grafi delle attività D3D12 (Work Graphs).
- È stato aggiunto il supporto sperimentale per le micro-map di trasparenza (OMM — Opacity MicroMaps).
- Sono stati risolti problemi nei giochi Star Citizen, Ninja Gaiden 4, Monster Hunter Wilds, Wreckfest 2, Satisfactory, Street Fighter 6, Death Stranding, Wuthering Waves, Dune, Spider-Man Remastered, Gray Zone Warfare, Rise of the Tomb Raider, Port Royal, Mafia: Definitive Edition, Final Fantasy Tactics.
Fonte: opennet.ru
