WebGPU سپورٹ فائر فاکس نائٹ بلڈز میں شامل کر دی گئی ہے۔

В رات کو فائر فاکس بناتا ہے۔ نمودار ہوا تفصیلات کی حمایت ویب جی پی یو، جو 3D گرافکس پروسیسنگ اور GPU-سائیڈ کمپیوٹنگ کے لیے ایک پروگرامنگ انٹرفیس فراہم کرتا ہے، تصوراتی طور پر API سے ملتا جلتا ہے۔ آتش فشاں, دھاتی и ڈائریکٹ 3 ڈی 12۔. تفصیلات موزیلا، گوگل، ایپل، مائیکروسافٹ اور کمیونٹی ممبران کی طرف سے تیار کی جا رہی ہیں۔ کام کرنے والا گروہ، W3C تنظیم کے ذریعہ تخلیق کیا گیا ہے۔

WebGPU کا کلیدی ہدف ویب پلیٹ فارم کے لیے ایک محفوظ، صارف دوست، پورٹیبل، اور اعلیٰ کارکردگی کا پروگرامنگ انٹرفیس فراہم کرنا ہے تاکہ جدید سسٹم گرافکس API کے ذریعے فراہم کردہ 3D گرافکس ٹیکنالوجیز اور صلاحیتوں کا فائدہ اٹھایا جا سکے، جیسے کہ Windows، Metal پر Direct3D 12۔ میکوس پر، اور لینکس پر ولکن۔ تصوراتی طور پر، WebGPU WebGL سے بالکل اسی طرح مختلف ہے جس طرح Vulkan OpenGL سے مختلف ہے، اور ساتھ ہی یہ کسی مخصوص گرافکس API پر مبنی نہیں ہے، بلکہ یہ ایک عالمگیر پرت ہے جو عام طور پر وولکان میں پائے جانے والے اسی نچلے درجے کی قدیم چیزوں کو استعمال کرتی ہے۔ میٹل اور ڈائریکٹ 3D۔

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 کی تیسری خصوصیت کو بائنڈنگ ماڈل کہا جاتا ہے، بڑے پیمانے پر
ولکن میں موجود ریسورس گروپنگ ٹولز کی یاد تازہ کرتا ہے۔
وسائل کو ایک ساتھ گروپ کرنے کے لیے، WebGPU ایک GPUBindGroup آبجیکٹ فراہم کرتا ہے، جو کمانڈز لکھتے وقت شیڈرز میں استعمال کے لیے اسی طرح کی دیگر اشیاء کے ساتھ منسلک کیا جا سکتا ہے۔ اس طرح کے گروپس بنانے سے ڈرائیور کو پہلے سے ضروری تیاری کی کارروائیاں کرنے کی اجازت ملتی ہے، اور براؤزر کو قرعہ اندازی کالوں کے درمیان وسائل کی پابندیوں کو بہت تیزی سے تبدیل کرنے کی اجازت دیتا ہے۔ ریسورس بائنڈنگز کی ترتیب کو GPUBindGroupLayout آبجیکٹ کا استعمال کرتے ہوئے پہلے سے طے کیا جا سکتا ہے۔

WebGPU سپورٹ فائر فاکس نائٹ بلڈز میں شامل کر دی گئی ہے۔

Firefox میں WebGPU کو about:config میں فعال کرنے کے لیے، "dom.webgpu.enabled" کی ترتیب موجود ہے۔ CanvasContext رینڈرنگ کے لیے بھی کمپوزٹنگ کو فعال کرنے کی ضرورت ہوتی ہے۔ ویب رینڈر۔ ("gfx.webrender.all" about:config) میں لکھا گیا ہے، Rust اور آؤٹ سورسنگ صفحہ کے مواد کو GPU میں پیش کرنے کے آپریشنز۔ WebGPU کا نفاذ پروجیکٹ کوڈ پر مبنی ہے۔
wgpu, Rust میں لکھا ہوا ہے اور Linux، Android، Windows اور macOS پر DX12، Vulkan اور Metal APIs کے اوپر چلنے کے قابل ہے (DX11 اور OpenGL ES 3.0 سپورٹ بھی ترقی میں ہے)۔ متوازی طور پر، گوگل ایک اور نفاذ تیار کر رہا ہے، جو کہ میں دستیاب ہے۔ کینری برانچ Chromium اور "chrome://flags/#enable-unsafe-webgpu" پرچم کا استعمال کرتے ہوئے فعال کیا گیا ہے، لیکن اب تک صرف macOS اور Windows پر کام کرتا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں