ሞዚላ በፋየርፎክስ ውስጥ የWebGPU API እና WGSL (WebGPU Shading Language) ድጋፍን ለማንቃት ወስኗል። Windows የዌብጂፒዩ ድጋፍ በፋየርፎክስ 141 በነባሪነት ይነቃል፣ ለጁላይ 22 ታቅዷል። ከዚያም የዌብጂፒዩ ድጋፍ በሚቀጥሉት ወራት ውስጥ በግንባታዎች ውስጥ እንዲነቃ ታቅዷል፡ Linux и macOSእና ለተወሰነ ጊዜ በመድረኩ ስሪት ውስጥ ከተወሰነ ጊዜ በኋላ AndroidWebGPUን በእጅ ለማንቃት፣ በabout:config ገጽ ላይ ያሉትን "dom.webgpu.enabled" እና "gfx.webrender.all" መለኪያዎችን መጠቀም ይችላሉ።
በChrome ውስጥ የዌብጂፒዩ ድጋፍ በነባሪነት በስሪት 113 ቀርቧል፣ በግንቦት 2023 ተለቀቀ። በSafari፣ WebGPU ድጋፍ በዚህ ውድቀት በነባሪነት እንዲነቃ ታቅዷል (የሙከራ ድጋፍ ከኖቬምበር 2021 ጀምሮ ይገኛል።) በፋየርፎክስ፣ የሙከራ WebGPU ድጋፍ ከ2020 ጀምሮ ነበር፣ነገር ግን በነባሪነት የነቃው በምሽት የፋየርፎክስ ግንባታዎች ነው። የፋየርፎክስ ዌብጂፒዩ አተገባበር በሩስት የተፃፈ እና በDirect3D 12፣Vulkan፣OpenGL እና Metal ግራፊክስ ኤፒአይዎች ላይ መስራት በሚችል የWGPU ፕሮጀክት ኮድ ላይ የተመሰረተ ነው።
WebGPU በጂፒዩ በኩል ስራዎችን ለማከናወን ከVulkan፣ Metal እና Direct3D 12 ጋር ተመሳሳይ የሆነ ኤፒአይ ይሰጣል። ከ3-ል ግራፊክስ በተጨማሪ ዌብጂፒዩ ስሌቶችን ወደ ጂፒዩ ጎን ከማውረድ እና ሼዶችን ከማስፈጸም ጋር የተያያዙ አቅሞችን ይሸፍናል። በፅንሰ-ሀሳብ፣ WebGPU ከድሮው የዌብጂኤል መመዘኛ የሚለየው የVulkan ግራፊክስ ኤፒአይ ከOpenGL በሚለይበት መንገድ ነው። በተመሳሳይ ጊዜ, WebGPU በተወሰነ ግራፊክስ ኤፒአይ ላይ የተመሰረተ አይደለም, ነገር ግን በ Vulkan, Metal, እና Direct3D ውስጥ የሚገኙትን ተመሳሳይ ዝቅተኛ-ደረጃ ፕሪሚተሮችን የሚጠቀም ሁለንተናዊ ንብርብር ነው.
WebGPU የጃቫ ስክሪፕት አፕሊኬሽኖች አደረጃጀትን፣ ሂደትን እና ትእዛዞችን ወደ ጂፒዩ እንዲያስተላልፉ እና ተያያዥ ግብዓቶችን፣ ማህደረ ትውስታን፣ ማቋቋሚያዎችን፣ የሸካራነት ዕቃዎችን እና የተጠናቀሩ የግራፊክስ ሼዶችን እንዲያስተዳድሩ ያስችላቸዋል። ይህ አካሄድ የግራፊክስ አፕሊኬሽኖች ከፍተኛ አፈፃፀምን ከከፍተኛ ወጪ በመቀነስ እና ከጂፒዩ ጋር አብሮ የመስራትን ቅልጥፍናን በማሳደግ ያስችላል።
በዌብጂፒዩ፣ መድረክ-አግኖስቲክ፣ ውስብስብ 3-ል ፕሮጄክቶችን የሚሠሩ እንዲሁም ቩልካን፣ ሜታል ወይም ዳይሬክት 3Dን በቀጥታ የሚጠቀሙ ገለልተኛ ፕሮግራሞችን መፍጠር ይችላሉ። WebGPU በተጨማሪ የአገሬው ግራፊክስ ፕሮግራሞችን በአሳሽ ውስጥ ወደሚሰራ ፎርም ለማስተላለፍ ተጨማሪ ችሎታዎችን ይሰጣል፣ ወደ WebAssembly በማጠናቀር።
የWebGPU ቁልፍ ባህሪያት እና ከWebGL ልዩነቶች፡-
- የሃብት የተለየ አስተዳደር, የዝግጅት ስራ እና ትዕዛዞችን ወደ ጂፒዩ ማስተላለፍ (በ WebGL ውስጥ, አንድ ነገር በአንድ ጊዜ ሁሉንም ነገር ተጠያቂ ነበር). ሶስት የተለያዩ አውዶች ቀርበዋል፡ የጂፒዩ መሳሪያ እንደ ሸካራማነቶች እና ቋት ያሉ ሃብቶችን ለመፍጠር፤ ጂፒዩ ኮማንድኢንኮደር የግለሰቦችን ትዕዛዞች ለመቀየስ፣ የአተረጓጎም እና ስሌት ደረጃዎችን ጨምሮ፤ GPUCommandBuffer ወደ ጂፒዩ አሂድ ወረፋ ለማለፍ። ውጤቱ ከአንድ ወይም ከዛ በላይ የሸራ አባለ ነገሮች ጋር በተዛመደ አካባቢ ወይም ያለ ውፅዓት (ለምሳሌ የስሌት ስራዎችን ሲሰራ) ሊሰራ ይችላል። የደረጃዎች መለያየት የሃብት ፈጠራ እና አቅርቦት ስራዎችን በተለያዩ ክሮች ላይ ሊሰሩ ወደሚችሉ የተለያዩ ተቆጣጣሪዎች መለየት ቀላል ያደርገዋል።
- ግዛቶችን ለማስተናገድ የተለየ አቀራረብ። WebGPU ሁለት ነገሮችን ያቀርባል - GPURenderPipeline እና GPUComputePipeline, ይህም በገንቢው አስቀድሞ የተገለጹ የተለያዩ ግዛቶችን እንዲያዋህዱ ያስችልዎታል, ይህም አሳሹ ተጨማሪ ስራዎችን እንደ ሼዶችን እንደገና በማሰባሰብ ላይ ያለውን ሃብት እንዳያባክን ያስችለዋል. የሚደገፉ ግዛቶች የሚከተሉትን ያካትታሉ፡ ሼዶች፣ የቬርቴክስ ቋት እና የባህሪ አቀማመጦች፣ ተለጣፊ የቡድን አቀማመጦች፣ ቅልቅል፣ ጥልቀት እና ቅጦች፣ የድህረ-ምርት ውፅዓት ቅርጸቶች።
- አስገዳጅ ሞዴል፣ ልክ እንደ ቩልካን ሃብት ማሰባሰቢያ መሳሪያዎች። ሃብቶችን በቡድን ለመመደብ ዌብጂፒዩ የጂፒዩቢንድ ግሩፕ ነገርን ያቀርባል፣ ይህም ትዕዛዞችን በሚጽፉበት ጊዜ፣ በሻደር ውስጥ ጥቅም ላይ የሚውሉ ሌሎች ተመሳሳይ ነገሮች ጋር ሊገናኝ ይችላል። እንደነዚህ ያሉ ቡድኖችን መፍጠር ነጂው አስፈላጊውን የዝግጅት እርምጃዎችን አስቀድሞ እንዲፈጽም ያስችለዋል, እና አሳሹ በፍጥነት በመሳል ጥሪዎች መካከል ያለውን የንብረት ትስስር እንዲቀይር ያስችለዋል. የግብአት ማሰሪያዎች አቀማመጥ የጂፒዩቢንድGroupLayout ነገርን በመጠቀም አስቀድሞ ሊገለጽ ይችላል።
ምንጭ: opennet.ru
