Gipagawas sa Valve ang Proton 4.11, usa ka suite alang sa pagpadagan sa mga dula sa Windows sa Linux

Kompanya sa Valve gipatik bag-ong sanga sa proyekto Proton 4.11, base sa mga kalamboan sa proyekto sa Wine ug gitumong sa pagsiguro sa paglansad sa mga aplikasyon sa dula nga gihimo alang sa Windows ug gipresentar sa Steam catalog sa Linux. Mga kalamboan sa proyekto pagkaylap ubos sa lisensya sa BSD. Sa diha nga sila andam na, ang mga pagbag-o nga naugmad sa Proton gibalhin ngadto sa orihinal nga Wine ug may kalabutan nga mga proyekto, sama sa DXVK ug vkd3d.

Gitugotan ka sa Proton nga direkta nga magpadagan sa mga aplikasyon sa dula nga Windows lamang sa kliyente sa Steam Linux. Ang package naglakip sa pagpatuman sa DirectX 10/11 (base sa DXVK) ug 12 (base sa vkd3d), nga nagtrabaho pinaagi sa paghubad sa DirectX nga mga tawag sa Vulkan API, naghatag og mas maayo nga suporta alang sa game controllers ug ang abilidad sa paggamit sa full-screen mode bisan unsa pa ang mga resolusyon sa screen nga gisuportahan sa mga dula. Kung itandi sa orihinal nga Alak, ang pasundayag sa mga dula nga multi-threaded labi nga nadugangan salamat sa paggamit sa mga patch "esync"(Eventfd Synchronization) o "futex/fsync".

nag-unang mga pagbag-o sa Proton 4.11:

  • Ang pag-synchronize sa Wine 4.11 codebase gihimo, diin labaw pa sa 3300 nga mga pagbag-o ang gibalhin (ang miaging sanga gibase sa bino 4.2). Ang 154 ka mga patch gikan sa Proton 4.2 gibalhin sa ibabaw sa sapa ug karon gilakip sa nag-unang pakete sa Wine;
  • Gidugang nga suporta sa eksperimento para sa mga primitibo sa pag-synchronize base sa futex() system call, nga makapamenos sa load sa CPU kumpara sa esync. Dugang pa, ang bag-ong pagpatuman nagsulbad sa mga problema sa panginahanglan sa paggamit espesyal nga mga setting alang sa esync ug posible nga pagkahurot sa magamit nga mga deskriptor sa file.

    Ang esensya sa trabaho nga gihimo mao ang pagpalapad sa gamit sa standard nga futex() system call sa Linux kernel nga adunay mga kapabilidad nga gikinahanglan alang sa kamalaumon nga pag-synchronize sa thread pool. Ang mga patch nga adunay suporta alang sa FUTEX_WAIT_MULTIPLE nga bandila nga gikinahanglan alang sa Proton naa na gibalhin alang sa paglakip sa nag-unang Linux kernel ug glibc. Ang giandam nga mga pagbag-o wala pa gilakip sa panguna nga kernel, busa sa pagkakaron gikinahanglan kini sa pagtukod usa ka espesyal nga kernel nga adunay suporta alang niini nga mga primitibo;

    Gipagawas sa Valve ang Proton 4.11, usa ka suite alang sa pagpadagan sa mga dula sa Windows sa Linux

  • Interlayer DXVK (pagpatuman sa DXGI, Direct3D 10 ug Direct3D 11 sa ibabaw sa Vulkan API) gi-update sa bersyon 1.3ug D9VK (usa ka eksperimento nga pagpatuman sa Direct3D 9 sa ibabaw sa Vulkan) hangtod sa bersyon 0.13f. Aron mahimo ang suporta sa D9VK sa Proton, gamita ang bandila sa PROTON_USE_D9VK;
  • Ang kasamtangan nga rate sa pag-refresh sa monitor gipasa sa mga dula;
  • Gihimo ang mga pag-ayo aron madumala ang focus sa mouse ug pagdumala sa bintana;
  • Giayo ang input lag ug mga problema sa suporta sa vibration alang sa mga joystick nga mahitabo sa pipila ka mga dula, labi na sa mga dula nga gibase sa Unity engine;
  • Gidugang nga suporta alang sa pinakabag-o nga bersyon sa OpenVR SDK;
  • Ang mga sangkap sa FAudio nga adunay pagpatuman sa mga librarya sa tunog sa DirectX (API XAudio2, X3DAudio, XAPO ug XACT3) gi-update aron buhian ang 19.07;
  • Ang mga problema sa network subsystem sa mga dula sa GameMaker nasulbad;
  • Daghang mga module sa Wine ang gitukod karon isip mga file sa Windows PE imbes nga mga librarya sa Linux. Sa pag-uswag sa trabaho niining dapita, ang paggamit sa PE makatabang sa pipila ka DRM ug anti-cheat system. Kung mogamit ka ug naandan nga pagtukod sa Proton, lagmit kinahanglan nimo nga himuon pag-usab ang Vagrant virtual machine aron matukod ang mga file sa PE.

Sa wala pa ang mga patch sa Valve gisagop ngadto sa nag-unang Linux kernel, gamit ang futex() imbes nga esync nagkinahanglan og pag-instalar og espesyal nga kernel nga adunay suporta alang sa thread synchronization pool nga gipatuman sa usa ka set sa mga patch fsync. Para sa Arch Linux sa AUR na gipatik andam na nga kernel nga pakete nga gihugpong sa fsync patch. Sa Ubuntu 18.04 ug 19.04, mahimo nimong gamiton ang linux-mfutex-valve experimental kernel PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Kung ikaw adunay kernel nga adunay suporta sa fsync, kung imong gipadagan ang Proton 4.11, ang console magpakita sa mensahe nga "fsync: up and running". Mahimo nimong pugson ang fsync nga i-off gamit ang PROTON_NO_FSYNC=1 flag.

Source: opennet.ru

Idugang sa usa ka comment