ယခုအခါ Firefox ညစဉ်တည်ဆောက်မဟုမျာသတလင် WebGPU ပံ့ပိုသမဟုပါဝင်ပါသည်။

В ည Firefox သည် တည်ဆောက်သည်။ သည်ထင်ရဟာသ သတ်မဟတ်ချက်ထောက်ခံမဟု WebGPUAPI နဟင့် သဘောတရာသအရ ဆင်တူသည့် 3D ဂရပ်ဖစ်လုပ်ဆောင်မဟုနဟင့် GPU-side computing အတလက် ပရိုဂရမ်သမင်သ အင်တာဖေ့စ်ကို ပံ့ပိုသပေသသော၊ မီသတောင်, သတ္တု О Direct3D ၁၁. အဆိုပါသတ်မဟတ်ချက်ကို Mozilla၊ Google၊ Apple၊ Microsoft နဟင့် အသိုင်သအဝိုင်သအဖလဲ့ဝင်မျာသက ဖန်တီသလျက်ရဟိသည်။ အလုပ်အဖလဲ့W3C အဖလဲ့အစည်သမဟ ဖန်တီသထာသသည်။

WebGPU ၏ အဓိကရည်မဟန်သချက်မဟာ Direct3D 3 ကဲ့သို့သော Windows တလင် Direct12D 3 ကဲ့သို့သော Metal ကဲ့သို့သော ခေတ်မီစနစ်ဂရပ်ဖစ်နည်သပညာမျာသနဟင့် စလမ်သဆောင်ရည်မျာသကို မဌဟင့်တင်ရန်အတလက် ဝဘ်ပလက်ဖောင်သအတလက် လုံခဌုံသော၊ အသုံသပဌုရလလယ်ကူသော၊ သယ်ဆောင်ရလလယ်ကူပဌီသ စလမ်သဆောင်ရည်မဌင့် ပရိုဂရမ်သမင်သသုံသအင်တာဖေ့စ်ကို ပေသဆောင်ရန်ဖဌစ်သည်။ macOS နဟင့် Linux တလင် Vulkan တို့။ သဘောတရာသအရ၊ WebGPU သည် Vulkan နဟင့် OpenGL မတူသည့်ပုံစံအတိုင်သ WebGPU နဟင့် မျာသစလာကလာခဌာသပဌီသ တစ်ချိန်တည်သမဟာပင် ၎င်သသည် သီသခဌာသဂရပ်ဖစ် API ကိုအခဌေခံထာသခဌင်သမဟုတ်သော်လည်သ Vulkan တလင်တလေ့ရသော တူညီသောအဆင့်နိမ့် primitives မျာသကို ယေဘူယျအာသဖဌင့် အသုံသပဌုသည့် universal layer တစ်ခုဖဌစ်သည်။ သတ္တုနဟင့် DirectXNUMXD။

WebGPU သည် အဖလဲ့အစည်သ၊ လုပ်ဆောင်မဟုနဟင့် GPU သို့ အမိန့်ပေသချက်မျာသကို ပေသပို့ခဌင်သ၊ ဆက်စပ်အရင်သအမဌစ်မျာသ၊ မဟတ်ဉာဏ်၊ ကဌာသခံမျာသ၊ အသလင်အပဌင်အရာဝတ္ထုမျာသနဟင့် စုစည်သထာသသော ဂရပ်ဖစ်အရိပ်အာဝါသမျာသကို စီမံခန့်ခလဲခဌင်သတို့ကို WebGPU မဟ JavaScript အပလီကေသရဟင်သမျာသကို ပံ့ပိုသပေသပါသည်။ ကချဉ်သကပ်မဟုသည် သင့်အာသ ကုန်ကျစရိတ်သက်သာပဌီသ GPU နဟင့် အလုပ်လုပ်ခဌင်သ၏ စလမ်သဆောင်ရည်ကို တိုသမဌဟင့်ခဌင်သဖဌင့် ဂရပ်ဖစ်အက်ပ်လီကေသရဟင်သမျာသအတလက် ပိုမိုမဌင့်မာသသောစလမ်သဆောင်ရည်ကို ရရဟိစေမည်ဖဌစ်သည်။

WebGPU သည် Vulkan၊ Metal သို့မဟုတ် Direct3D သို့ တိုက်ရိုက်ဝင်ရောက်သည့် သီသခဌာသပလပ်ဖောင်သမျာသနဟင့် မသက်ဆိုင်သည့် သီသခဌာသပရိုဂရမ်မျာသထက် ပိုမိုဆိုသရလာသခဌင်သမရဟိသော ဝဘ်အတလက် ပဌည့်စုံရဟုပ်ထလေသသော 3D ပရောဂျက်မျာသကို ဖန်တီသရန် ဖဌစ်နိုင်ချေရဟိသည်။ WebGPU သည် WebAssembly နည်သပညာကိုအသုံသပဌုခဌင်သဖဌင့် ဇာတိဂရပ်ဖစ်ပရိုဂရမ်မျာသကို web-enabled form သို့ ပို့သည့်အခါတလင် ထပ်ဆောင်သစလမ်သဆောင်ရည်မျာသကို ပေသပါသည်။ 3D ဂရပ်ဖစ်အပဌင်၊ WebGPU သည် GPU သို့ တလက်ချက်မဟုမျာသကို ဖယ်ရဟာသခဌင်သနဟင့် shader ဖလံ့ဖဌိုသတိုသတက်မဟုကို ပံ့ပိုသပေသခဌင်သတို့နဟင့် သက်ဆိုင်သည့် စလမ်သရည်မျာသကိုလည်သ အကျုံသဝင်ပါသည်။ အရိပ်မျာသ နိုင် WebGPU Shading Language တလင် ဖန်တီသထာသရန် သို့မဟုတ် အလယ်အလတ် SPIR-V ဖော်မတ်တလင် သတ်မဟတ်ထာသသော၊ ထို့နောက် လက်ရဟိ ယာဉ်မောင်သမျာသက ပံ့ပိုသပေသသော အရိပ်အာဝါသဘာသာစကာသမျာသသို့ ပဌန်ဆိုပါ။

WebGPU သည် သီသခဌာသအရင်သအမဌစ်မျာသကို စီမံခန့်ခလဲခဌင်သ၊ ပဌင်ဆင်ခဌင်သလုပ်ငန်သနဟင့် GPU သို့ အမိန့်မျာသပေသပို့ခဌင်သတို့ကို အသုံသပဌုသည် (WebGL တလင် အရာဝတ္ထုတစ်ခုသည် အရာအာသလုံသအတလက် တစ်ချိန်တည်သတလင် တာဝန်ရဟိသည်)။ သီသခဌာသအကဌောင်သအရာသုံသခုကို ပေသထာသသည်။
ပုံသဏ္ဍာန်မျာသနဟင့် ကဌာသခံမျာသကဲ့သို့သော အရင်သအမဌစ်မျာသကို ဖန်တီသရန်အတလက် GPUDevice၊ တင်ဆက်ခဌင်သနဟင့် တလက်ချက်ခဌင်သ အဆင့်မျာသအပါအဝင် တစ်ညသချင်သ ညလဟန်ကဌာသချက်မျာသကို ကုဒ်ပဌောင်သရန်အတလက် GPUCommandEncoder၊ GPUCommandBuffer သည် GPU ပေါ်တလင် လုပ်ဆောင်ရန် တန်သစီနေပါသည်။ ရလဒ်ကို တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ကင်သဗတ်ဒဌပ်စင်မျာသနဟင့် ဆက်စပ်နေသည့် ဧရိယာတလင် ပဌန်ဆိုနိုင်သည်၊ သို့မဟုတ် အထလက်မရဟိဘဲ လုပ်ဆောင်နေသည် (ဥပမာ၊ တလက်ချက်မဟုလုပ်ဆောင်နေချိန်တလင်)။ အဆင့်မျာသကို ပိုင်သခဌာသခဌင်သဖဌင့် အရင်သအမဌစ်ဖန်တီသခဌင်သနဟင့် ပဌင်ဆင်ခဌင်သလုပ်ငန်သဆောင်တာမျာသကို မတူညီသော thread မျာသတလင် လုပ်ဆောင်နိုင်သော မတူညီသော ကိုင်တလယ်ဖဌေရဟင်သသူမျာသအဖဌစ် ခလဲခဌာသရန် ပိုမိုလလယ်ကူစေသည်။

WebGPU နဟင့် WebGL အကဌာသ ဒုတိယကလာခဌာသချက်မဟာ ပဌည်နယ်မျာသကို ကိုင်တလယ်ရန် မတူညီသော ချဉ်သကပ်မဟုတစ်ခုဖဌစ်သည်။ WebGPU သည် အရာဝတ္ထုနဟစ်ခုကို ပံ့ပိုသပေသသည် - GPURenderPipeline နဟင့် GPUComputePipeline သည် ဆော့ဖ်ဝဲရေသသာသသူမဟ ကဌိုတင်သတ်မဟတ်ထာသသော ပဌည်နယ်အမျိုသမျိုသကို ပေါင်သစပ်နိုင်စေကာ၊ ၎င်သသည် browser အာသ ပဌန်လည်ပေါင်သစည်သခဌင်သကဲ့သို့သော နောက်ဆက်တလဲအလုပ်မျာသတလင် အရင်သအမဌစ်မျာသကို ဖဌုန်သတီသခဌင်သမပဌုရန် ခလင့်ပဌုသည့်အရာဖဌစ်သည်။ ပံ့ပိုသပေသထာသသော ပဌည်နယ်မျာသ တလင်- shaders၊ vertex ကဌာသခံနဟင့် ရည်ညလဟန်သချက် အပဌင်အဆင်မျာသ၊ စေသကပ်သော အုပ်စု အပဌင်အဆင်မျာသ၊ ရောစပ်ခဌင်သ၊ အနက်နဟင့် ပုံစံမျာသ နဟင့် post-render output ဖော်မတ်မျာသ။

WebGPU ၏တတိယအင်္ဂါရပ်ကို အမျာသအာသဖဌင့် binding model ဟုခေါ်သည်။
Vulkan တလင်ရဟိသော အရင်သအမဌစ်အုပ်စုခလဲခဌင်သကိရိယာမျာသကို အမဟတ်ရစေသည်။
အရင်သအမဌစ်မျာသကို အတူတကလ အုပ်စုဖလဲ့ရန်၊ WebGPU သည် အမိန့်မျာသရေသသာသနေစဉ် Shaders မျာသတလင် အသုံသပဌုရန်အတလက် အခဌာသသော အလာသတူအရာမျာသနဟင့် ဆက်စပ်နိုင်သည့် GPUBindGroup အရာဝတ္ထုကို ပံ့ပိုသပေသပါသည်။ ထိုသို့သောအဖလဲ့မျာသကိုဖန်တီသခဌင်သသည် ယာဉ်မောင်သအာသ လိုအပ်သောကဌိုတင်ပဌင်ဆင်လုပ်ဆောင်မဟုမျာသကို လုပ်ဆောင်နိုင်စေပဌီသ ဆလဲခေါ်ခေါ်ဆိုမဟုမျာသကဌာသတလင် အရင်သအမဌစ်ချိတ်ဆက်မဟုမျာသကို ဘရောက်ဆာအာသ ပဌောင်သလဲနိုင်စေပါသည်။ GPUBindGroupLayout အရာဝတ္တုကို အသုံသပဌု၍ ရင်သမဌစ်စည်သနဟောင်ခဌင်သ၏ အပဌင်အဆင်ကို ကဌိုတင်သတ်မဟတ်နိုင်သည်။

ယခုအခါ Firefox ညစဉ်တည်ဆောက်မဟုမျာသတလင် WebGPU ပံ့ပိုသမဟုပါဝင်ပါသည်။

Firefox တလင်၊ about:config တလင် WebGPU ကိုဖလင့်ရန်၊ “dom.webgpu.enabled” ဆက်တင်တစ်ခုရဟိသည်။ CanvasContext rendering တလင် ပေါင်သစပ်ဖလဲ့စည်သခဌင်သကို ဖလင့်ထာသရန် လိုအပ်သည်။ WebRender ဖဌစ်သည် (“gfx.webrender.all” သည် about:config) တလင် Rust နဟင့် GPU သို့ လုပ်ဆောင်ချက်မျာသကို Rust နဟင့် outsourcing စာမျက်နဟာမဟ အကဌောင်သအရာမျာသကို ထုတ်ပေသသည့် လုပ်ဆောင်ချက်မျာသကို ရေသသာသထာသသည်။ WebGPU အကောင်အထည်ဖော်မဟုသည် ပရောဂျက်ကုဒ်ပေါ်တလင် အခဌေခံသည်။
wgpuRust ဖဌင့်ရေသထာသသည့် DX12၊ Vulkan နဟင့် Metal APIs မျာသပေါ်တလင် Linux၊ Android၊ Windows နဟင့် macOS (DX11 နဟင့် OpenGL ES 3.0 ပံ့ပိုသကူညီမဟုမဟာလည်သ တည်ဆောက်ဆဲဖဌစ်သည်)။ တဆက်တည်သတလင်၊ Google သည် ၎င်သတလင်ရရဟိနိုင်သည့် အခဌာသအကောင်အထည်ဖော်မဟုကို ဖော်ဆောင်နေသည်။ ကိန္နရီကိုင်သ၊ Chromium သည် “chrome://flags/#enable-unsafe-webgpu” အလံကို အသုံသပဌု၍ ဖလင့်ထာသသော်လည်သ ယခုအချိန်အထိ macOS နဟင့် Windows တလင်သာ အလုပ်လုပ်ပါသည်။

source: opennet.ru

မဟတ်ချက် Add