Нээлттэй эхийн Win32 API хэрэгжилтийн туршилтын хувилбар болох Wine 11.17 хувилбарыг гаргалаа. 11.16 хувилбар гарснаас хойш 44 алдааны тайланг хааж, 387 өөрчлөлт оруулсан байна.
Хамгийн чухал өөрчлөлтүүд:
- Дэлгэцийн горимын эмуляцийн анхны дэмжлэгийг нэмсэн бөгөөд энэ нь бүтэн дэлгэцийн програмууд болон тоглоомуудыг бодит дүрслэлийн үед дэлгэцийн DPI дээр үндэслэн масштаблагдсан өөрийн виртуал нягтралаар ажиллуулах боломжийг олгодог. Жишээлбэл, хуучин тоглоом нь 640x480 нягтралтай боловч өндөр нягтралтай дэлгэц дээр харуулахын зэрэгцээ харьцааг хадгалж болно.
- Систем болон хэрэглэгчдийн бүртгэлд тохируулсан, локал тохиргоонд үндэслэн анхдагчаар үүсгэсэн, давуу эрхтэй интерфэйсийн хэлнүүдийн жагсаалтыг авах RtlGetSystemPreferredUILanguages болон RtlGetUserPreferredUILanguages функцуудын дэмжлэгийг нэмсэн. Мөн процесс болон урсгалын түвшинд давуу эрхтэй хэлнүүдийн жагсаалтыг тодорхойлж, тохируулах RtlGetProcessPreferredUILanguages, SetProcessPreferredUILanguages, RtlGetSetThreadPreferredUILanguages болон SetThreadPreferredUILanguages функцуудыг нэмсэн.
- Direct3D 3 хувилбар бүхий Vkd12d багцыг 2.1 хувилбар болгон шинэчилсэн.
- Дараах програмуудтай холбоотой хаалттай алдааны тайлангууд: certmgr.exe, Signtools, Advanced SystemCare 6.4, Autodesk 3ds Max 9, SketchUp 2021, Nokia S60 5th Edition SDK 1.0, PDFCreator, SafeDisc v2.05.030, Bigrats, PTC Pro Engineer Wildfire V5, VisualSubSync 1.0.2.1, PS4 Remote Play 2.x, MigrosBank EBanking 8.2.x, Sparda Bank SecureApp 1.x, MSXML 6.0, Sennheiser Wireless Systems Manager 4.4, Netscape Navigator 3.04, xEdit.
- Тоглоомын үйл ажиллагаатай холбоотой хаалттай алдааны тайлангууд: GTA: Vice City, GTA: San Andreas, Tetris JR, Worms Blast, Horizon Chase Turbo, Star Wars: Knights of the Old Republic I/II, GunBound, Marathon, Ground Control, Ankh — Anniversary Edition, Clive Barker's Jericho.
Үүнээс гадна бид дарстай холбоотой төслүүдийн шинэ хувилбаруудыг тэмдэглэж болно:
- Wine Staging 11.17 хувилбар гарсан бөгөөд Wine-ийн үндсэн салбартай нэгтгэхэд хараахан тохиромжгүй дутуу эсвэл эрсдэлтэй нөхөөсүүдийг багтаасан өргөтгөсөн Wine хувилбаруудыг санал болгож байна. Wine-тэй харьцуулахад Wine Staging нь 279 нэмэлт нөхөөсийг санал болгож байна. Wine Staging-ийн шинэ хувилбар нь Wine 11.17 кодын сантай синхрончилж, vkd3d кодыг шинэчилдэг. kernel32.dll сан дахь SetThreadpoolTimerEx функцийг хэрэгжүүлдэг нөхөөсийг Wine-ийн үндсэн тархац руу порт хийсэн.
- Би Vulkan график API руу дуудлага орчуулга хийх замаар ажилладаг Direct3D 12 хэрэгжүүлэлт болох vkd3d 2.1 хувилбарыг гаргасан. Багцад Direct3D 12 хэрэгжүүлэлттэй libvkd3d сан, shader загварын орчуулагчтай libvkd3d-shader, Direct3D 12 програмуудыг портлох ажлыг хялбарчлах функцтэй libvkd3d-utils багтсан болно. Мөн glxgears-ийн Direct3D 12 руу порт оруулах зэрэг демо багц багтсан болно. libvkd3d сан нь график болон тооцоолох хэрэгслүүд, дараалал болон командын жагсаалт, тодорхойлогч болон овоолгын тодорхойлогч, үндсэн гарын үсэг, эрэмбэлээгүй хандалт, дээж авагчид, командын гарын үсэг, үндсэн тогтмолууд, шууд бус дүрслэл, Clear*() болон Copy*() аргууд зэрэг Direct3D 12-ийн ихэнх функцуудыг дэмждэг. libvkd3d-shader нь shader загварын байткодыг SPIR-V завсрын дүрслэл рүү хөрвүүлдэг.
vkd3d-ийн шинэ хувилбарт:
- 4 ба 5-р shader загваруудыг ашиглах үед "хагас" төрлийн арифметик үйлдлүүдийг дэмжихийн тулд HLSL shader хэлний хэрэгжилтийг шинэчилсэн.
- HLSL шэйдер хөрвүүлэгч нь оролт болон гаралтын өгөгдлийн шалгалтыг сайжруулж, 1-3 шэйдер загваруудад ашиглагдаагүй глобал хувьсагчдыг (дүрэмтгий) арилгах дамжуулалтыг хэрэгжүүлсэн.
- GLSL (OpenGL Shading Language) арын хэсэг нь оролтын регистрүүдийн шууд бус хаяглалт, атомын харьцуулалт болон бүхэл тоон нэмэх үйлдлүүд, битийн үйлдлүүд болон саадууд, UAV (Unormed Access View)-д зориулсан ачаалах/хадгалах үйлдлүүд болон thread бүлгийн хуваалцсан санах ойг дэмждэг.
- Хуучин Direct3D хоёртын шэйдер форматын дэмжлэгийг сайжруулсан. "sub" болон "break_cmp" зааварчилгаа, "_x2", "_x4", "_x8", "_d2", "_d4", болон "_d8" зааврын модификаторууд, мөн "_bias", "_x2", болон "_bx2" операнд модификаторуудыг хэрэгжүүлсэн.
- SPIR-V shader-ийн завсрын дүрслэл рүү хөрвүүлэх үед хөвөгч цэгийн тоонуудыг 64 битийн бүхэл тоо болгон хөрвүүлэх үйлдлүүдэд зориулсан дэмжлэг нэмэгдсэн.
- Libvkd3d-utils нь shader reflection API-ийн дэмжлэгийг өргөжүүлсэн. ID3D10ShaderReflection, ID3D10ShaderReflection1, болон ID3D11ShaderReflection интерфэйсүүд, мөн ID3D12ShaderReflection болон ID3D12ShaderReflectionType интерфэйсүүдийн ихэнх аргуудыг хэрэгжүүлсэн.
- "float" төрлийн дүрслэлд "half" төрлийн глобал хувьсагчдыг хөрвүүлэхийн тулд vkd3d-compiler дээр "--allow-half-globals" сонголтыг, libvkd3d-shader дээр VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_ALLOW_HALF_GLOBALS тугийг нэмсэн.
- DXVK 3.1 хувилбар гарсан бөгөөд DXGI (DirectX Graphics Infrastructure), Direct3D 8, 9, 10, болон 11-ийн хэрэгжилтийг хангаж, Vulkan API руу дуудлага орчуулах замаар ажилладаг. DXVK ашиглахын тулд NVIDIA 575.51.02, Mesa AMD RADV 25.0, NVIDIA 25.1, болон Intel ANV 25.1 зэрэг Vulkan 1.4 API-г дэмждэг драйверууд шаардлагатай. DXVK-г 3D програмууд болон тоглоомуудыг ажиллуулахад ашиглаж болно. Linux Wine-г ашиглан OpenGL дээр ажилладаг Wine-ийн суурилуулсан Direct3D шийдлүүдийн илүү өндөр гүйцэтгэлтэй хувилбар болж үйлчилдэг.
Шинэ хувилбарт:
- VK_KHR_incremental_present Vulkan өргөтгөлийг ашиглан хэрэгжүүлсэн DXGI дээр инкрементал дүрслэлийн дэмжлэг нэмэгдсэн. Энэ нь зөвхөн дэлгэцийн өөрчлөгдсөн хэсгүүдийг шинэчлэх боломжийг олгодог. Энэхүү шинэ функц нь VirtualDJ болон Ubisoft Connect зэрэг янз бүрийн тоглоом эхлүүлэгч програмууд дахь дүрслэлийн асуудлыг шийдвэрлэдэг.
- Battlefield 3 гэх мэт Frostbite дээр суурилсан зарим тоглоомуудад үүлэн дүрслэлийн артефакттай холбоотой асуудлыг шийдвэрлэсэн тул буферт шууд рендерийн зорилтот харагдац үүсгэх дэмжлэг нэмэгдсэн.
- Intel GPU-д зориулсан өргөтгөлүүдийг (үйлдвэрлэгчийн өргөтгөлүүд) дэмжихийн тулд номын сангуудыг ачаалж байна.
- Mabinogi, The Witcher 1, Ghost Recon Breakpoint, Mirrors Edge, болон RaceRoom Racing Experience зэрэг тоглоомуудтай холбоотой асуудлуудыг зассан.
- Microsoft-ын 1996, 1997, 1998, 1999 онуудад санал болгосон Direct3D 3, 5, 6, 7 график API-уудын хэрэгжилтийг хөгжүүлсэн D7VK 2.2 төсөл гарсан. D7VK нь Vulkan API руу дуудлага хөрвүүлэх замаар ажилладаг бөгөөд танд ...-д ажиллуулах боломжийг олгодог. Linux Direct3D 3, 5, 6, болон 7 API дээр суурилсан ретро тоглоомууд. Төслийн кодыг C++ хэл дээр бичиж, Zlib лицензийн дагуу түгээдэг. Хөгжүүлэлт нь DXVK төслийн d3d9 backend код дээр суурилсан. D7VK нь Direct3D 3, 5, 6, болон 7 API-г Direct3D 9 дуудлага болгон хөрвүүлдэг бөгөөд дараа нь тэдгээрийг Vulkan API руу хөрвүүлдэг. Хөгжүүлэгч нь Vulkan дээр суурилсан Direct3D 8 болон Direct3D 9 хэрэгжилтийн үед гарсан шиг DXVK-д D7VK оруулахыг эрмэлзэхгүй байна.
Шинэ хувилбар нь 3.1 хувилбар DXVK руу шилжиж, D3D3 төхөөрөмжүүдэд зориулсан D3D3 гүйцэтгэгдэх файлын буфер шалгах болон дахин тоолох үйлдлийг дахин боловсруулж, D3D5/3-ийн бүтэц зохицуулалтыг сайжруулсан. Дараах тоглоомуудын дэмжлэгийг сайжруулахын тулд засварууд хийгдсэн: The Lord of the Rings, Resident Evil 2, болон Frogger тоглоомууд.
Эх сурвалж: opennet.ru
