تاريخ النشر: 9 نوفمبر 2023، تاريخ آخر تعديل: 16 سبتمبر 2025
يُنظر إلى 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، وهي سلسلة أدوات WebAssembly للغة C++، مع WebGPU، ولا يتطلّب سوى تعديلات بسيطة لنقله إلى الويب.
يمكنك أيضًا تشغيل رمز JavaScript WebGPU خارج المتصفّح باستخدام وقت تشغيل JavaScript في Node.js لأنّه يتضمّن وحدة WebGPU تستند إلى Dawn. تتيح لك هذه الميزة تشغيل الرمز بدون تعديلات من جهة الخادم أو في سياقات أخرى خاصة بالمنصة.
تتوفّر منظومة متكاملة مشابهة للغة Rust مع wgpu، وهي عملية تنفيذ WebGPU في Firefox. يمكن دمج Wgpu مباشرةً في تطبيقات Rust، والتي يمكن بعد ذلك نقلها إلى الويب باستخدام web-sys. بالإضافة إلى ذلك، يتيح وقت تشغيل JavaScript في Deno استخدام WebGPU من خلال wgpu. يمكنك الاطّلاع على مشاركة المدونة تحالف wgpu مع Deno.
يؤدي ذلك إلى إنشاء نظام بيئي موازٍ بين Rust وC++ كما هو موضّح في الرسم التخطيطي التالي.
آفاق جديدة
تتجاوز منظومة WebGPU المتكاملة نطاق JavaScript وC++ وRust.
قد تتضمّن لغة البرمجة المفضّلة لديك حاليًا روابط لواجهة WebGPU، لأنّ المهندسين الذين يعملون على عمليات تنفيذ WebGPU يطوّرون أيضًا عنوان C مشتركًا لواجهة WebGPU. ويمكن استخدام ذلك لاستهداف Dawn وwgpu وغيرها، ما يسهّل إنشاء روابط للغات باستخدام FFI في لغة C.
يفكّر فريق Chrome أيضًا في استخدام Dawn كبرنامج الخلفية التلقائي للعرض لجميع عناصر واجهة مستخدم المتصفّح، بما في ذلك القوائم وأشرطة الأدوات وأدوات المطوّرين ومحتوى الويب. سيؤدي ذلك إلى إلغاء الحاجة إلى عمليات تنفيذ عرض منفصلة لكل واجهة برمجة تطبيقات أصلية، ما يسهّل عملية التطوير. هذه الميزة في مرحلة تجريبية على نظامَي التشغيل macOS وWindows، ويمكن تفعيلها باستخدام العلامة chrome://flags/#skia-graphite.