الميزات الجديدة في WebGPU (Chrome 122)

François Beaufort
François Beaufort

قد يبدو عدد ميزات WebGPU قليلاً هذه المرة، ولكن هناك تحسينات كبيرة على وشك الظهور. ستتضمّن الإصدارات التالية ميزات مثل DP4a، ونسيج التخزين للقراءة فقط والقراءة والكتابة، والتحكّم المنفصل في جانبَي الاستنسل والعمق، والعرض على شرائح نسيج ثلاثي الأبعاد، وتحسينات على تجميع التظليل.

في هذه الأثناء، تعرَّف على كيفية تعزيز اختبار نموذج الذكاء الاصطناعي على الويب باستخدام WebGPU وتوافق WebGL في Chrome بلا واجهة مستخدم رسومية وسبب إيقاف WebGPU أو عدم عمله في Chrome.

توسيع نطاق الوصول باستخدام وضع التوافق (ميزة قيد التطوير)

يتوافق WebGPU بشكلٍ جيد مع واجهات برمجة التطبيقات الحديثة للرسومات (Vulkan وMetal وD3D12)، ولكن بعض الأجهزة لا تتوافق معها. يحدّ ذلك من إمكانية الوصول إلى WebGPU، خاصةً على منصات مثل Windows (لا يتوفّر D3D11.1+ لدى% 31 من مستخدمي Chrome)، وAndroid (لا يتوفّر Vulkan 1.1+ لدى% 23 من المستخدمين)، وChromeOS (يزداد استخدام Vulkan).

يعمل فريق Chrome على وضع توافق في WebGPU لمعالجة هذه المشكلة من خلال توفير إصدار مقيّد قليلاً من WebGPU يعمل على واجهات برمجة التطبيقات القديمة مثل D3D11 وOpenGL ES. سيؤدي ذلك إلى توسيع قاعدة المستخدمين المحتملين لـ WebGPU.

من المهم الإشارة إلى أنّ التطبيقات التي تستخدم وضع التوافق تظل تطبيقات WebGPU صالحة تمامًا. ستنتقل الأجهزة التي لا تتوافق مع وضع التوافق بسلاسة إلى محوّل WebGPU الأساسي، ما يضمن سهولة الاستخدام على نطاق واسع.

مخطّط لوضع التوافق في WebGPU
وضع التوافق في WebGPU يوسّع نطاق الوصول.

يمكنك الاطّلاع على الاقتراح وكتابة تعليق إذا كانت لديك أسئلة.

زيادة الحدّ الأقصى لـ maxVertexAttributes

الحدّ الأقصى لعدد السمات في جميع المخازن المؤقتة عند إنشاء GPURenderPipeline هو 16 تلقائيًا. يمكنك الآن طلب ما يصل إلى 30 سمة باستخدام الحدّ الأقصى maxVertexAttributes عندما يكون ذلك متاحًا. يمكنك الاطّلاع على المثال التالي والمشكلة dawn:2223.

const adapter = await navigator.gpu.requestAdapter();

if (adapter.limits.maxVertexAttributes < 30) {
  // When the desired limit isn't supported, take action to either fall back to
  // a code path that does not require the higher limit or notify the user that
  // their device does not meet minimum requirements.
}

// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
  requiredLimits: { maxVertexAttributes: 30 },
});

آخر الأخبار في Dawn

تمت إضافة مفتاح تبديل جديد للمثيل باسم "expose_wgsl_experimental_features" لجعل المثيل يعرض ميزات WGSL التجريبية فقط وليس الميزات غير الآمنة، ما يتيح استخدام ميزات WGSL التجريبية الآمنة بدون الحاجة إلى تفعيل مفتاح التبديل "allow_unsafe_apis". يمكنك الاطّلاع على المشكلة dawn:2260.

تشمل التحسينات الأخيرة على روابط Dawn لـ Node.js ما يلي:

  • تمت إضافة GPUSupportedFeatures::getSize().
  • تم تنفيذ حالة عدم الحداثة في GPUAdapter.
  • يتم الآن الإبلاغ عن GPUInternalError بشكلٍ صحيح للأجهزة.
  • يمكن الآن تعداد السمات.

لا يشمل ذلك سوى بعض النقاط الرئيسية. يمكنك الاطّلاع على القائمة الشاملة لعمليات الإرسال.

الميزات الجديدة في WebGPU

في ما يلي قائمة بكل ما تم تناوله في سلسلة "الميزات الجديدة في WebGPU".

Chrome 147-148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113