Valve ṣe idasilẹ Proton 4.11, suite kan fun ṣiṣe awọn ere Windows lori Linux

Ile-iṣẹ Valve atejade titun eka ise agbese Proton 4.11, ti o da lori awọn idagbasoke ti iṣẹ akanṣe Waini ati ifọkansi lati ṣe idaniloju ifilọlẹ awọn ohun elo ere ti a ṣẹda fun Windows ati ti a gbekalẹ ninu iwe akọọlẹ Steam lori Linux. Ise agbese idagbasoke tànkálẹ labẹ BSD iwe-ašẹ. Ni kete ti wọn ti ṣetan, awọn ayipada ti o dagbasoke ni Proton ni a gbe lọ si Waini atilẹba ati awọn iṣẹ akanṣe, bii DXVK ati vkd3d.

Proton gba ọ laaye lati ṣiṣẹ taara awọn ohun elo ere Windows-nikan ni alabara Steam Linux. Apo naa pẹlu imuse ti DirectX 10/11 (da lori DXVK) ati 12 (da lori vkd3d), Ṣiṣẹ nipasẹ awọn ipe DirectX si Vulkan API, pese atilẹyin ilọsiwaju fun awọn oludari ere ati agbara lati lo ipo iboju ni kikun laibikita awọn ipinnu iboju ti o ni atilẹyin ninu awọn ere. Ti a ṣe afiwe si Waini atilẹba, iṣẹ ti awọn ere asapo pupọ ti pọ si ni pataki ọpẹ si lilo awọn abulẹ "esync"(Amuṣiṣẹpọ Eventfd) tabi "futex/fsync".

akọkọ awọn ayipada ninu Proton 4.11:

  • Amuṣiṣẹpọ pẹlu koodu koodu Wine 4.11, lati eyiti diẹ sii ju awọn ayipada 3300 ti gbe (ẹka ti tẹlẹ ti da lori ọti-waini 4.2). Awọn abulẹ 154 lati Proton 4.2 ti gbe soke ati pe o wa ni bayi ninu package Waini akọkọ;
  • Atilẹyin esiperimenta ti a ṣafikun fun awọn ipilẹṣẹ imuṣiṣẹpọ ti o da lori ipe eto futex (), eyiti o dinku fifuye Sipiyu ni akawe si esync. Ni afikun, imuse tuntun n yanju awọn iṣoro pẹlu iwulo lati lo pataki eto fun esync ati ailagbara ti o ṣeeṣe ti awọn apejuwe faili ti o wa.

    Koko-ọrọ ti iṣẹ ti n ṣe ni lati faagun iṣẹ ṣiṣe ti ipe eto futex boṣewa () ni ekuro Linux pẹlu awọn agbara pataki fun mimuuṣiṣẹpọ aipe ti adagun okun. Awọn abulẹ pẹlu atilẹyin fun FUTEX_WAIT_MULTIPLE asia pataki fun Proton ti wa tẹlẹ ti o ti gbe fun ifisi ni akọkọ Linux ekuro ati glibc. Awọn iyipada ti a pese silẹ ko tii wa ninu ekuro akọkọ, nitorinaa ni akoko o jẹ dandan fi sori ẹrọ ekuro pataki kan pẹlu atilẹyin fun awọn alakoko wọnyi;

    Valve ṣe idasilẹ Proton 4.11, suite kan fun ṣiṣe awọn ere Windows lori Linux

  • Interlayer DXVK (imuse ti DXGI, Direct3D 10 ati Direct3D 11 lori oke Vulkan API) imudojuiwọn si ẹya 1.3, ati D9VK (imuse esiperimenta ti Direct3D 9 lori oke Vulkan) titi di ẹya 0.13f. Lati mu atilẹyin D9VK ṣiṣẹ ni Proton, lo asia PROTON_USE_D9VK;
  • Oṣuwọn isọdọtun atẹle lọwọlọwọ jẹ gbigbe si awọn ere;
  • Awọn atunṣe ti ṣe lati mu idojukọ asin ati iṣakoso window;
  • Aisun titẹ sii ti o wa titi ati awọn iṣoro pẹlu atilẹyin gbigbọn fun awọn joysticks ti o waye ni diẹ ninu awọn ere, paapaa ni awọn ere ti o da lori ẹrọ isokan;
  • Ṣe afikun atilẹyin fun ẹya tuntun ti OpenVR SDK;
  • Awọn paati FAudio pẹlu imuse ti awọn ile-ikawe ohun DirectX (API XAudio2, X3DAudio, XAPO ati XACT3) ti ni imudojuiwọn lati tu silẹ 19.07;
  • Awọn iṣoro pẹlu awọn nẹtiwọki subsystem ni awọn ere lori GameMaker ti a ti yanju;
  • Ọpọlọpọ awọn modulu Waini ti wa ni itumọ bi awọn faili Windows PE dipo awọn ile-ikawe Linux. Bi iṣẹ ti nlọsiwaju ni agbegbe yii, lilo PE yoo ṣe iranlọwọ diẹ ninu awọn DRM ati awọn eto egboogi-cheat. Ti o ba lo aṣa Proton kọ, o ṣeese yoo nilo lati tun ẹrọ foju Vagrant lati kọ awọn faili PE.

Ṣaaju ki o to gba awọn abulẹ Valve sinu ekuro Linux akọkọ, ni lilo futex () dipo esync nilo fifi ekuro pataki kan pẹlu atilẹyin fun adagun amuṣiṣẹpọ okun ti a ṣe ni eto awọn abulẹ kan. fsync. Fun Arch Linux ni AUR tẹlẹ atejade package ekuro ti o ti ṣetan ṣe akojọpọ pẹlu awọn abulẹ fsync. Lori Ubuntu 18.04 ati 19.04, o le lo linux-mfutex-valve experimental kernel PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Ti o ba ni ekuro pẹlu atilẹyin fsync, nigbati o ba ṣiṣẹ Proton 4.11, console yoo ṣafihan ifiranṣẹ “fsync: oke ati ṣiṣiṣẹ”. O le fi ipa mu fsync lati paa nipa lilo asia PROTON_NO_FSYNC=1.

orisun: opennet.ru

Fi ọrọìwòye kun