فائر فاڪس رات جي تعمير ۾ هاڻي شامل آهي WebGPU سپورٽ

В رات فائر فاکس ٺاهي ٿو ظاهر ٿيو وضاحت جي حمايت ويب پي پي يو، جيڪو 3D گرافڪس پروسيسنگ ۽ GPU-سائيڊ ڪمپيوٽنگ لاءِ پروگرامنگ انٽرفيس مهيا ڪري ٿو، تصوراتي طور تي API سان ملندڙ جلندڙ ٻرندڙ جبل, ڌاتو и سڌو 3 ڊي 12. وضاحت موزيلا، گوگل، ايپل، مائڪروسافٽ ۽ ڪميونٽي جي ميمبرن پاران ترقي ڪئي پئي وڃي ڪم ڪندڙ گروپW3C تنظيم پاران ٺاهي وئي.

WebGPU جو اهم مقصد ويب پليٽ فارم لاءِ هڪ محفوظ، صارف دوست، پورٽبل، ۽ اعليٰ ڪارڪردگي وارو پروگرامنگ انٽرفيس مهيا ڪرڻ آهي ته جيئن جديد سسٽم گرافڪس APIs پاران مهيا ڪيل 3D گرافڪس ٽيڪنالاجيز ۽ صلاحيتون، جيئن ته Direct3D 12 تي Windows، Metal. MacOS تي، ۽ Vulkan لينڪس تي. تصوراتي طور تي، WebGPU WebGL کان گهڻو ئي مختلف آهي جيئن Vulkan OpenGL کان مختلف آهي، ۽ ساڳئي وقت اهو هڪ مخصوص گرافڪس API تي ٻڌل ناهي، پر هڪ آفاقي پرت آهي جيڪا عام طور تي استعمال ڪري ٿي ساڳئي گهٽ-سطح جي پراڻين کي استعمال ڪري ٿو Vulkan، ڌاتو ۽ Direct3D.

WebGPU جاوا اسڪرپٽ ايپليڪيشنون مهيا ڪري ٿو هيٺين سطح جي ڪنٽرول سان تنظيم، پروسيسنگ، ۽ GPU کي حڪمن جي منتقلي، لاڳاپيل وسيلن کي منظم ڪرڻ، ميموري، بفرز، ٽيڪسچر آبجڪس، ۽ مرتب ڪيل گرافڪس شيڊرز. اهو طريقو توهان کي گرافڪس ايپليڪيشنن لاءِ اعليٰ ڪارڪردگي حاصل ڪرڻ جي اجازت ڏئي ٿو اوور هيڊ خرچن کي گهٽائڻ ۽ GPU سان ڪم ڪرڻ جي ڪارڪردگي کي وڌائڻ سان.

WebGPU ويب لاءِ مڪمل پيچيده 3D پروجيڪٽ ٺاهڻ ممڪن بڻائي ٿو جيڪي اسٽينڊل پروگرامن کان وڌيڪ خراب ڪم ڪن ٿيون جيڪي سڌو سنئون Vulkan، Metal يا Direct3D تائين رسائي ڪن ٿيون، پر مخصوص پليٽ فارمن سان ڳنڍيل نه آهن. WebGPU اضافي صلاحيتون پڻ مهيا ڪري ٿو جڏهن مقامي گرافڪس پروگرامن کي ويب-فعال فارم ۾ پورٽ ڪندي WebAssembly ٽيڪنالاجي جي استعمال ذريعي. 3D گرافڪس کان علاوه، WebGPU ۾ GPU جي حساب سان آف لوڊ ڪرڻ ۽ شيڊر ڊولپمينٽ کي سپورٽ ڪرڻ سان لاڳاپيل صلاحيتون پڻ شامل آھن. ڇنڊڇاڻ ٿي سگهي ٿو WebGPU شيڊنگ لئنگئيج ۾ ٺاهيو وڃي يا انٽرميڊيٽ SPIR-V فارميٽ ۾ بيان ڪيو وڃي، ۽ پوءِ موجوده ڊرائيورن جي مدد سان شيڊر ٻولين ۾ ترجمو ڪيو وڃي.

