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

François Beaufort
François Beaufort

Published: April 22, 2026

إضافة linear_indexing من WGSL

تتيح لك إضافة linear_indexing من لغة WGSL استخدام القيم المضمَّنة التالية في مجموعات العمل:

  • global_invocation_index: الموضع الخطي للاستدعاء الحالي ضمن شبكة التظليل الحسابي الإجمالية قيمة إدخال u32 يتم احتسابها استنادًا إلى global_invocation_id وworkgroup_size وnum_workgroups

  • workgroup_index: الموضع الخطي لمجموعة العمل الحالية ضمن شبكة التظليل الحسابي الإجمالية قيمة إدخال u32 تشارك فيها جميع الاستدعاءات ضمن مجموعة العمل نفسها المؤشر نفسه

تعالج الإضافة عملية الاحتساب اليدوي للمؤشر من الإحداثيات الثلاثية الأبعاد، وهي عملية متكرّرة وعُرضة للأخطاء. من خلال نقل هذه المنطق إلى اللغة نفسها، تحسّن WGSL إمكانية قراءة الرمز وتزيل العمليات الحسابية المتكرّرة الشائعة.

يمكن رصد هذه الإضافة اللغوية باستخدام navigator.gpu.wgslLanguageFeatures. يُرجى الاطّلاع على المثال التالي والـ نية في إطلاقها.

if (!navigator.gpu.wgslLanguageFeatures.has("linear_indexing")) {
  throw new Error(`WGSL global_invocation_index and workgroup_index built-in values are not available`);
}

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

const shaderModule = device.createShaderModule({ code: `
  requires linear_indexing;

  override x : u32;
  override y : u32;
  override z : u32;

  @compute @workgroup_size(x, y, z)
  fn main(@builtin(workgroup_index) wg_index : u32,
          @builtin(global_invocation_index) g_index : u32) {

  // The workgroup_index built-in value is equivalent to:
  // (@builtin(workgroup_id).x +
  // (@builtin(workgroup_id).y * @builtin(num_workgroups).x) +
  // (@builtin(workgroup_id).z * @builtin(num_workgroups).x * @builtin(num_workgroups).y))

  // The global_invocation_index built-in value is equivalent to:
  // (@builtin(global_invocation_id).x +
  // (@builtin(global_invocation_id).y * x * @builtin(num_workgroups).x) +
  // (@builtin(global_invocation_id).z * x * @builtin(num_workgroups).x * y * @builtin(num_workgroups).y))
  }`,
});

WebGPU على Linux NVIDIA

بعد طرح WebGPU على Linux في وقت سابق، يتم توسيع نطاق الدعم ليشمل برامج تشغيل NVIDIA الحديثة (2024-05) على Wayland. يُرجى الاطّلاع على المشكلة 442791440.

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

تتيح لك السمة wgpu::FeatureName::AdapterPropertiesDRM، المتوفّرة فقط على Vulkan، طلب معلومات Linux DRM عن المحوّل. يُرجى الاطّلاع على Dawn CL 299575.

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

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