open-source Win32 API အကောင်အထည်ဖော်မှု၏ စမ်းသပ်ဗားရှင်းတစ်ခုဖြစ်သည့် Wine 11.17 ကို ထုတ်ပြန်လိုက်ပါပြီ။ 11.16 ထုတ်ပြန်ပြီးကတည်းက bug report ၄၄ ခုကို ပိတ်လိုက်ပြီး ပြောင်းလဲမှု ၃၈၇ ခု ပြုလုပ်ပြီးပါပြီ။
အရေးကြီးဆုံးပြောင်းလဲမှုများ-
- မျက်နှာပြင်မုဒ် emulation အတွက် ကနဦးပံ့ပိုးမှုကို ထည့်သွင်းထားပြီး၊ မျက်နှာပြင်အပြည့် အပလီကေးရှင်းများနှင့် ဂိမ်းများကို ၎င်းတို့၏ကိုယ်ပိုင် virtual resolution ဖြင့် လည်ပတ်နိုင်စေပြီး၊ ၎င်းကို မော်နီတာ၏ DPI ပေါ်တွင် အခြေခံ၍ ချိန်ညှိထားသည်။ ဥပမာအားဖြင့်၊ ဂိမ်းအဟောင်းတစ်ခုသည် 640x480 resolution ကို အသုံးပြုသော်လည်း aspect ratio ကို ထိန်းသိမ်းထားစဉ် resolution မြင့်မားသော မျက်နှာပြင်တွင် ပြသနိုင်သည်။
- စနစ်တစ်ခုလုံးနှင့် တစ်ဦးချင်းအသုံးပြုသူများအတွက် registry တွင် configure လုပ်ထားပြီး locale setting များအပေါ်အခြေခံ၍ default အနေဖြင့်ထုတ်ပေးသော နှစ်သက်ရာ interface ဘာသာစကားများစာရင်းကို ပြန်လည်ရယူရန်အတွက် RtlGetSystemPreferredUILanguages နှင့် RtlGetUserPreferredUILanguages လုပ်ဆောင်ချက်များအတွက် ပံ့ပိုးမှုကို ထည့်သွင်းထားသည်။ process နှင့် thread level တွင် နှစ်သက်ရာဘာသာစကားများစာရင်းကို ဆုံးဖြတ်ပြီး သတ်မှတ်ရန်အတွက် RtlGetProcessPreferredUILanguages၊ SetProcessPreferredUILanguages၊ RtlGetSetThreadPreferredUILanguages နှင့် SetThreadPreferredUILanguages လုပ်ဆောင်ချက်များကိုလည်း ထည့်သွင်းထားသည်။
- Direct3D 3 အကောင်အထည်ဖော်မှုနှင့်အတူ built-in 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။
- ဂိမ်းများ၏ လည်ပတ်မှုနှင့် ဆက်စပ်သော ပိတ်ထားသော bug အစီရင်ခံစာများ- 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 နှင့်သက်ဆိုင်သော ပရောဂျက်များ၏ ထုတ်ပြန်ချက်အသစ်များကို ကျွန်ုပ်တို့ မှတ်သားထားနိုင်သည်-
- Wine Staging 11.17 ကို ထွက်ရှိထားပြီး Wine ရဲ့ အဓိက ဌာနခွဲနဲ့ ပေါင်းစပ်ဖို့ မသင့်တော်သေးတဲ့ မပြည့်စုံသေးတဲ့ ဒါမှမဟုတ် အန္တရာယ်များတဲ့ patch တွေ ပါဝင်တဲ့ Wine build တွေကို တိုးချဲ့ ပံ့ပိုးပေးထားပါတယ်။ Wine နဲ့ နှိုင်းယှဉ်ရင် Wine Staging က patch ၂၇၉ ခု ထပ်ထည့်ပေးထားပါတယ်။ Wine Staging ဗားရှင်းအသစ်ဟာ Wine 11.17 codebase နဲ့ ထပ်တူပြုပြီး vkd3d code ကို အပ်ဒိတ်လုပ်ပါတယ်။ kernel32.dll library မှာ SetThreadpoolTimerEx function ကို အကောင်အထည်ဖော်တဲ့ patch တစ်ခုကို Wine ရဲ့ အဓိက ဖြန့်ဖြူးမှုဆီ port လုပ်ထားပါတယ်။
- Vulkan ဂရပ်ဖစ် API သို့ call translation မှတစ်ဆင့် အလုပ်လုပ်သော Direct3D 12 အကောင်အထည်ဖော်မှုတစ်ခုဖြစ်သည့် vkd3d 2.1 ကို ကျွန်တော်ထုတ်ပြန်လိုက်ပါပြီ။ ၎င်း package တွင် Direct3D 12 အကောင်အထည်ဖော်မှုပါရှိသော libvkd3d library၊ shader model translator ပါရှိသော libvkd3d-shader နှင့် Direct3D 12 application များကို porting လုပ်ရာတွင် ရိုးရှင်းစေရန် function ပါရှိသော libvkd3d-utils တို့ပါဝင်သည်။ ၎င်းတွင် glxgears များကို Direct3D 12 သို့ port လုပ်ခြင်းအပါအဝင် demos အစုံတစ်ခုလည်း ပါဝင်သည်။ libvkd3d library သည် graphics နှင့် compute tools၊ queues နှင့် command lists၊ descriptors နှင့် heap descriptors၊ root signatures၊ unordered access၊ Samplers၊ command signatures၊ root constants၊ indirect rendering နှင့် Clear*() နှင့် Copy*() methods များအပါအဝင် Direct3D 12 features အများစုကို support လုပ်ပါသည်။ libvkd3d-shader သည် shader model bytecode ကို SPIR-V intermediate representation အဖြစ် ဘာသာပြန်ဆိုခြင်းကို implement လုပ်သည်။
vkd3d ဗားရှင်းအသစ်တွင်
- shader models 4 နှင့် 5 ကိုအသုံးပြုသည့်အခါ "half" type ဖြင့် ဂဏန်းသင်္ချာလုပ်ဆောင်ချက်များကို ပံ့ပိုးပေးရန် HLSL shader language implementation ကို update လုပ်ထားသည်။
- HLSL shader compiler သည် input နှင့် output data စစ်ဆေးမှုများကို ပိုမိုအားကောင်းစေပြီး shader models 1-3 တွင် အသုံးမပြုသော global variables (uniforms) များကို ဖယ်ရှားရန် pass တစ်ခုကို အကောင်အထည်ဖော်ခဲ့သည်။
- GLSL (OpenGL Shading Language) backend သည် input register များ၏ indirect addressing၊ atomic comparison နှင့် integer addition operations၊ bitwise operations နှင့် barriers၊ UAV (Unordered Access View) အတွက် load/store operations နှင့် thread group တစ်ခု၏ shared memory တို့အတွက် support ကို implement လုပ်ပါသည်။
- Direct3D binary shader format အဟောင်းအတွက် ပံ့ပိုးမှု ပိုမိုကောင်းမွန်လာပါသည်။ "sub" နှင့် "break_cmp" ညွှန်ကြားချက်များ၊ "_x2", "_x4", "_x8", "_d2", "_d4", နှင့် "_d8" ညွှန်ကြားချက် ပြုပြင်ပေးသည့်အရာများနှင့် "_bias", "_x2", နှင့် "_bx2" operand ပြုပြင်ပေးသည့်အရာများကို အကောင်အထည်ဖော်ထားပါသည်။
- SPIR-V shaders များ၏ အလယ်အလတ်ကိုယ်စားပြုမှုသို့ ပြောင်းလဲသည့်အခါ၊ floating-point နံပါတ်များကို 64-bit ကိန်းပြည့်များအဖြစ် ပြောင်းလဲသည့် လုပ်ဆောင်ချက်များအတွက် ပံ့ပိုးမှုကို ထည့်သွင်းထားသည်။
- Libvkd3d-utils သည် shader reflection API အတွက် ပံ့ပိုးမှုကို တိုးချဲ့ထားသည်။ ID3D10ShaderReflection၊ ID3D10ShaderReflection1 နှင့် ID3D11ShaderReflection interfaces များအပြင် ID3D12ShaderReflection နှင့် ID3D12ShaderReflectionType interfaces အများစုကို ယခုအခါ အကောင်အထည်ဖော်ပြီးဖြစ်သည်။
- "half" အမျိုးအစား၏ ကမ္ဘာလုံးဆိုင်ရာ variable များကို "float" အမျိုးအစားကိုယ်စားပြုမှုအဖြစ် စုစည်းရန် vkd3d-shader တွင် "--allow-half-globals" option နှင့် VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_ALLOW_HALF_GLOBALS flag ကို libvkd3d-shader တွင် ထည့်သွင်းထားသည်။
- 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 ကို ပံ့ပိုးပေးသော drivers များ လိုအပ်ပါသည်။ DXVK ကို 3D application များနှင့် ဂိမ်းများကို run ရန် အသုံးပြုနိုင်ပါသည်။ Linux OpenGL ပေါ်တွင် လည်ပတ်နေသော Wine ၏ built-in Direct3D အကောင်အထည်ဖော်မှုများအစား ပိုမိုမြင့်မားသောစွမ်းဆောင်ရည်ရှိသော အခြားရွေးချယ်စရာတစ်ခုအဖြစ် Wine ကိုအသုံးပြုနေသည်။
ဗားရှင်းအသစ်တွင်-
- VK_KHR_incremental_present Vulkan extension ကို အသုံးပြု၍ အကောင်အထည်ဖော်ထားသော DXGI တွင် incremental rendering အတွက် ပံ့ပိုးမှု ထည့်သွင်းထားသည်။ ၎င်းသည် ပြောင်းလဲထားသော မျက်နှာပြင်ဧရိယာများကိုသာ အပ်ဒိတ်လုပ်ခွင့်ပြုသည်။ ဤအင်္ဂါရပ်အသစ်သည် VirtualDJ နှင့် Ubisoft Connect ကဲ့သို့သော ဂိမ်း launcher အမျိုးမျိုးတွင် rendering ပြဿနာများကို ဖြေရှင်းပေးသည်။
- Battlefield 3 ကဲ့သို့သော Frostbite-powered ဂိမ်းအချို့တွင် cloud rendering artifacts များနှင့်ပတ်သက်သည့် ပြဿနာများကို ဖြေရှင်းပေးသည့် buffer များတွင် render target view များကို တိုက်ရိုက်ဖန်တီးရန်အတွက် ပံ့ပိုးမှုထည့်သွင်းထားသည်။
- Intel GPU-specific extensions (vendor extensions) များကို ပံ့ပိုးရန် libraries များ loading အကောင်အထည်ဖော်ခဲ့သည်။
- Mabinogi၊ The Witcher 1၊ Ghost Recon Breakpoint၊ Mirrors Edge နှင့် RaceRoom Racing Experience တို့နှင့်ပတ်သက်သည့် ပြဿနာများကို ပြင်ဆင်ပြီးပါပြီ။
- D7VK 2.2 ပရောဂျက်ကို ထုတ်ပြန်လိုက်ပါပြီ၊ ၎င်းသည် Microsoft မှ ၁၉၉၆၊ ၁၉၉၇၊ ၁၉၉၈ နှင့် ၁၉၉၉ ခုနှစ်တွင် အဆိုပြုခဲ့သော Direct3D 3, 5, 6 နှင့် 7 ဂရပ်ဖစ် API များ၏ အကောင်အထည်ဖော်မှုကို တီထွင်နေပါသည်။ D7VK သည် ဖုန်းခေါ်ဆိုမှုများကို Vulkan API သို့ ဘာသာပြန်ဆိုခြင်းဖြင့် အလုပ်လုပ်ပြီး သင့်အား အောက်ပါတို့တွင် လည်ပတ်နိုင်စေပါသည်။ Linux Direct3D 3, 5, 6, နှင့် 7 API များအပေါ်အခြေခံသည့် Retro ဂိမ်းများ။ ပရောဂျက်ကုဒ်ကို C++ ဖြင့်ရေးသားထားပြီး Zlib လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။ ဖွံ့ဖြိုးတိုးတက်မှုသည် DXVK ပရောဂျက်မှ d3d9 backend ကုဒ်အပေါ်အခြေခံသည်။ D7VK သည် Direct3D 3, 5, 6, နှင့် 7 API များကို Direct3D 9 ခေါ်ဆိုမှုများအဖြစ်သို့ ပြောင်းလဲပေးပြီး ထို့နောက် Vulkan API သို့ ဘာသာပြန်ဆိုသည်။ ဆော့ဖ်ဝဲရေးသားသူသည် Vulkan ၏ထိပ်တွင် Direct3D 8 နှင့် Direct3D 9 အကောင်အထည်ဖော်မှုများကဲ့သို့ D7VK ကို DXVK တွင်ထည့်သွင်းရန် ရည်ရွယ်ခြင်းမဟုတ်ပါ။
ဗားရှင်းအသစ်သည် ဗားရှင်း 3.1 DXVK သို့ ကူးပြောင်းသွားပြီး D3D3 စက်ပစ္စည်းများအတွက် D3D3 executable buffer checking နှင့် refcounting ကို ပြန်လည်လုပ်ဆောင်ကာ D3D5/3 အတွက် texture handling ကို တိုးတက်ကောင်းမွန်အောင် ပြုလုပ်ထားသည်။ အောက်ပါဂိမ်းများအတွက် ပံ့ပိုးမှုတိုးတက်စေရန် ပြင်ဆင်မှုများ ပြုလုပ်ထားသည်- The Lord of the Rings ရှိ Palantírs၊ Resident Evil 2 နှင့် Frogger။
source: opennet.ru
