Објавување на D9VK 0.40, Direct3D 9 имплементација на врвот на Vulkan

се одржа објавување на проектот D9VK 0.40, кој обезбедува имплементација на Direct3D 9 која работи со преведување повици до графичкиот API Вулкан. Проектот се заснова на базата на кодови на проектот DXVK, кој е проширен за поддршка на Direct3D 9. Во споредба со имплементацијата на Direct3D 9 базирана на WineD3D, D9VK постигнува подобри перформанси бидејќи преводот на Direct3D 9 преку OpenGL е побавен од преводот преку Vulkan.

D9VK може да се користи за извршување на 3D апликации и игри на Linux со помош на Wine. Поддржани се повеќето игри базирани на Direct3D 9 кои користат верзии 2 или 3 на Shader Model. Код на проектот дистрибуирани од под бесплатната лиценца Злиб. D9VK бара драјвери што го поддржуваат Vulkan API, како што се AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+ и AMDVLK.

Главни подобрувања:

  • Способноста да се користи повеќе од 4 GB видео меморија во 32-битни апликации е имплементирана, што ги реши проблемите при стартување на модови за игрите Skyrim и Oblivion;
  • Овозможена е асинхрона обработка на прикажување на резултатот од рендерирање на екранот (фаза на презентација). За да се намали доцнењето на главната нишка за рендерирање, се врши обработка на излезот во нишката за поднесување команди;
  • Отстранети непотребните точки за синхронизација на протокот на команди при преземање на бараните податоци;
  • Кодот за одредување на внатрешното време е преведен да користи тајмер специфичен за платформата, кој помогна да се решат проблемите со неправилното однесување на часовникот со висока резолуција од MinGW;
  • Растоварувањето на одложените бафери MANAGED и SYSTEMMEM е обезбедено на сцената пред извршувањето на PrepareDraw, со што се решија проблемите со изведбата во игрите Risen и Legend of the Heroes: Trails of the Sky;
  • Додадена е поддршка D3DTA_CONSTANT, што овозможи да се спроведе правилно рендерирање ефект на сјај во игрите SpinTyres и Mudrunner;
  • Подобрена компатибилност со DirectX 9 Ex (D3D9Ex). Спецификите на обработката на ResetEx и Reset се земени предвид;
  • Исчистен и рефакториран код;
  • Обезбедено е директно мапирање на WRITEONLY баферите, што може позитивно да влијае на перформансите и да ја заобиколи грешката во играта
    Контра-штрајк: Глобална офанзива, што резултира со континуирано пишување на баферот откако ќе се отклучи;

  • Имплементиран метод SetDialogBoxMode, што ви овозможува да користите дијалог-кутија во апликации на цел екран;
  • Спроведена поддршка мешање темињаВклучувајќи индексирано мешање на теме, потребно за SWVP (Software Vertex Processing);
  • Бројачот на семплерот, прикажан на врвот на моменталната слика (главен екран, HUD), е редизајниран;
  • Додадена е опција d3d9.dialogBoxMode, која може да се користи за оневозможување на работата само во режим на цел екран;
  • Направи оптимизација на перформансите и ги реши проблемите што се појавија при лансирањето на GTA игрите: San Andreas, The Masquerade Bloodlines, Max Payne 2, The Sims 2, Silent Hunter 3, Senran Kagura Shinovi, Dungeons and Dragons, Crysis, Metal Slug X, ANGLE, Need for Брзина: Carbon и Risen 1.

Дополнително, може да се забележи намера развивач на проектот DXVK (имплементација на DXGI, Direct3D 10 и Direct3D 11 на врвот на Vulkan API) привремено ќе ги фокусира напорите само на поправки на грешки, забавувајќи го проширувањето на функционалноста. Слична желба предизвикани од загриженост за намалување на квалитетот на базата на кодови и потешко одржување во иднина. Секое ажурирање на гранката 1.4.x предизвикува поплаки за регресивни промени кои не можат да се репродуцираат, локализираат и поправат.

Овие проблеми бараат анализа на причините за нивното појавување, инаку нивното некорегирање додека продолжува да се зголемува функционалноста може само да ја влоши ситуацијата и да го претвори процесот на одржување во кошмар. Плановите што развивачот на DXVK има намера да ги спроведе пред да се префрли на режимот само за поправање грешки вклучуваат додавање поддршка за некои корисни екстензии на Vulkan и спојување со развојот на проектот D9VK.

Додаток: жешко на петиците формирана корективно ослободување D9VK 0.40.1, во кое фиксни поставете го vec4(1) на стандардната вредност за COLOR0 во шејдерите на темето и поправете бубачка каде што стандардните битови за излез на шејдерот беа неправилно применети и затоа неправилно коригирани од задниот дел, предизвикувајќи тие да бидат заменети со vec4(0).

Извор: opennet.ru

Додадете коментар