CodeWeavers помага на DirectX 12 Windows игрите да работят на Linux

click fraud protection

CodeWeavers, разработчиците на CrossOver, работят върху подобрения на DirectX 12 в слоевете за съвместимост на CodeWeavers и Wine.

CodeWeavers CrossOver е един от най-популярните начини за стартиране на Windows приложения на други операционни системи. Той съчетава отличната работа на отворения код Проект за вино (за който разработчиците на CrossOver допринасят с код) с по-лесен за използване интерфейс и преден край. CodeWeavers пуснаха CrossOver 21 още през август, а сега компанията сподели подробности за работата си, за да предостави поддръжка на модерни игри за Linux и Mac.

Много скорошни игри за Windows (и други приложения с тежка графика) разчитат на DirectX 12, най-новата версия на Графичната библиотека DirectX на Microsoft, който използва API от по-ниско ниво за постигане на по-бърза производителност. DirectX е наличен само на Windows (и Xbox конзоли), така че слоят за съвместимост с Wine използва VKD3D графична библиотека за изпълнение на Direct3D повиквания върху Vulkan (което е налично на Linux, Windows и други платформи). Библиотеката Vkd3d е

основно разработен от Valve Software за неговото Слой за протонна съвместимост, а бързият напредък на VKD3D е основната причина, поради която толкова много Windows игри вече могат да се играят на Linux.

Въпреки че CrossOver вече включва VKD3D, CrossOver не поддържа официално DirectX 12 игри, докато разработчиците му откриват няколко проблема с производителността, според нов блог пост:

CrossOver използва VKD3D за стартиране на DirectX 12 игри. VKD3D е 3D графична библиотека, изградена върху Вулкан. В момента се работи много за подобряване на производителността на VKD3D. С помощта на Vulkan разширение за индексиране на дескриптор, което позволява функционалност, подобна на DirectX 12 дескрипторни купчини, Vulkan дескрипторите се пишат по-рядко и се използва много по-малко GPU памет. В резултат на това VKD3D може да поддържа игри, които използват достатъчно дескриптори, за да изискват ресурси от хардуер от ниво 2 и ниво 3.

CrossOver планира официално да започне да поддържа DirectX 12 игри и приложения на Linux през 2022 г., с бъдещото издание на CrossOver 22. Компанията обаче не е толкова сигурна кога VKD3D ще бъде функционален на Mac. Apple изобщо не поддържа Vulkan на macOS (или iOS), вместо това моли разработчиците да го използват Метална графична библиотека. Това е проблем за CrossOver, както се казва в публикацията в блога:

Като цяло Metal прави теселацията по различен начин и липсват геометрични шейдъри и обратна връзка за трансформиране. Специфично за DirectX 12 и Metal, има проблем с ограниченията на ресурсите. Като цяло игрите се нуждаят от достъп до поне един милион изгледа на ресурси за шейдъри (SRV). Достъпът до толкова много SRV изисква обвързване на ресурсите на ниво 2. Metal поддържа само около 500 000 ресурса на буфер за аргументи, така че обвързването на ресурси от ниво 2 не е възможно. Ограничението на Metal от половин милион е достатъчно за индексиране на Vulkan дескриптор, но не и за D3D12. Това ограничение означава, че CrossOver Mac не може да поддържа Tier 2 свързване и следователно много игри с DirectX 12 няма да работят.

Въпреки тези предизвикателства, CodeWeavers се надява, че DirectX 12 игрите и приложенията могат да бъдат функционални на Mac с бъдещата актуализация на CrossOver 23. Новите основни версии на CrossOver обикновено се появяват всяка година, така че това вероятно ще бъде през 2023 г.

Дори и да не използвате CrossOver, повечето от подобренията на съвместимостта, разработени от CodeWeavers, се изпращат обратно към проекта Wine. Това означава, че работата на компанията може да помогне за подобряване на Windows игрите на Lutris, the Steam Deck конзола, PlayOnLinux и други проекти, базирани на Wine. Като се има предвид това, след като пристигне пълна поддръжка на DirectX 12, CrossOver може да бъде убедителен избор за игра на Windows игри на Linux извън Steam.