Вентил компанија нова проектна гранка , врз основа на развојот на проектот Вино и со цел да се обезбеди лансирање во Linux апликации за игри создадени за Windows и презентирано во каталогот Steam. Развој на проекти под лиценца BSD. Штом се подготвени, промените развиени во Proton се пренесуваат на оригиналното Wine и сродните проекти, како што се DXVK и vkd3d.
Протон ви овозможува директно лансирање во Linux-Апликациите за игри на Steam клиентот се испорачуваат само за WindowsПакетот вклучува имплементација на DirectX 10/11 (засновано на ) и 12 (врз основа на ), работејќи преку превод на повици DirectX до Vulkan API, обезбедува подобрена поддршка за контролорите на игри и можност за користење на режимот на цел екран без оглед на резолуциите на екранот поддржани во игрите. Во споредба со оригиналното вино, перформансите на игрите со повеќе нишки се значително зголемени благодарение на употребата на закрпи "„(Синхронизација на настанот) или „футекс/фсинк“.
Главните :
- Извршена е синхронизација со базата на кодови Wine 4.11, од која се префрлени повеќе од 3300 промени (претходната гранка се базираше на вино 4.2). 154 лепенки од Proton 4.2 се преместени нагоре и сега се вклучени во главниот пакет Wine;
- Додадена е експериментална поддршка за примитиви за синхронизација базирани на системскиот повик futex(), што го намалува оптоварувањето на процесорот во споредба со esync. Дополнително, новата имплементација ги решава проблемите со потребата од користење за esync и можно исцрпување на достапните дескриптори на датотеки.
Суштината на работата што се извршува е да се прошири функционалноста на стандардниот системски повик futex() во јадрото. Linux можности потребни за оптимална синхронизација на базенот со нишки. Закрпи со потребната поддршка за знамето FUTEX_WAIT_MULTIPLE за Proton се веќе достапни. за вклучување во главниот состав на јадрото Linux и . Подготвените промени сè уште не се вклучени во главниот кернел, така што во моментот е неопходно специјално јадро со поддршка за овие примитиви;
- Меѓуслојна (имплементација на DXGI, Direct3D 10 и Direct3D 11 на врвот на Vulkan API) ажурирана во верзија И (експериментална имплементација на 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 датотеките.
Пред да бидат примени во главното јадро Linux Пачовите на Valve за користење на futex() наместо esync бараат инсталирање на специјално јадро со поддршка за базенот за синхронизација на нишки, што е имплементирано во сетот пачови. За Арх 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: up and running“ во конзолата. Можете да присилите fsync да се исклучи со користење на знамето PROTON_NO_FSYNC=1.
Извор: opennet.ru