WebGPU وسيلن جي الڳ انتظام، تياري واري ڪم، ۽ GPU ڏانهن حڪمن جي منتقلي کي استعمال ڪري ٿو (WebGL ۾، هڪ اعتراض هڪ ڀيرو هر شيء لاء ذميوار هو). ٽي الڳ الڳ حوالا ڏنا ويا آهن:
GPU ڊوائيس وسيلن ٺاهڻ لاءِ جيئن ته بناوت ۽ بفر؛ انفرادي حڪمن کي انڪوڊنگ ڪرڻ لاءِ GPUCommandEncoder، بشمول رينڊرنگ ۽ حساب جي مرحلن؛ GPUCommandBuffer کي GPU تي عمل ڪرڻ لاءِ قطار ۾ رکيو وڃي. نتيجو هڪ يا وڌيڪ ڪينوس عناصر سان لاڳاپيل علائقي ۾ پيش ڪري سگهجي ٿو، يا بغير بغير پروسيس ڪيو ويو (مثال طور، جڏهن ڪمپيوٽ ڪمن کي هلائڻ). مرحلن کي الڳ ڪرڻ آسان بڻائي ٿو وسيلن جي ٺاھڻ ۽ تياري جي عملن کي مختلف ھٿيارن ۾ الڳ ڪرڻ جيڪي مختلف موضوعن تي هلائي سگھن ٿا.

WebGPU ۽ WebGL جي وچ ۾ ٻيو فرق رياستن کي سنڀالڻ لاءِ مختلف طريقو آهي. WebGPU ٻه شيون پيش ڪري ٿو - GPURenderPipeline ۽ GPUComputePipeline، جيڪي توهان کي ڊولپر پاران اڳ بيان ڪيل مختلف رياستن کي گڏ ڪرڻ جي اجازت ڏين ٿيون، جيڪا برائوزر کي اجازت ڏئي ٿي ته اضافي ڪم تي وسيلن کي ضايع نه ڪري، جهڙوڪ شيڊر کي ٻيهر ترتيب ڏيڻ. سپورٽ ٿيل رياستن ۾ شامل آهن: شيڊرز، ورٽيڪس بفر ۽ انتساب لي آئوٽ، اسٽڪي گروپ لي آئوٽ، بلڊنگ، گہرا ۽ نمونا، ۽ پوسٽ رينڈر آئوٽ پٽ فارميٽ.

WebGPU جي ٽئين خصوصيت کي بائنڊنگ ماڊل سڏيو ويندو آهي، گهڻو ڪري
Vulkan ۾ موجود وسيلن جي گروپ سازي جي اوزار جي ياد ڏياريندڙ.
وسيلن کي گڏ ڪرڻ لاءِ، WebGPU هڪ GPUBindGroup اعتراض مهيا ڪري ٿو، جيڪو ڪمانڊ لکڻ دوران شيڊرز ۾ استعمال لاءِ ٻين ساڳين شين سان لاڳاپيل ٿي سگهي ٿو. اهڙن گروپن کي ٺاهڻ ڊرائيور کي ضروري تياري واري عمل کي اڳ ۾ ئي انجام ڏيڻ جي اجازت ڏئي ٿو، ۽ برائوزر کي اجازت ڏئي ٿو ته ريسورس بائنڊنگ کي ڊرائنگ ڪالن جي وچ ۾ تمام تيزيءَ سان تبديل ڪري. وسيلن جي پابندن جي ترتيب کي GPUBindGroupLayout اعتراض استعمال ڪندي اڳواٽ بيان ڪري سگھجي ٿو.

فائر فاڪس رات جي تعمير ۾ هاڻي شامل آهي WebGPU سپورٽ

فائر فاڪس ۾، WebGPU کي اٽڪل:config ۾ فعال ڪرڻ لاء، اتي "dom.webgpu.enabled" سيٽنگ آهي. CanvasContext رينڊرنگ کي پڻ ڪمپوزنگ کي فعال ڪرڻ جي ضرورت آھي ويب رینڈر (“gfx.webrender.all” in about:config) ۾ لکيل آهي Rust ۽ آئوٽ سورسنگ پيج مواد رينڊرنگ آپريشنز GPU ڏانهن. WebGPU عملدرآمد پروجيڪٽ ڪوڊ تي ٻڌل آهي
wgpu, Rust ۾ لکيل آهي ۽ DX12 جي چوٽي تي هلڻ جي قابل آهي، لينڪس، Android، ونڊوز ۽ macOS تي Vulkan ۽ Metal APIs (DX11 ۽ OpenGL ES 3.0 سپورٽ پڻ ترقي ۾ آهي). متوازي طور تي، گوگل هڪ ٻيو عمل درآمد ڪري رهيو آهي، جنهن ۾ موجود آهي ڪينري شاخ Chromium ۽ "chrome://flags/#enable-unsafe-webgpu" پرچم استعمال ڪندي فعال ڪيو ويو، پر اڃا تائين صرف MacOS ۽ ونڊوز تي ڪم ڪري ٿو.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو