programmatūra · 6 min · 06.09.2026

Wine 11.17 samelo spēlei par izšķirtspēju: 640×480 pilnekrānā bez gamescope

Wine 11.17 pirmoreiz prot samelot spēlei par monitora izšķirtspēju. Ja vecs Windows tituls startē un pieprasa 640×480 pilnekrāna režīmu, Wayland kompozitors atbild ar atteikumu, jo protokolā klientam nav veida, kā pārslēgt monitora režīmu. Laidiens, kas iznāca 4. septembrī, šo pieprasījumu apkalpo pats: kadru uzzīmē pieprasītajā izmērā un pēc tam izstiepj līdz monitora fiziskajiem pikseļiem.

Līdz šim to Linux vidē darīja gamescope. Tas ir atsevišķs mikrokompozitors, kas spēli ieliek savā logā un mērogo attēlu uz āru. Wine 11.17 to pašu darbu paveic bez papildu procesa.

kur pazuda izšķirtspējas slēdzis

Windows spēles režīmu maina ar ChangeDisplaySettings izsaukumu. X11 pusē Wine to pārtulkoja uz XRandR. Monitors tiešām pārslēdzās uz 800×600, pēc iziešanas no spēles atgriezās atpakaļ.

Wayland tādu iespēju klientam nedod ar nolūku. Nav arī centrāla servisa, kam pajautāt pašreizējos ekrāna iestatījumus tā, kā to dara xrandr. Wine Wayland draiveris tāpēc par patiesības avotu ņem Windows reģistru. Win32 puse režīma maiņu apstrādā parastajā ceļā, bet draiveris pašreizējos iestatījumus nolasa caur funkciju gdi_display_manager.get_adapter().

Bez emulācijas rezultāts uz mūsdienu monitora izskatās tā: spēle atver savu logu 640×480 pikseļos, kas 4K ekrānā ir aptuveni divdesmit septītā daļa no laukuma. Attēls paliek stūrī, pārējais ekrāns melns. Ar emulāciju spēle joprojām domā, ka zīmē 640×480, bet kompozitors virsmu izstiepj līdz izvada izmēram.

wp_viewporter xrandr vietā

Mērogošanas mehānisms nav jauns. Wine Wayland draiveris jau lieto wp_viewporter, lai zīmētu logus uz HiDPI ekrāniem. Alexandros Frantzis 2024. gada janvārī piedāvāja to pašu paņēmienu izmantot režīma maiņas imitēšanai: virsma paliek loģiskajā izmērā, kompozitors to novieto un izstiepj līdz izvada izmēram. Tajā pašā pieprasījumā parādījās adaptera līmeņa draivera dati, kas visos procesos sasaista adaptera ierīci ar konkrēto wl_output.

Wine 11.17 pievieno trūkstošo pusi. Rémi Bernon panāca, ka emulētajā izšķirtspējā zīmē arī OpenGL: attēlu renderē virtuālajā izmērā un tikai pēc tam ievieto fiziskā izmēra logā. Izlaiduma piezīmēs tas ierakstīts vienā rindā.

Initial support for display mode emulation.

Vārds “initial” te ir svarīgs. Frantzis jau savā pieprasījumā norādīja uz funkcijas robežu: liela daļa mūsdienu spēļu ChangeDisplaySettings vispār neizsauc, bet renderē zemākā izšķirtspējā un mērogo pašas. Emulāciju var pārbaudīt tikai ar programmām, kas šo API tiešām lieto, tātad galvenokārt ar 2000. gadu titulu bibliotēku.

vkd3d 2.1 nāk komplektā

Tajā pašā laidienā ievilkts vkd3d 2.1, ko 24. augustā izlaida Henri Verbeet no CodeWeavers. Tā ir paša Wine Direct3D 12 realizācija virs Vulkan, atsevišķa no vkd3d-proton, kuru savā slānī lieto Valve.

Versijā 2.1 HLSL kompilators ieguva mirušo ierakstu likvidēšanas soli. Tas konstanšu tabulas izkārtojumu pietuvina tam, ko izdod Microsoft kompilators. SPIR-V pusē pievienota peldošā punkta pārveide uz 64 bitu veseliem skaitļiem ar zīmi un bez tās, kas vajadzīga DXIL avotiem. Refleksijas API paplašinātas D3D10, D3D11 un D3D12 līmenī. Vecā Direct3D baitkoda lasīšana un GLSL mērķis arī saņēma labojumus.

44 labotas kļūdas

Laidienā aizvērti 44 kļūdu pieteikumi. Saraksts labi parāda, kāda ir Wine tipiskā slodze:

  • GTA: Vice City intro video vietā rādīja baltu ekrānu;
  • GTA: San Andreas nespēlēja video pilnekrāna režīmā;
  • Star Wars: Knights of the Old Republic I un II avarēja;
  • Dragon Age: Inquisition neatpazina spēļu pulti;
  • Worms Blast nepareizi zīmēja tekstūras;
  • SketchUp 2021, Autodesk 3ds Max 9, PS4 Remote Play un KOBIL bankas programmatūra.

Sarakstā ir arī Ground Control, Marathon un Horizon Chase Turbo. Wine kļūdu pieteikumi mēdz palikt atvērti gadiem, tāpēc vienā laidienā blakus stāv 2002. gada Worms Blast un 2006. gada 3ds Max 9.

Blakus tam uzlabota vēlamo saskarnes valodu apstrāde. Wine tagad precīzāk seko tam, kādā secībā lietotājs sistēmā ir sakārtojis valodas.

kā to izmēģināt

Wayland draiveris Wine sastāvā ir kopš versijas 9.0, kas iznāca 2024. gada janvārī. Pēc noklusējuma tas joprojām neieslēdzas. Wine vispirms mēģina X11, kas uz Wayland darbvirsmas nozīmē Xwayland starpslāni. Draiveri ieslēdz ar vienu reģistra ierakstu:

wine reg add HKCUSoftwareWineDrivers /v Graphics /d wayland /f

Pēc tam no vides jāizņem DISPLAY mainīgais, citādi X11 aizsteidzas priekšā. Ja vērtībā atstāj x11,wayland, Wine sarakstu iet secīgi un pirmais joprojām ir Xwayland. Jaunā emulācija dzīvo Wayland draivera kodā, tāpēc caur Xwayland tā nenostrādā: tur izšķirtspējas maiņu apstrādā X11 puse.

ko no tā dabū Proton

Wine ir pamats Valve Proton slānim, uz kura Steam Deck un SteamOS mašīnas palaiž Windows spēles. Izmaiņas no izstrādes sērijas Proton parasti sasniedz ar vairāku mēnešu nobīdi, jo Valve savu koka atzaru sinhronizē ar konkrētām Wine versijām. Sērija 11.x iznāk reizi divās nedēļās, stabilā versija tradicionāli janvārī.

Pirmās atsauksmes par 11.17 nāk no GamingOnLinux komentāriem: Shadow of the Damned Remastered beidzot pareizi reaģē uz peli, Turning Point: Fall of Liberty atkal ir spēlējams, Dead Rising 1 tiek garām ielādes ekrānam.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie