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

François Beaufort
François Beaufort

Published: August 27, 2025

تستهلك طلبات الأجهزة المحوّل

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

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

await adapter.requestDevice(); // Fails because adapter has been consumed.

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

يمكن الآن استخدام GPUTexture مباشرةً كـ GPUBindingResource لعرضه على أداة التظليل من أجل الربط. ويمكن أيضًا استخدامه كـ GPURenderPassColorAttachment view وGPURenderPassColorAttachment resolveTarget وGPURenderPassDepthStencilAttachment view لتحسين بيئة العمل. يوفّر ذلك طريقة أبسط من استخدام GPUTextureView للحصول على طريقة عرض تلقائية. راجِع المشكلة 425906323.

const bindGroup = myDevice.createBindGroup({
  layout: myPipeline.getBindGroupLayout(0),
  entries: [
    { binding: 0, resource: mySampler },
    { binding: 1, resource: myTexture }, // Same as myTexture.createView()
    { binding: 2, resource: myExternalTexture },
    { binding: 3, resource: myBuffer },
  ],
});

تتيح الدالة WGSL textureSampleLevel استخدام الزخارف الأحاديّة الأبعاد

يمكن الآن أخذ عيّنات من الزخارف الأحاديّة الأبعاد باستخدام textureSampleLevel() لضمان الاتساق مع الزخارف الثنائية الأبعاد. يتيح لك ذلك أخذ عيّنة من زخرفة أحادية الأبعاد من أداة تظليل رأس، وهو ما كان ممكنًا سابقًا فقط من جزء باستخدام textureSample(). راجِع المشكلة 382514673.

إيقاف استخدام زخرفة التخزين للقراءة فقط بتنسيق bgra8unorm نهائيًا

تم الآن إيقاف استخدام تنسيق "bgra8unorm" مع زخارف التخزين للقراءة فقط نهائيًا. تمنع مواصفات WebGPU ذلك صراحةً، وكان السماح به سابقًا في Chrome خطأً، لأنّ هذا التنسيق مخصّص للوصول للكتابة فقط وغير قابل للنقل. راجِع المشكلة 427681156.

إزالة سمة isFallbackAdapter في GPUAdapter

كما سبق الإعلان، تمت الآن إزالة سمة GPUAdapter isFallbackAdapter. تم استبدالها بسمة isFallbackAdapter في GPUAdapterInfo التي تم طرحها في Chrome 136. راجِع نية الإزالة.

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

تُستخدَم الدالة wgpuInstanceGetWGSLLanguageFeatures() للحصول على قائمة بميزات لغة WGSL التي تتيحها النسخة. في السابق، كانت هذه الدالة تعرض قيمة WGPUStatus. تم تعديلها لعدم عرض قيمة لأنّها لا يمكن أن تفشل. راجِع المشكلة 429178774.

تعرض الدالة wgpuSurfacePresent() الآن خطأ WGPUStatus إذا لم يكن للسطح زخرفة حالية. راجِع المشكلة 425930323

تتيح الميزة الجديدة wgpu::InstanceFeatureName::MultipleDevicesPerAdapter للمحوّلات إنشاء أجهزة متعدّدة بدون أن يتم "استهلاكها". راجِع المشكلة 415825174.

يتيح لك مفتاح تبديل الجهاز dump_shaders_on_failure إيقاف التظليلات فقط عند حدوث خطأ لأغراض تحديد المشاكل وحلّها. ينطبق ذلك حصريًا على واجهات D3 الخلفية، على الرغم من إمكانية التوسّع في المستقبل ليشمل واجهات خلفية أخرى. راجِع المشكلة 429187478.

تم إجراء تغييرات متعدّدة على واجهة Vulkan الخلفية لتقليل النفقات العامة عند إرسال عمليات عرض، خاصةً لتحسين الأداء على وحدات معالجة الرسومات الجوّالة. على سبيل المثال، تخزين VkFramebuffers مؤقتًا.

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

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