Vulkan-ийн орой дээр D9VK 0.40, Direct3D 9 хувилбарыг гаргасан

болсон төслийн хувилбар D9VK 0.40, энэ нь дуудлагыг график API руу хөрвүүлэх замаар ажилладаг Direct3D 9 хэрэгжилтийг хангадаг Vulkan. Төсөл нь төслийн кодын суурь дээр суурилдаг DXVK, Direct3D 9-ийг дэмжихээр өргөтгөсөн. WineD3D-д суурилсан Direct9D 3-ийн хэрэгжилттэй харьцуулахад D9VK нь илүү сайн гүйцэтгэлтэй, учир нь OpenGL-ээр дамжуулан Direct3D 9-ийн орчуулга нь Vulkan-аар хийсэн орчуулгаас удаан байдаг.

D9VK нь Wine ашиглан Linux дээр 3D програмууд болон тоглоомуудыг ажиллуулахад ашиглаж болно. Shader Model-ийн 3 эсвэл 9-р хувилбарыг ашигладаг Direct2D 3 дээр суурилсан ихэнх тоглоомууд дэмжигддэг. Төслийн код тараасан үнэгүй Zlib лицензийн дагуу. D9VK нь Vulkan API-г дэмждэг AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+, AMDVLK зэрэг драйверуудыг шаарддаг.

Гол сайжруулалтууд:

  • 4 битийн програмуудад 32 ГБ-аас дээш видео санах ойг ашиглах чадварыг хэрэгжүүлсэн бөгөөд энэ нь Skyrim болон Oblivion тоглоомуудад зориулсан горимуудыг эхлүүлэхэд гарсан асуудлыг шийдсэн;
  • Дэлгэц дээр үзүүлэх үр дүнг харуулах асинхрон боловсруулалтыг идэвхжүүлсэн (танилцуулгын үе шат). Үндсэн дүрслэх урсгалын хоцролтыг багасгахын тулд гаралтын боловсруулалтыг тушаал илгээх хэлхээнд гүйцэтгэдэг;
  • Хүссэн өгөгдлийг татаж авах үед шаардлагагүй командын синхрончлолын цэгүүдийг устгасан;
  • Дотоод цагийг тодорхойлох кодыг платформд зориулсан таймер ашиглахаар орчуулсан бөгөөд энэ нь MinGW-ээс өндөр нягтралтай_цагийн буруу үйлдэлтэй холбоотой асуудлыг шийдвэрлэхэд тусалсан;
  • MANAGED болон SYSTEMMEM хойшлуулсан буферуудыг буулгах нь Risen болон Legend of Heroes: Trails of the Sky тоглоомуудын гүйцэтгэлийн асуудлыг шийдсэн PrepareDraw-ийг гүйцэтгэхээс өмнөх үе шатанд баталгаажсан.
  • Нэмэлт дэмжлэг D3DTA_CONSTANT, энэ нь зөв дүрслэлийг хэрэгжүүлэх боломжтой болсон гэрэлтэх нөлөө SpinTyres болон Mudrunner тоглоомуудад;
  • -тай нийцтэй байдал сайжирсан DirectX 9Ex (D3D9Ex). ResetEx болон Reset боловсруулах онцлогийг харгалзан үздэг;
  • Цэвэрлэсэн, дахин засварласан код;
  • ЗӨВХӨН WRITEONLY буферийн зураглалыг өгсөн бөгөөд энэ нь гүйцэтгэлд эерэгээр нөлөөлж, тоглоомын алдааг тойрч гарах боломжтой.
    Counter-Strike: Global Offensive, түгжээг нь тайлсны дараа буфер руу үргэлжлүүлэн бичихэд хүргэдэг;
  • Хэрэгжүүлсэн арга 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 Хурд: Нүүрстөрөгч ба өссөн 1.

Нэмж дурдахад үүнийг тэмдэглэж болно хүсэл төсөл хөгжүүлэгч DXVK (Vulkan API дээр DXGI, Direct3D 10 болон Direct3D 11-ийг хэрэгжүүлснээр) зөвхөн алдааг засахад түр зуур анхаарлаа хандуулж, функцын өргөтгөлийг удаашруулна. Үүнтэй төстэй хүсэл учруулсан кодын баазын чанар буурч, ирээдүйд засвар үйлчилгээ илүү хэцүү болох талаар санаа зовж байна. 1.4.x салбарын шинэчлэлт бүр нь хуулбарлах, нутагшуулах, засах боломжгүй регрессив өөрчлөлтүүдийн талаар гомдол гаргадаг.

Эдгээр асуудлууд нь тэдгээрийн үүсэх шалтгааныг шинжлэхийг шаарддаг бөгөөд эс тэгвээс үйл ажиллагааг үргэлжлүүлэн нэмэгдүүлэхийн зэрэгцээ тэдгээрийг засч залруулахгүй орхих нь нөхцөл байдлыг улам хүндрүүлж, засвар үйлчилгээний үйл явцыг хар дарсан зүүд болгон хувиргах болно. Зөвхөн алдаа засах горимд шилжихээс өмнө DXVK хөгжүүлэгчийн хэрэгжүүлэхээр төлөвлөж буй төлөвлөгөөнд зарим хэрэгтэй Vulkan өргөтгөлүүдийг дэмжих, D9VK төслийн хөгжүүлэлттэй нэгтгэх зэрэг багтана.

Нэмэлт: өсгий дээр халуун үүссэн залруулах хувилбар D9VK 0.40.1, үүнд тогтмол vec4(1)-ийг оройн шэйдерүүдэд COLOR0-ын өгөгдмөл утгад тохируулж, анхдагч шэйдерийн гаралтын үүрний битүүдийг буруу ашигласан тул арын хэсэгт буруу зассан алдааг засч, тэдгээрийг vec4(0)-ээр сольсон.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх