D9VK за игра на DirectX9 игри под Linux. Версия 0.20 е тук (обновена)

1
1948
D9VK Linux Wine игри

D9VK е много интересен проект, който използва DXVK като основа и предоставя възможност за играене на DirectX 9 Windows игри при Linux с използването на преминаване от DirectX 9 към Vulkan.

DXVK от своя страна позволява играене на DirectX 11 игри при Linux посредством преминаване към Vulkan и Wine. Проектът постигна невероятни резултати и впоследствие започна да се използва и от Valve в Steam при техния проект Proton/Steam Play.

Test Drive Unlimited D9VK Wine Vulkan
Играта Test Drive Unlimited с D9VK и Wine при Linux

Новият проект дава много по-високо представяне в игрите от имплементираното към момента решение за преминаване от DirectX 9 към OpenGL в Wine.

Тук ще ви запознаваме с новините около проекта D9VK и новостите, които разработчиците постоянно предлагат на нашето внимание във версия 4.x.

Излезе първата официална версия на D9VK 0.10 за игра на DirectX 9 игри с Vulkan при Linux

Излезе първото официално издание на D9VK за игра на DirectX 9 игри посредством Vulkan и Wine при Linux на разработчика Джошуа Аштън.

Въпреки своята начална фаза версия 0.10 вече позволява безпроблемно играене на голям брой DirectX 9 игри и това е благодарение на вече доста напредналия стадий на разработка на DXVK.

Поддържат се множество заглавия, използващи Shader Model 2 и Shader Model 3, а работата по поддръжката на Shader Model 1 продължава и ще бъде налична в близко бъдеще.

За да можете да играете игри с новата имплементация ще ви е необходим Wine с версия 3.10 или по-висока. Също както при DXVK е наличен HUD, който показва базова информация като кадри, модел видео карта и пр. Новият проект следва архитектурата на DXVK, както и неговите променливи за по-лесен дебъг.

Аштън предупреждава потребителите да не използват D9VK с библиотеките на Wine d3d9x или d3dcompiler, защото това води до невалидни API измиквания, което се изразява в лоши шейдъри в игрите.

Както вече споменахме, дори и в този ранен стадий използването на новата имплементация предлага много по-високо бързодействие от досега съществуващото преминаване от DirectX 9 към OpenGL в Wine.

Представянето дори е по-високо от известния със своето високо бързодействие Gallium Nine, при който често се наблюдаваше по-високо бързодействие от това в Windows.

Към момента увеличението в скоростта с използването на D9VK при DirectX 9 игри е двойно, като процесорът се използва с 50% по-малко.

Вече има направена заявка в GitHub за добавянето на D9VK в winetricks и нищо чудно след наличността на първото официално издание това да се случи скоро. По този начин потребителите ще могат по един изключително лесен начин да инсталират необходимите библиотеки с няколко клика на мишката.

Официалният анонс може да бъде видян тук.

Излезе D9VK 0.11 с подобрения при бързодействието и D3D9 поправки. Кодовото наименование е Poison Dart. (12.05.2019)

Само няколко дни след първото официално официално издание ето, че тук е и версия 0.11.

Поправени проблеми:

Сред поправените проблеми при D3D9 виждаме имплементирано проследяване на паметта и коректно OOM съобщаване за грешки към приложенията, поправени са невидими обекти при някои игри, поради повреден vertex texturing.

При DXSO шейдърите са поправени некоректни индекси, а конкретно при играта Hat In Time са поправени проблеми със сенките. Отстранени са проблемите с проектилните текстури (texldp, texProj в HLSL), коригирана е SinCos имплементацията, което поправя неправилните цветове и текстури при някои игри.

Коригиран е Pointsize, добавена е по-добра поддръжка за Shader Model 1 шейдърите, имплементиран е SM1 float „bitshifting“, поправени са проблеми при регистриране на адресите поради правописна грешка.

Подобрения при бързодействието:

Пренаписан е буфер кодът, който ще е по-бърз във всяко едно отношение, поправени са и някои грешки при паметта, налични са малки промени при запитванията, добавена е поддръжка за cube render target/depth шаблони, което поправя примигващата вода при играта TESV: Skyrim.

Отлагат се обвързванията (bindings) на кадровите буфери докато не се предприеме изрисуване, което предотвратява ненужни повторни обвързвания, които насищат CS нишката, когато настъпят промени при единчни RT/DS.

Имплементирани са частични почиствания, които viewport/stencil и fastpath, ако цялата цел за рендиране е изчистена. Това поправя проблем със сенките отново при играта A Hat in Time.

Има подобрения и при изчистванията (flushes), като вече не се извършват неправилни изчиствания върху някои копия, извършва се агресивно изчистване, когато rt от нулевия индекс търпи промени, копира се начинът, по който се извършват изчистванията при D3D11, което води подобрения при някои случаи, в които се използва синхронизация.

Пълния списък с промените при D9VK можете да видите в официалния анонс.

Излезе D9VK 0.12 с повишение на бързодействието, множество поправки и нови функции (29.05.2019)

Разработчикът Джошуа Ащън предостави на потребителите следващото издание на D9VK, което идва с множество подобрения и поправки на грешки при различни игри. Правят впечатление и новите функции, които ще представим по-долу.

Нови функции:

Имплементирана е функцията Alpha to Coverage, която поддържа поправките за AMD и NVIDIA, поправя проблема с косите на персонажите при играта Final Fantasy XIII, поддържа, а също така може да доведе до визуални подобрения и при други игри.

Има оптимизации при запитванията, като също така е имплементирана функцията D3DQUERYTYPE_VERTEXSTATS, имплементирана е функция за настройване на позицията на курсора, добавена е частична поддръжка за Presentation Rects, което поправя проблема при играта A Hat In Time, при който тя не пресъздава своя бекбуфер при намаляване на резолюцията.

Имплементиран е Resolve Z хак за AMD, добавена е поддръжка за CreateTexture InitialData в споделеното управление за D3DPOOL_SYSTEMMEM, което поправя играта CS:GO (тук трябва да се отбележи, че тази игра си има нейтив Linux издание).

Добавена е експериментална поддръжка за GetDC/ReleaseDC, добавена е основна поддръжка за D3D9Ex, налична е имплементация за GetStreamSourceFreq, в библиотеките вече се съобщава коректна информация за версията, което би трябвало да премахне проблемите с някои анти чийт приложения.

Прочетете още:  NVIDIA 415.22.05 Beta драйвърът е тук с интересни промени и поддръжка за нови Vulkan спецификации

Допълнително при желание на потребителя вече може да се избира кои модули да се компилират.

Подобрено представяне:

Изцяло е пренаписан кодът за текстурите, което води до подобряване на бързината във всяко едно отношение и поправя някои грешки при паметта. SystemMem вече са само за системната памет и нямат изображение, копирайки се към реалните текстури.

Пренаписан и подобрен е кодът за presentation и swapchain, което включва поддръжка за настройване на вертикална синхронизация и задаване на правилен режим за пълен екран.

Имплементирано е разпределяне на съседни повърхности, което води до подобряване на проблема със стътъринга при игри, които използват и злоупотребяват с CreateTexture като например A Hat in Time и League of Legends.

Подобрен е изгледът на изображенията чрез избягване на създаване на дубликати като се правят двойни референции към вече съществуващите изображения, ако за конкретния D3D9 формат не съществуват SRGB формати. Подобрено е и решението за определяне кога ще се изчаква за текстури.

Поправки при версия 0.12:

Поправен е проблемът „punch card“ при играта The Sims 3, налични са малки поправки при запитванията, решени са проблеми с дълбочинните шаблони, които се използват при някои игри като Gothic III, отстранени са бъгове с курсора на мишката при някои игри, една от които е Guild Wars 2, остранено е зависване на видео картите на AMD при използването на RADV драйвъра, решен е проблем, при който RestoreDisplayMode не успява да си свърши работата и още.

Пълния списък с всички промени при версия 0.12 можете да разгледате в официалния анонс.

Излезе D9VK 0.13 с множество подобрения и повишено бързодействие (09.07.19)

Разработчикът Джошуа Ащън публикува поредната версия 0.13, която идва с множество поправки и повишаване на производителността. Кодовото наименование на новото издание е Hypnotoad.

Във версия 0.13 е добавена поддръжка за fixed function. Това включва всичко, освен осветяването, texcoord трансформациите, spheremap texcoords и constant texture аргувента.

Имплементирани са GetGammaRamp и ColorFill, подобрен е фолбекът за D16_S8, като ако той не е поддържан се използва D24_S8 вместо D32, добавени са поправки за AMD видео картите, имплементирана е поддръжка за disjointed timestamp querie, добавени са функции, които ще помогнат на някои игри с анти чийт, добавена е поддръжка за хардуерен курсор за игри като например старите World of Warcraft и Guild Wars 2.

На фронта на повишеното представяне е свършено голямо количество работа:

Имплементирана е поддръжка за async. presentation, избягват се някои ненужни синхронизации, използват се нови DXVK сигнали за синхронизиране на кадрите, разрешен е early discard за ACO компилатора на Valve, осигурен е постоянен ъплоуд на оптимизации и др.

Сред поправените проблеми виждаме:

Отстраняване на сриване при играта Star Wars: The Force Unleashed, разрешено е неправилното изобразяване на човека при Mass Effect: 2, поправени са проблеми при Assassin’s Creed, GTA: San Andreas, TESIV: Oblivion, черното рендиране при Lego Star Wars Saga и проблеми при игрите от Fallout сериите.

Поправена е LIT имплементацията, поправени са проблеми за игри, които се връщат да четат собствените си шейдъри, вече се използва BC2 за DXT2 вместо BC1, което беше неправилно, поправен е бъг в GDI кода, където нещата не се актуализират, след като са настъпили промени и още.

Пълния списък с промените можете да разгледате в официалния анонс.

Излезе D9Vk 0.13f с допълнителни функции и поправкина бъгове (15.07.19)

Новата версия 0.13f с кодово наименование „Hypnofrog“ излиза доста по-рано от обикновено, само шест дни след миналото издание и е нещо, което не се е случвало до момента. Въпреки краткия срок обаче новата версия предлага много новости. Ето някои от тях.

Спрени са много stubs, които нямат значение, имплементиран е D3DOK_NOAUTOGEN кодът за CreateTexture функциите, налична е правилна имплементация на запитванията за поддръжка на формати със съответните използвания, преработен е adapter кодът, подобрено е AllocUpBuffer поведението за намаляване на фрагментацията на паметта.

Налична е първоначална border color поддръжка, която решава проблемите със сенките при някои игри, имплементиран е DemoteToHelperInvocation за NVIDIA и Intel, имплементирани са TexReg{Ar,Gb,Rgb}, TexDp3Tex, Crs, sign и bias modifiers, а също така и D3DTSS_TEXCOORDINDEX, налични са подобрения при DXSO и D3D9

Пълния списък с промените можете да разгледате тук.

Излезе D9VK 0.20 с множество нови функции, подобрения и поправки (26.08.19)

Разработчикът Джошуа Ащън обяви новото издание 0.20, чието кодово наименование е Frog Cookie 🐸🍪.

Поправки на проблеми

  • Игнориране на DISCARD флага, когато е определен „NOOVERWRITE/not a dynamic resource“.
  • Подобрено е nested locking поведението, както и са налични други locking поправки.
  • Вече се игнорират частичните discards за текстурите.
  • Поправено е systemmem texture wait поведението.
  • Поправена е ResolveZ имплементацията.
  • Поправен е бъг, при който е бил настройван неправилен vertex/pixel шейдър флаг в SetTextureStageState.
  • Поправено е поведението на смесване при fixed function pipeline.
  • Поправена е съвместимостта на приложението при CheckDeviceFormatConversion.
  • Поправено е поведението за проследяване на паметта.

Подобрено представяне

  • Оптимизирани са UndirtySamplers.
  • Вече не се изчаква за D3DLOCK_READONLY при буферите.
  • Вече не се използва DEVICE_LOCAL паметта за константните шейдър буфери.
  • Различни поправки по бързодействието.

Общи

  • Имплементирана d3d9.samplerAnisotropy опцията.
  • Имплементиран е ProcessVertices (Software Vertex Processing), който използва геометричен шейдър, осъществявайки буферно писане без върхове.
  • Имплементирана е 3d9.maxAvailableMemory опцията.
  • Имплементирана е d3d9.floatEmulation опцията.
  • Имплементирана е async. present
  • Имплементиран е undocumented managed pool за D3D9Ex.
  • Разрешено е lenient clear за някои Unreal Engine 3 игри.
  • Коректно е имплементиран D3DMULTISAMPLE_NONMASKABLE.
  • Добавен е cache monitor info.
  • Добавен е GetRasterStatus (за играта Undertale).
  • Имплементирани са presentation regions.
  • Имплементирани са TexBem, TexM3x2Tex и TexM3x3Tex.

Нова поддръжка за Fixed Function

  • Имплементирана е fixed function lighting.
  • Имплементирана е fixed function frog fog.
  • И още – texcoord offset, tci_cameraspaceposition, specular magic и др.

Налични са още много подобрения и поправки, за които разработчикът не съобщава, но според него са твърде малки, за да бъдат споменати.

Пълния анонс можете да видите тук.

5/5 (1 Review)

1 коментар

  1. Вече нямам търпение да се прибера, за да пробвам новата версия и да видим дали е оправил бъга с текстурите на CRC 2005. Някои от споменатите неща ме навеждат на мисълта, че може и да е. И ако е така, остава да измисля как да подкарам шрифтовете на Project Torque. Това последното стане ли, ще я има за Вино, а по-нататък ще я има и портната за Линукс.

ОСТАВЕТЕ КОМЕНТАР

Моля, въведете коментар!
Моля, въведете името си тук