Wine ပရောဂျက်သည် Direct3D 1.7 အကောင်အထည်ဖော်မှုဖြင့် Vkd3d 12 ကို ထုတ်ဝေခဲ့သည်။

Wine ပရောဂျက်သည် Vulkan ဂရပ်ဖစ် API သို့ အသံလွှင့်ခေါ်ဆိုမှုများမှတစ်ဆင့် လုပ်ဆောင်သည့် Direct3D 1.7 ကို အကောင်အထည်ဖော်ခြင်းဖြင့် vkd3d 12 ပက်ကေ့ဂျ်ကို ထုတ်ဝေခဲ့သည်။ ပက်ကေ့ဂျ်တွင် Direct3D 3 ၏ အကောင်အထည်ဖော်မှုများပါရှိသော libvkd12d စာကြည့်တိုက်များ၊ shader မော်ဒယ် 3 နှင့် 4 ၏ ဘာသာပြန်ဆိုသူနှင့် Libvkd5d-shader နှင့် Direct3D 3 အပလီကေးရှင်းများ၏ ပို့ခြင်းကို ရိုးရှင်းစေရန် လုပ်ဆောင်ချက်များ ပါဝင်သည့်အပြင် ဆိပ်ကမ်းတစ်ခုအပါအဝင် နမူနာနမူနာအစုံ glxgears မှ Direct12D 3။ ပရောဂျက်ကုဒ်အား LGPLv12 အောက်တွင် လိုင်စင်ဖြင့် ဖြန့်ဝေထားသည်။

libvkd3d စာကြည့်တိုက်သည် ဂရပ်ဖစ်နှင့် ကွန်ပျူတာဆိုင်ရာ အထောက်အကူပစ္စည်းများ၊ တန်းစီခြင်းနှင့် အမိန့်ပေးစာရင်းများ၊ လက်ကိုင်များနှင့် အစုအဝေးများ၊ အမြစ်လက်မှတ်များ၊ အမိန့်ပြင်ပသို့ ဝင်ရောက်မှု၊ နမူနာများ၊ ညွှန်ကြားချက်လက်မှတ်များ၊ အရင်းအနှီးများ၊ သွယ်ဝိုက်ဖော်ပြခြင်း၊ ရှင်းလင်းသည့်နည်းလမ်းများ *( ) နှင့် Copy*()။ libvkd3d-shader တွင်၊ shader မော်ဒယ် 12 နှင့် 3 ၏ bytecode ကို အလယ်အလတ် SPIR-V ကိုယ်စားပြုမှုအဖြစ်သို့ ဘာသာပြန်ဆိုခြင်းကို လုပ်ဆောင်ပါသည်။ vertex၊ pixel၊ tessellation၊ compute နှင့် simple geometry shaders၊ root signature serialization နှင့် deserialization ကို ပံ့ပိုးပေးသည်။ Shader လမ်းညွှန်ချက်များတွင် ဂဏန်းသင်္ချာ၊ အက်တမ်နှင့် ဘစ်လုပ်ဆောင်ချက်များ၊ နှိုင်းယှဉ်မှုနှင့် ဒေတာစီးဆင်းမှု ထိန်းချုပ်မှု အော်ပရေတာများ၊ နမူနာများ၊ လမ်းညွှန်ချက်များကို စုဆောင်းပြီး တင်ရန်၊ အစီအစဉ်မချထားသည့် ဝင်ရောက်လည်ပတ်မှု (UAV၊ Unordered Access View) ပါဝင်သည်။

ဗားရှင်းအသစ်တွင်-

  • HLSL (High-Level Shader Language) တွင် shader compiler ကို ပိုမိုကောင်းမွန်အောင် ဆက်လက်လုပ်ဆောင်ရန်။
    • စိတ်ကြိုက်လုပ်ဆောင်ချက်များကို ခေါ်ဆိုရန်နှင့် စိတ်ကြိုက်လုပ်ဆောင်ချက်များအတွက် ကန့်သတ်ချက်များအဖြစ် အခင်းအကျင်းများကို အသုံးပြုနိုင်သည့် စွမ်းရည်ကို ထည့်သွင်းထားသည်။
    • SV_DispatchThreadID၊ SV_GroupID နှင့် SV_GroupThreadID ကန့်သတ်ဘောင်များအတွက် ပံ့ပိုးမှု ထပ်ထည့်ထားသည်။
    • ထည့်သွင်းထားသော လုပ်ဆောင်ချက် all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt ()၊ step(), transpose()။
    • "min16float" ကဲ့သို့သော တိကျမှုနည်းသော floating point အမျိုးအစားများအတွက် ကနဦးပံ့ပိုးမှု ထပ်လောင်းထည့်သွင်းထားသည်။
  • Direct3D 1/2/3 shader မော်ဒယ်ပရိုဖိုင်များအတွက် သိသာထင်ရှားစွာ တိုးတက်ကောင်းမွန်သော ပံ့ပိုးမှု။
  • DXBC ဒွိဒေတာ (vkd3d_shader_parse_dxbc) နှင့် အမှတ်စဉ် (vkd3d_shader_serialize_dxbc) ခွဲခြမ်းစိတ်ဖြာရန်အတွက် အများသုံး API ကို ပေါင်းထည့်ထားသည်။

source: opennet.ru

မှတ်ချက် Add