Vrystelling van D9VK 0.40, Direct3D 9-implementering bo-op Vulkan

plaasgevind projek vrystelling D9VK 0.40, wat 'n Direct3D 9-implementering verskaf wat werk deur oproepe na die grafiese API te vertaal vulkaan. Die projek is gebaseer op die projek se kodebasis DXVK, wat uitgebrei is om Direct3D 9 te ondersteun. In vergelyking met die WineD3D-gebaseerde Direct9D 3-implementering, behaal D9VK beter werkverrigting omdat Direct3D 9-vertaling via OpenGL stadiger is as vertaling via Vulkan.

D9VK kan gebruik word om 3D-toepassings en speletjies op Linux met Wine te laat loop. Die meeste speletjies gebaseer op Direct3D 9 wat weergawes 2 of 3 van die Shader Model gebruik, word ondersteun. Projek kode versprei deur onder die gratis Zlib-lisensie. D9VK vereis drywers wat die Vulkan API ondersteun, soos AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+ en AMDVLK.

Belangrikste verbeterings:

  • Die vermoë om meer as 4 GB videogeheue in 32-bis toepassings te gebruik, is geïmplementeer, wat probleme opgelos het met die bekendstelling van mods vir die speletjies Skyrim en Oblivion;
  • Asinchroniese verwerking van die vertoon van die leweringresultaat op die skerm is geaktiveer (aanbiedingstadium). Om latensie op die hoofweergawe-draad te verminder, word uitsetverwerking in die opdragvoorleggingsdraad uitgevoer;
  • Onnodige opdragvloei-sinchronisasiepunte verwyder tydens die herwinning van versoekte data;
  • Die kode vir die bepaling van die interne tyd is vertaal om 'n platform-spesifieke timer te gebruik, wat gehelp het om probleme op te los met die verkeerde gedrag van hoë_resolusie_klok van MinGW;
  • Die uitgestelde buffers MANAGED en SYSTEMMEM is afgelaai in die stadium voor die uitvoering van PrepareDraw, wat prestasieprobleme in die speletjies Risen en Legend of the Heroes: Trails of the Sky opgelos het;
  • Bygevoeg ondersteuning D3DTA_KONSTANT, wat dit moontlik gemaak het om korrekte lewering te implementeer gloei effek in SpinTyres en Mudrunner-speletjies;
  • Verbeterde verenigbaarheid met DirectX 9Ex (D3D9Ex). Die besonderhede van die verwerking van ResetEx en Reset word in ag geneem;
  • Skoongemaak en herbewerkte kode;
  • Direkte kartering van WRITEONLY buffers word verskaf, wat 'n positiewe uitwerking op prestasie kan hê en 'n fout in die speletjie kan omseil
    Counter-Strike: Global Offensive, wat lei tot voortgesette skryf na die buffer nadat dit ontsluit is;

  • Metode geïmplementeer Stel DialogBoxMode, wat jou toelaat om dialoogkassies in volskermtoepassings te gebruik;
  • Geïmplementeerde ondersteuning vermenging van hoekpunteInsluitend geïndekseer hoekpunt vermenging, benodig vir SWVP (sagteware Vertex Processing);
  • Die monsterteller, wat bo-op die huidige beeld vertoon word (heads-up display, HUD), is herontwerp;
  • Bygevoeg opsie d3d9.dialogBoxMode, wat gebruik kan word om werk slegs in volskermmodus uit te skakel;
  • Werkverrigtingoptimalisasies gemaak en probleme opgelos wat voorgekom het met die bekendstelling van GTA-speletjies: 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 Spoed: Koolstof en Opgestaan ​​1.

Daarbenewens kan dit opgemerk word voorneme projek ontwikkelaar DXVK ('n implementering van DXGI, Direct3D 10 en Direct3D 11 bo-op die Vulkan API) sal tydelik net pogings fokus op foutoplossings, wat die uitbreiding van funksionaliteit vertraag. 'n Soortgelyke begeerte veroorsaak deur kommer oor 'n afname in die kwaliteit van die kodebasis en moeiliker instandhouding in die toekoms. Elke opdatering aan die 1.4.x-tak veroorsaak klagtes oor regressiewe veranderinge wat nie gereproduseer, gelokaliseer en reggemaak kan word nie.

Hierdie probleme vereis 'n ontleding van die redes vir hul voorkoms, anders kan dit die situasie net vererger en die instandhoudingsproses in 'n nagmerrie laat om dit onreggestel te laat terwyl u voortgaan om funksionaliteit te verhoog. Die planne wat die DXVK-ontwikkelaar beoog om te implementeer voordat hy oorskakel na slegs foutoplossingsmodus, sluit in die byvoeging van ondersteuning vir 'n paar nuttige Vulkan-uitbreidings en saamsmelt met die ontwikkelings van die D9VK-projek.

Bylaag: op heterdaad gevorm korrektiewe vrystelling D9VK 0.40.1, waarin vasgestel stel vec4(1) op die verstekwaarde vir COLOR0 in vertex shaders, en het 'n fout reggestel waar die verstek shader-uitsetgleufbissies verkeerd toegepas is en dus verkeerd deur die backend gekorrigeer is, wat veroorsaak het dat hulle deur vec4(0) vervang is.

Bron: opennet.ru

Voeg 'n opmerking