غالبًا ما يتم اعتبار WebGPU على أنها واجهة برمجة تطبيقات لرسومات الويب تمنح الوصول الموحّد والسريع إلى وحدات معالجة الرسومات من خلال إظهار إمكانيات الأجهزة المتطورة وتفعيل عمليات العرض والحوسبة على وحدة معالجة الرسومات، تمامًا مثل Direct3D 12 وMetal وVulkan.
ومع ذلك، تتجاوز WebGPU حدود واجهة برمجة التطبيقات JavaScript البسيطة، فهي لبنة أساسية تشبه WebAssembly، ولها تداعيات تمتد إلى ما بعد الويب بسبب منظومتها المتكاملة المتزايد. يعلم فريق Chrome أنّ WebGPU هي أكثر من مجرد تكنولوجيا ويب، فهي منظومة متكاملة مزدهرة تتمحور حول تقنية أساسية.
استكشاف المنظومة المتكاملة الحالية
تبدأ المسيرة بمواصفات JavaScript، وهي جهود تعاونية تشمل عدة مؤسسات مثل Apple وGoogle وIntel وMozilla وMicrosoft. في الوقت الحالي، تستخدم جميع متصفحات الويب الرئيسية WebGPU أو تعمل حاليًا على تنفيذ هذه الواجهة.
في الوقت نفسه، تعرّفت Mozilla وGoogle على إمكانات WebGPU في التطبيقات الخاصة بالنظام الأساسي وفصلت عمليات تنفيذ WebGPU عن المتصفّحات، ما يتيح الاستخدام المستقل.
بالنسبة إلى Chrome، حدث هذا على هيئة Dawn، وهي مكتبة C/C++ تترجم طلبات WebGPU إلى أوامر برنامج تشغيل وحدة معالجة الرسومات. يعمل Dawn على تمكين تطبيقات C وC++ من استخدام WebGPU على أرض الواقع، ما يوفّر تجربة رسومات متنقلة ومريحة على وحدة معالجة الرسومات باستخدام خبرة مورّدي المتصفِّح.
كما هو موضّح في مشاركة المدونة WebGPU: واجهة برمجة التطبيقات للرسومات التي تعمل على عدّة منصات في المستقبل، من السهل نقل تطبيق WebGPU الخاص بالنظام الأساسي إلى الويب. إنّ Emscripten، وهي سلسلة أدوات C++ WebAssembly، تتوافق حاليًا مع WebGPU، ولا تتطلّب سوى تعديلات بسيطة لنقلها إلى الويب.
يمكنك أيضًا تشغيل رمز JavaScript WebGPU خارج المتصفِّح باستخدام وقت تشغيل JavaScript Node.js لأنه يتضمّن وحدة WebGPU مستندة إلى الفجر. وهي تتيح لك تشغيل التعليمة البرمجية بدون إجراء تعديلات من جانب الخادم أو في سياقات أخرى خاصة بنظام التشغيل.
توجد منظومة متكاملة مشابهة لنظام Rust مع wgpu، وهو تنفيذ في Firefox لـ WebGPU. يمكن دمج Wgpu مباشرةً في تطبيقات Rust، والتي يمكن نقلها بعد ذلك إلى الويب باستخدام web-sys. بالإضافة إلى ذلك، يتوافق وقت تشغيل Deno JavaScript مع WebGPU من خلال wgpu. يمكنك الاطّلاع على مشاركة المدونة تحالف wgpu مع Deno.
ينشئ هذا نظامًا بيئيًا موازيًا بين Rust وC++ كما هو موضح في الرسم التخطيطي التالي.
الآفاق الناشئة
تمتدّ منظومة WebGPU المتكاملة لتشمل نطاقات JavaScript وC++ وRus.
قد يكون للغة البرمجة المفضلة لديك روابط بالفعل لـ WebGPU، حيث يعمل المهندسون الذين يعملون على تطبيقات WebGPU أيضًا على تطوير عنوان C شائع لـ WebGPU. ويمكن استخدام ذلك لاستهداف Dawn وwgpu وغيرهما، ما يسهِّل عملية إنشاء عمليات الربط للغات باستخدام FFI.
ويدرس فريق Chrome أيضًا استخدام Dawn كخلفية العرض التلقائية لجميع عناصر واجهة مستخدم المتصفح، بما في ذلك القوائم وأشرطة الأدوات وأدوات المطوّرين ومحتوى الويب. وسيؤدّي ذلك إلى إلغاء الحاجة إلى تنفيذ عمليات عرض منفصلة لكل واجهة برمجة تطبيقات أصلية، ما يؤدي إلى تبسيط عملية التطوير. هذه الميزة حاليًا في المرحلة التجريبية على نظامي التشغيل macOS وWindows وراء العلامة chrome://flags/#skia-graphite
.
شكر وتقدير
صورة رئيسية من تصوير دانيال أوبيرغ في موقع Unسبلاش