ലിനക്സിൽ വിൻഡോസ് ഗെയിമുകൾ പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള സ്യൂട്ടായ പ്രോട്ടോൺ 4.11 വാൽവ് പുറത്തിറക്കുന്നു

വാൽവ് കമ്പനി പ്രസിദ്ധീകരിച്ചു പുതിയ പദ്ധതി ശാഖ പ്രോട്ടോൺ 4.11, വൈൻ പ്രോജക്റ്റിന്റെ സംഭവവികാസങ്ങളെ അടിസ്ഥാനമാക്കി, വിൻഡോസിനായി സൃഷ്ടിച്ചതും ലിനക്സിലെ സ്റ്റീം കാറ്റലോഗിൽ അവതരിപ്പിച്ചതുമായ ഗെയിമിംഗ് ആപ്ലിക്കേഷനുകളുടെ ലോഞ്ച് ഉറപ്പാക്കാൻ ലക്ഷ്യമിടുന്നു. പ്രോജക്റ്റ് വികസനങ്ങൾ വ്യാപനം BSD ലൈസൻസിന് കീഴിൽ. അവർ തയ്യാറായതിനാൽ, പ്രോട്ടോണിൽ വികസിപ്പിച്ച മാറ്റങ്ങൾ യഥാർത്ഥ വൈനിലേക്കും DXVK, vkd3d പോലുള്ള അനുബന്ധ പ്രോജക്റ്റുകളിലേക്കും മാറ്റുന്നു.

സ്റ്റീം ലിനക്സ് ക്ലയന്റിൽ വിൻഡോസ് മാത്രമുള്ള ഗെയിമിംഗ് ആപ്ലിക്കേഷനുകൾ നേരിട്ട് പ്രവർത്തിപ്പിക്കാൻ പ്രോട്ടോൺ നിങ്ങളെ അനുവദിക്കുന്നു. പാക്കേജിൽ DirectX 10/11 നടപ്പിലാക്കൽ ഉൾപ്പെടുന്നു (അടിസ്ഥാനമാക്കി DXVK) കൂടാതെ 12 (അടിസ്ഥാനമാക്കി vkd3d), വൾക്കൻ API-ലേക്കുള്ള DirectX കോളുകളിലൂടെ പ്രവർത്തിക്കുന്നത്, ഗെയിം കൺട്രോളറുകൾക്ക് മെച്ചപ്പെട്ട പിന്തുണയും ഗെയിമുകളിൽ പിന്തുണയ്ക്കുന്ന സ്‌ക്രീൻ റെസല്യൂഷനുകൾ പരിഗണിക്കാതെ തന്നെ പൂർണ്ണ സ്‌ക്രീൻ മോഡ് ഉപയോഗിക്കാനുള്ള കഴിവും നൽകുന്നു. യഥാർത്ഥ വൈനുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ, പാച്ചുകളുടെ ഉപയോഗത്തിന് നന്ദി, മൾട്ടി-ത്രെഡ് ഗെയിമുകളുടെ പ്രകടനം ഗണ്യമായി വർദ്ധിപ്പിച്ചു.സമന്വയം"(Eventfd സിൻക്രൊണൈസേഷൻ) അല്ലെങ്കിൽ "futex/fsync".

പ്രധാന പ്രോട്ടോണിലെ മാറ്റങ്ങൾ 4.11:

  • വൈൻ 4.11 കോഡ്ബേസുമായുള്ള സമന്വയം നടത്തി, അതിൽ നിന്ന് 3300-ലധികം മാറ്റങ്ങൾ കൈമാറ്റം ചെയ്യപ്പെട്ടു (മുമ്പത്തെ ബ്രാഞ്ച് വൈൻ 4.2 അടിസ്ഥാനമാക്കിയുള്ളതായിരുന്നു). പ്രോട്ടോൺ 154-ൽ നിന്നുള്ള 4.2 പാച്ചുകൾ മുകളിലേക്ക് നീക്കി, അവ ഇപ്പോൾ പ്രധാന വൈൻ പാക്കേജിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്;
  • esync-നെ അപേക്ഷിച്ച് CPU ലോഡ് കുറയ്ക്കുന്ന futex() സിസ്റ്റം കോളിനെ അടിസ്ഥാനമാക്കിയുള്ള സിൻക്രൊണൈസേഷൻ പ്രിമിറ്റീവുകൾക്ക് പരീക്ഷണാത്മക പിന്തുണ ചേർത്തു. കൂടാതെ, പുതിയ നടപ്പാക്കൽ ഉപയോഗിക്കേണ്ടതിന്റെ ആവശ്യകതയുമായി ബന്ധപ്പെട്ട പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നു പ്രത്യേക ക്രമീകരണങ്ങൾ esync-നും ലഭ്യമായ ഫയൽ ഡിസ്ക്രിപ്റ്ററുകളുടെ സാധ്യമായ ക്ഷീണത്തിനും.

    ത്രെഡ് പൂളിന്റെ ഒപ്റ്റിമൽ സിൻക്രൊണൈസേഷന് ആവശ്യമായ കഴിവുകളോടെ ലിനക്സ് കേർണലിലെ സ്റ്റാൻഡേർഡ് ഫ്യൂടെക്സ് () സിസ്റ്റം കോളിന്റെ പ്രവർത്തനക്ഷമത വിപുലീകരിക്കുക എന്നതാണ് ചെയ്യുന്ന ജോലിയുടെ സാരം. പ്രോട്ടോണിന് ആവശ്യമായ FUTEX_WAIT_MULTIPLE ഫ്ലാഗിനുള്ള പിന്തുണയുള്ള പാച്ചുകൾ ഇതിനകം തന്നെയുണ്ട് കൈമാറ്റം ചെയ്തു പ്രധാന ലിനക്സ് കേർണലിൽ ഉൾപ്പെടുത്തുന്നതിന് ഒപ്പം glibc. തയ്യാറാക്കിയ മാറ്റങ്ങൾ പ്രധാന കേർണലിൽ ഇതുവരെ ഉൾപ്പെടുത്തിയിട്ടില്ല, അതിനാൽ ഇപ്പോൾ അത് ആവശ്യമാണ് സ്ഥാപിക്കുക ഈ പ്രാകൃതങ്ങൾക്കുള്ള പിന്തുണയുള്ള ഒരു പ്രത്യേക കേർണൽ;

    ലിനക്സിൽ വിൻഡോസ് ഗെയിമുകൾ പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള സ്യൂട്ടായ പ്രോട്ടോൺ 4.11 വാൽവ് പുറത്തിറക്കുന്നു

  • ഇന്റർലേയർ DXVK (Vulkan API-യുടെ മുകളിൽ DXGI, Direct3D 10, Direct3D 11 എന്നിവയുടെ നടപ്പാക്കൽ) പതിപ്പിലേക്ക് അപ്ഡേറ്റ് ചെയ്തു 1.3ഒപ്പം D9VK (Vulkan-ന് മുകളിൽ Direct3D 9-ന്റെ പരീക്ഷണാത്മക നിർവ്വഹണം) പതിപ്പ് 0.13f വരെ. പ്രോട്ടോണിൽ D9VK പിന്തുണ പ്രവർത്തനക്ഷമമാക്കാൻ, PROTON_USE_D9VK ഫ്ലാഗ് ഉപയോഗിക്കുക;
  • നിലവിലെ മോണിറ്റർ പുതുക്കൽ നിരക്ക് ഗെയിമുകളിലേക്ക് കൈമാറുന്നു;
  • മൗസ് ഫോക്കസും വിൻഡോ മാനേജ്മെന്റും കൈകാര്യം ചെയ്യുന്നതിനുള്ള പരിഹാരങ്ങൾ വരുത്തിയിട്ടുണ്ട്;
  • നിശ്ചിത ഇൻപുട്ട് കാലതാമസവും ചില ഗെയിമുകളിൽ, പ്രത്യേകിച്ച് യൂണിറ്റി എഞ്ചിൻ അടിസ്ഥാനമാക്കിയുള്ള ഗെയിമുകളിൽ സംഭവിക്കുന്ന ജോയ്സ്റ്റിക്കുകൾക്കുള്ള വൈബ്രേഷൻ പിന്തുണയുമായി ബന്ധപ്പെട്ട പ്രശ്നങ്ങളും;
  • OpenVR SDK-യുടെ ഏറ്റവും പുതിയ പതിപ്പിനുള്ള പിന്തുണ ചേർത്തു;
  • DirectX സൗണ്ട് ലൈബ്രറികൾ (API XAudio2, X3DAudio, XAPO, XACT3) നടപ്പിലാക്കുന്ന FAudio ഘടകങ്ങൾ 19.07 റിലീസ് ചെയ്യുന്നതിനായി അപ്ഡേറ്റ് ചെയ്തു;
  • ഗെയിം മേക്കറിലെ ഗെയിമുകളിലെ നെറ്റ്‌വർക്ക് സബ്സിസ്റ്റത്തിലെ പ്രശ്നങ്ങൾ പരിഹരിച്ചു;
  • പല വൈൻ മൊഡ്യൂളുകളും ഇപ്പോൾ Linux ലൈബ്രറികൾക്ക് പകരം Windows PE ഫയലുകളായി നിർമ്മിച്ചിരിക്കുന്നു. ഈ മേഖലയിൽ ജോലി പുരോഗമിക്കുമ്പോൾ, PE യുടെ ഉപയോഗം ചില DRM, ആന്റി-ചീറ്റ് സിസ്റ്റങ്ങളെ സഹായിക്കും. നിങ്ങൾ ഇഷ്‌ടാനുസൃത പ്രോട്ടോൺ ബിൽഡുകൾ ഉപയോഗിക്കുകയാണെങ്കിൽ, PE ഫയലുകൾ നിർമ്മിക്കുന്നതിന് നിങ്ങൾ മിക്കവാറും വാഗ്രന്റ് വെർച്വൽ മെഷീൻ പുനഃസൃഷ്ടിക്കേണ്ടി വരും.

വാൽവിന്റെ പാച്ചുകൾ പ്രധാന ലിനക്സ് കേർണലിലേക്ക് സ്വീകരിക്കുന്നതിന് മുമ്പ്, esync-ന് പകരം futex() ഉപയോഗിക്കുന്നതിന്, ഒരു കൂട്ടം പാച്ചുകളിൽ നടപ്പിലാക്കിയിരിക്കുന്ന ത്രെഡ് സിൻക്രൊണൈസേഷൻ പൂളിനുള്ള പിന്തുണയോടെ ഒരു പ്രത്യേക കേർണൽ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്. fsync. AUR-ൽ ഇതിനകം തന്നെ Arch Linux-നായി പ്രസിദ്ധീകരിച്ചു fsync പാച്ചുകൾ ഉപയോഗിച്ച് സമാഹരിച്ച റെഡിമെയ്ഡ് കേർണൽ പാക്കേജ്. ഉബുണ്ടു 18.04, 19.04 എന്നിവയിൽ, നിങ്ങൾക്ക് linux-mfutex-valve പരീക്ഷണാത്മക കേർണൽ PPA ഉപയോഗിക്കാം (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

നിങ്ങൾക്ക് fsync പിന്തുണയുള്ള ഒരു കേർണൽ ഉണ്ടെങ്കിൽ, നിങ്ങൾ പ്രോട്ടോൺ 4.11 പ്രവർത്തിപ്പിക്കുമ്പോൾ, കൺസോൾ "fsync: up and running" എന്ന സന്ദേശം പ്രദർശിപ്പിക്കും. PROTON_NO_FSYNC=1 ഫ്ലാഗ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് fsync ഓഫ് ചെയ്യാൻ നിർബന്ധിക്കാവുന്നതാണ്.

അവലംബം: opennet.ru

ഒരു അഭിപ്രായം ചേർക്കുക