Valve пуска Proton 4.11, ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° стартиранС Π½Π° Windows ΠΈΠ³Ρ€ΠΈ Π½Π° Linux

Valve Company ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ Π½ΠΎΠ² ΠΊΠ»ΠΎΠ½ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠŸΡ€ΠΎΡ‚ΠΎΠ½ 4.11, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Wine ΠΈ насочСн към осигуряванС Π½Π° стартиранСто Π½Π° прилоТСния Π·Π° ΠΈΠ³Ρ€ΠΈ, създадСни Π·Π° Windows ΠΈ прСдставСни Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π½Π° Steam Π½Π° Linux. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ разпространСниС ΠΏΠΎΠ΄ BSD Π»ΠΈΡ†Π΅Π½Π·. ΠšΠΎΠ³Π°Ρ‚ΠΎ са Π³ΠΎΡ‚ΠΎΠ²ΠΈ, ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ Π² Proton, сС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΡ‚ Π² оригиналния Wine ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ с Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΠΊΠ°Ρ‚ΠΎ DXVK ΠΈ vkd3d.

Proton Π²ΠΈ позволява Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π΄Π° стартиратС прилоТСния Π·Π° ΠΈΠ³Ρ€ΠΈ само Π·Π° Windows Π² Steam Linux ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ΠŸΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π²Π° внСдряванС Π½Π° DirectX 10/11 (Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° DXVK) ΠΈ 12 (Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° vkd3d), Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Ρ‡Ρ€Π΅Π· ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° DirectX извиквания към API Π½Π° Vulkan, прСдоставя ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ Π·Π° ΠΈΠ³Ρ€ΠΈ ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ€Π΅ΠΆΠΈΠΌ Π½Π° цял Π΅ΠΊΡ€Π°Π½, нСзависимо ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π½Π°Ρ‚Π° способност Π½Π° Π΅ΠΊΡ€Π°Π½Π°, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π° Π² ΠΈΠ³Ρ€ΠΈΡ‚Π΅. Π’ сравнСниС с оригиналния Wine, производитСлността Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡˆΠΊΠΎΠ²ΠΈΡ‚Π΅ ΠΈΠ³Ρ€ΠΈ Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠ°Ρ‡ΠΎΠ²Π΅ "esync"(Бинхронизация Π½Π° Eventfd) ΠΈΠ»ΠΈ "futex/fsync".

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Proton 4.11:

  • Π‘Π΅ΡˆΠ΅ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½Π° синхронизация с ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π° Wine 4.11, ΠΎΡ‚ която бяха ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 3300 ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ (ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡΡ‚ ΠΊΠ»ΠΎΠ½ бСшС Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° wine 4.2). 154 ΠΏΠ°Ρ‡Π° ΠΎΡ‚ Proton 4.2 бяха прСмСстСни Π½Π°Π³ΠΎΡ€Π΅ ΠΈ Π²Π΅Ρ‡Π΅ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² основния ΠΏΠ°ΠΊΠ΅Ρ‚ Wine;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ СкспСримСнтална ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΈ Π·Π° синхронизация въз основа Π½Π° систСмното ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ futex(), ΠΊΠΎΠ΅Ρ‚ΠΎ намалява Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСсора Π² сравнСниС с esync. Π’ допълнСниС, Π½ΠΎΠ²Π°Ρ‚Π° рСализация Ρ€Π΅ΡˆΠ°Π²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с нСобходимостта ΠΎΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ спСциални настройки Π·Π° esync ΠΈ възмоТно ΠΈΠ·Ρ‡Π΅Ρ€ΠΏΠ²Π°Π½Π΅ Π½Π° Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ дСскриптори.

    Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° Π΅ Π΄Π° сС Ρ€Π°Π·ΡˆΠΈΡ€ΠΈ функционалността Π½Π° стандартното систСмно ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ futex() Π² ядрото Π½Π° Linux с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½Π° синхронизация Π½Π° ΠΏΡƒΠ»Π° ΠΎΡ‚ нишки. Π’Π΅Ρ‡Π΅ ΠΈΠΌΠ° ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ„Π»Π°Π³Π° FUTEX_WAIT_MULTIPLE, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° Proton ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ Π·Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π² основното ядро ​​на Linux ΠΈ glibc. ΠŸΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ всС ΠΎΡ‰Π΅ Π½Π΅ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² основното ядро, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ установят спСциално ядро ​​с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΈ;

    Valve пуска Proton 4.11, ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° стартиранС Π½Π° Windows ΠΈΠ³Ρ€ΠΈ Π½Π° Linux

  • МСТдинСн слой DXVK (ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° DXGI, Direct3D 10 ΠΈ Direct3D 11 Π²ΡŠΡ€Ρ…Ρƒ Vulkan API) Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΄ΠΎ вСрсия 1.3И D9vk. (СкспСримСнтална рСализация Π½Π° Direct3D 9 Π²ΡŠΡ€Ρ…Ρƒ Vulkan) Π΄ΠΎ вСрсия 0.13f. Π—Π° Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° D9VK Π² Proton, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Ρ„Π»Π°Π³Π° PROTON_USE_D9VK;
  • Π’Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° чСстота Π½Π° опрСсняванС Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° сС ΠΏΡ€Π΅Π΄Π°Π²Π° Π½Π° ΠΈΠ³Ρ€ΠΈΡ‚Π΅;
  • НаправСни са ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° фокуса Π½Π° ΠΌΠΈΡˆΠΊΠ°Ρ‚Π° ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ;
  • ΠšΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ΠΎ забавянС Π½Π° Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Π²ΠΈΠ±Ρ€Π°Ρ†ΠΈΠΈ Π·Π° дТойстици, ΠΊΠΎΠΈΡ‚ΠΎ сС появяват Π² някои ΠΈΠ³Ρ€ΠΈ, особСно Π² ΠΈΠ³Ρ€ΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° двигатСля Π½Π° Unity;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π½Π°ΠΉ-Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° OpenVR SDK;
  • ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° FAudio с внСдряванС Π½Π° Π·Π²ΡƒΠΊΠΎΠ²ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° DirectX (API XAudio2, X3DAudio, XAPO ΠΈ XACT3) са Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π΄ΠΎ вСрсия 19.07;
  • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° подсистСма Π² ΠΈΠ³Ρ€ΠΈΡ‚Π΅ Π½Π° GameMaker са Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ;
  • Много Wine ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π²Π΅Ρ‡Π΅ са ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Windows PE Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ вмСсто Linux Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π‘ Π½Π°ΠΏΡ€Π΅Π΄Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π² Ρ‚Π°Π·ΠΈ област ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° PE Ρ‰Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° някои DRM ΠΈ систСми ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΈΠ·ΠΌΠ°ΠΌΠ°. Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ пСрсонализирани ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ Π½Π° Proton, Π½Π°ΠΉ-вСроятно Ρ‰Π΅ трябва Π΄Π° ΠΏΡ€Π΅ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° машина Vagrant, Π·Π° Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‚Π΅ PE Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅.

ΠŸΡ€Π΅Π΄ΠΈ ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° Valve Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΠ΅Ρ‚ΠΈ Π² основното ядро ​​на Linux, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° futex() вмСсто esync изисква инсталиранС Π½Π° спСциално ядро ​​с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΡƒΠ»Π° Π·Π° синхронизиранС Π½Π° нишки, Π²Π½Π΅Π΄Ρ€Π΅Π½ Π² Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ fsync. Π—Π° Arch Linux Π²Π΅Ρ‡Π΅ Π² AUR ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ Π³ΠΎΡ‚ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π° ядрото, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ с ΠΏΠ°Ρ‡ΠΎΠ²Π΅ Π·Π° fsync. Π’ Ubuntu 18.04 ΠΈ 19.04 ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ PPA Π½Π° СкспСримСнталното ядро ​​на linux-mfutex-valve (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Ако ΠΈΠΌΠ°Ρ‚Π΅ ядро ​​с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° fsync, ΠΊΠΎΠ³Π°Ρ‚ΠΎ стартиратС Proton 4.11, ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° Ρ‰Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žfsync: Π³ΠΎΡ‚ΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈβ€œ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅ fsync Π΄Π° бъдС ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ„Π»Π°Π³Π° PROTON_NO_FSYNC=1.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€