Matoleo mapya ya viigizaji vya Box86 na Box64, vinavyokuruhusu kuendesha michezo ya x86 kwenye mifumo ya ARM

Matoleo ya emulators za Box86 0.2.6 na Box64 0.1.8 yamechapishwa, iliyoundwa ili kuendesha programu za Linux zilizokusanywa kwa usanifu wa x86 na x86_64 kwenye vifaa vyenye vichakataji vya ARM, ARM64, PPC64LE na RISC-V. Miradi hutengenezwa kwa usawa na timu moja ya wasanidi - Box86 ina kikomo cha uwezo wa kuendesha programu-tumizi za 32-bit x86, na Box64 hutoa uwezo wa kutekeleza utekelezo wa 64-bit. Mradi unazingatia sana kuandaa uzinduzi wa programu za michezo ya kubahatisha, ikiwa ni pamoja na kutoa uwezo wa kuzindua Windows hujenga kupitia divai na Proton. Nambari ya chanzo cha mradi imeandikwa katika C na kusambazwa (Box86, Box64) chini ya leseni ya MIT.

Kipengele cha mradi ni matumizi ya mfano wa utekelezaji wa mseto, ambapo uigaji unatumika tu kwa msimbo wa mashine ya programu yenyewe na maktaba maalum. Maktaba za mfumo wa kawaida, ikiwa ni pamoja na libc, libm, GTK, SDL, Vulkan na OpenGL, hubadilishwa na chaguo asili kwenye majukwaa lengwa. Kwa njia hii, simu za maktaba hutekelezwa bila kuigwa, na hivyo kusababisha faida kubwa za utendakazi.

Uigaji wa msimbo ambao hakuna uingizwaji wa jukwaa lengwa unafanywa kwa kutumia mbinu ya urejeshaji wa nguvu (DynaRec) kutoka kwa seti moja ya maagizo ya mashine hadi nyingine. Ikilinganishwa na maagizo ya mashine ya kutafsiri, urejeshaji wa nguvu huonyesha utendaji wa juu mara 5-10.

Katika majaribio ya utendakazi, viigizaji vya Box86 na Box64, vilipotekelezwa kwenye jukwaa la Armhf na Aarch64, vilifanya vyema zaidi miradi ya QEMU na FEX-emu, na katika majaribio ya mtu binafsi (glmark2, openarena) walipata utendakazi sawa na kuendesha mkusanyiko uliolengwa. jukwaa. Katika majaribio ya kukokotoa ya 7-zip na dav1d, utendaji wa Box64 ulianzia 27% hadi 53% ya utendakazi wa programu asili (kwa kulinganisha, QEMU ilionyesha matokeo ya 5-16%, na FEX-emu - 13-26% ) Zaidi ya hayo, ulinganisho ulifanywa na emulator ya Rosetta 2, inayotumiwa na Apple kuendesha msimbo wa x86 kwenye mifumo yenye chipu ya M1 ARM. Rosetta 2 ilitoa jaribio la msingi wa 7zip na utendakazi wa 71% ya muundo wa asili, na Box64 - 57%.

Matoleo mapya ya viigizaji vya Box86 na Box64, vinavyokuruhusu kuendesha michezo ya x86 kwenye mifumo ya ARM

Kuhusu uoanifu na programu, kati ya michezo 165 iliyojaribiwa, takriban 70% ilifanya kazi kwa mafanikio. Kuhusu kazi nyingine 10%, lakini kwa kutoridhishwa na vikwazo fulani. Michezo inayotumika ni pamoja na WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious na michezo mingi ya GameMaker. Miongoni mwa michezo ambayo matatizo yamebainishwa, kutajwa kunafanywa kwa michezo kulingana na injini ya Unity3D, ambayo imefungwa kwenye kifurushi cha Mono, uigaji ambao haufanyi kazi kila wakati kwa sababu ya mkusanyiko wa JIT uliotumiwa huko Mono, na pia ina haki. mahitaji ya juu ya michoro ambayo hayapatikani kila wakati kwenye bodi za ARM. Ubadilishaji wa maktaba za maombi ya GTK kwa sasa umezuiwa kwa GTK2 (ubadilishaji wa GTK3/4 haujatekelezwa kikamilifu).

Mabadiliko kuu katika matoleo mapya:

  • Imeongeza ufungaji kwa maktaba ya Vulkan. Usaidizi ulioongezwa kwa API ya michoro ya Vulkan na DXVK (utekelezaji wa DXGI, Direct3D 9, 10 na 11 juu ya Vulkan).
  • Viungo vilivyoboreshwa vya maktaba za GTK. Vifungo vilivyoongezwa vya gstreamer na maktaba zinazotumiwa sana katika programu za GTK.
  • Usaidizi wa awali umeongezwa (hali ya ukalimani pekee kwa sasa) kwa usanifu wa RISC-V na PPC64LE.
  • Marekebisho yamefanywa ili kuboresha usaidizi kwa SteamPlay na safu ya Protoni. Hutoa uwezo wa kuendesha michezo mingi ya Linux na Windows kutoka kwa Steam kwenye bodi za AArch64 kama vile Raspberry Pi 3 na 4.
  • Udhibiti wa kumbukumbu ulioboreshwa, utendakazi wa mmap, na ufuatiliaji wa ukiukaji wa ulinzi wa kumbukumbu.
  • Usaidizi ulioboreshwa wa simu ya mfumo wa clone katika libc. Usaidizi umeongezwa kwa simu za mfumo mpya.
  • Injini inayobadilika ya urejeshaji imeboresha kazi na rejista za SSE/x87, imeongeza usaidizi kwa misimbo mpya ya mashine, ubadilishaji ulioboreshwa wa nambari za kuelea na mbili, uchakataji bora wa mabadiliko ya ndani, na kurahisisha uongezaji wa usaidizi wa usanifu mpya.
  • Kipakiaji faili cha ELF kimeboreshwa.

Chanzo: opennet.ru

Kuongeza maoni