الميزات الجديدة في WebGPU (الإصدار 139 من Chrome)

François Beaufort
François Beaufort

Published: July 30, 2025

دعم الزخارف ثلاثية الأبعاد لصيغ الضغط BC وASTC

تضيف ميزتا WebGPU "texture-compression-bc-sliced-3d" و"texture-compression-astc-sliced-3d" دعمًا للزخارف ثلاثية الأبعاد باستخدام صيغ Block Compression (BC) وAdaptive Scalable Texture Compression (ASTC). يتيح لك ذلك الاستفادة من إمكانات الضغط الفعّالة لصيغ BC وASTC لبيانات الزخارف الحجمية، ما يؤدي إلى تقليل كبير في استهلاك الذاكرة ومتطلبات معدل نقل البيانات بدون فقدان كبير في الجودة المرئية. ويكون ذلك مفيدًا بشكل خاص في مجالات مثل التصوّر العلمي والتصوير الطبي وتقنيات العرض المتقدّمة.

يتحقّق مقتطف الرمز البرمجي التالي مما إذا كان المحوّل يتيح استخدام الزخارف ثلاثية الأبعاد باستخدام صيغ الضغط BC وASTC، ويطلب جهازًا يتضمّن هذه الميزات إذا كانت متاحة.

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

const requiredFeatures = [];
if (adapter?.features.has("texture-compression-bc-sliced-3d")) {
  requiredFeatures.push(
    "texture-compression-bc",
    "texture-compression-bc-sliced-3d",
  );
}
if (adapter?.features.has("texture-compression-astc-sliced-3d")) {
  requiredFeatures.push(
    "texture-compression-astc",
    "texture-compression-astc-sliced-3d",
  );
}
const device = await adapter?.requestDevice({ requiredFeatures });

// Later on...
if (device.features.has("texture-compression-astc-sliced-3d")) {
  // Create a 3D texture using ASTC compression
} else if (device.features.has("texture-compression-bc-sliced-3d")) {
  // Create a 3D texture using BC compression
} else {
  // Fallback: Create an uncompressed 3D texture
}

يمكنك استكشاف صور المسح الضوئي ثلاثية الأبعاد للدماغ من خلال الاطّلاع على نموذج WebGPU لـ Volume Rendering - Texture 3D والاطّلاع على إدخال chromestatus.

عمليات فحص الدماغ الثلاثية الأبعاد التي يتم عرضها باستخدام WebGPU
صورة مسح ضوئي للدماغ من زخرفة ثلاثية الأبعاد باستخدام صيغة الضغط ASTC

ميزة "core-features-and-limits" الجديدة

نطرح ميزة "core-features-and-limits" جديدة لوضع التوافق القادم في WebGPU. تشير هذه الميزة إلى أنّ المحوّل أو الجهاز يتيح الميزات والحدود الأساسية لمواصفات WebGPU. إنّ "core" WebGPU هو الإصدار الوحيد المتاح حاليًا، لذا يجب أن تتضمّن جميع عمليات تنفيذ WebGPU ميزة "core-features-and-limits" في ميزاتها المتاحة.

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

للحصول على شرح مفصّل وطريقة الاستخدام في وضع التوافق في WebGPU، يُرجى الرجوع إلى الشرح والقسم التالي. يمكنك الاطّلاع على المشكلة 418025721.

مرحلة التجربة والتقييم لوضع التوافق في WebGPU

‫WebGPU هي واجهة برمجة تطبيقات قوية مصمّمة للرسومات الحديثة، وتتوافق مع تقنيات مثل Vulkan وMetal وDirect3D 12. ومع ذلك، لا يزال عدد كبير من الأجهزة لا يتيح استخدام واجهات برمجة التطبيقات الأحدث هذه. على سبيل المثال، على نظام التشغيل Windows، لا يتوفّر Direct3D 11.1 أو إصدار أحدث لدى% 31 من مستخدمي Chrome. على نظام التشغيل Android، لا يتوفّر Vulkan 1.1 لدى% 15 من مستخدمي Android، بما في ذلك% 10 لا يتوفّر لديهم Vulkan على الإطلاق.

يطرح ذلك تحديًا للمطوّرين الذين يريدون زيادة مدى وصول تطبيقاتهم إلى أقصى حد. غالبًا ما يُضطرون إلى تطوير عمليات تنفيذ متعددة (على سبيل المثال، WebGPU وWebGL)، أو قبول جمهور أكثر محدودية باستخدام WebGPU الأساسي، أو الالتزام بـ WebGL، ما يؤدي إلى عدم الاستفادة من الميزات المتقدّمة في WebGPU، مثل الحوسبة على وحدة معالجة الرسومات.

تمثيل مرئي لوضع التوافق في WebGPU
مدى وصول وضع التوافق في WebGPU

يقدّم وضع التوافق في WebGPU حلاً من خلال توفير إصدار اختياري ومقيّد قليلاً من WebGPU API. تم تصميم هذا الوضع لتشغيل واجهات برمجة تطبيقات الرسومات الأقدم، مثل OpenGL ES 3.1 وDirect3D11، ما يؤدي إلى توسيع مدى وصول تطبيقك بشكل كبير إلى الأجهزة التي لا تتيح استخدام واجهات برمجة تطبيقات الرسومات الحديثة والصريحة التي يتطلبها WebGPU الأساسي.

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

بالنسبة إلى العديد من التطبيقات الأساسية، يكون تفعيل وضع التوافق بسيطًا مثل تمرير featureLevel: "compatibility" عند استدعاء requestAdapter(). قد تتطلب التطبيقات الأكثر تعقيدًا تعديلات طفيفة لتناسب قيود الوضع. يُعد نموذج WebGPU لـ Generate Mipmap مثالاً جيدًا.

// Request a GPUAdapter in compatibility mode
const adapter = await navigator.gpu.requestAdapter({
  featureLevel: "compatibility",
});

const hasCore = adapter?.features.has("core-features-and-limits");
const device = await adapter?.requestDevice({
  requiredFeatures: (hasCore ? ["core-features-and-limits"] : []),
});

if (device?.features.has("core-features-and-limits")) {
  // Compatibility mode restrictions will apply
}

تفعيل الميزة

لا يكون وضع التوافق في WebGPU مفعّلاً تلقائيًا في Chrome، ولكن يمكن تجربته في Chrome 139 من خلال تفعيل الوظيفة بشكل صريح. يمكنك تفعيلها محليًا من خلال تفعيل العلامة "Experimental Web Platform Features" flag على chrome://flags/#enable-experimental-web-platform-features.

لتفعيلها لجميع زوّار تطبيقك، يتم إجراء مرحلة التجربة والتقييم من المقرر أن تنتهي في Chrome 145 (21 أبريل 2026). للمشاركة في مرحلة التجربة والتقييم، يُرجى الرجوع إلى مشاركة بدء استخدام مراحل التجربة والتقييم.

آخر الأخبار من Dawn

تمت إضافة وسيطة message إلى الدالة WGPUQueueWorkDoneCallback لتكون أكثر اتساقًا مع دوال معاودة الاتصال الأخرى التي تأخذ حالة أيضًا. يمكنك الاطّلاع على طلب السحب webgpu-headers.

عند ربط `emdawnwebgpu` بالرمز -sSHARED_MEMORY، يتم أيضًا تجميع ملف webgpu.cpp باستخدام هذه العلامة. يمكنك الاطّلاع على Dawn CL 244075.

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

الميزات الجديدة في 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