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

François Beaufort
François Beaufort

إلغاء ضبط مخزن مؤقت للرؤوس

يسمح لك تمرير null بدلاً من GPUBuffer إلى setVertexBuffer() على GPURenderPassEncoder أو GPURenderBundleEncoder بإلغاء ضبط مخزن مؤقت للرؤوس تم ضبطه مسبقًا في خانة معيّنة. اطّلِع على المشكلة dawn:1675.

// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);

// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);

إلغاء ضبط مجموعة الربط

يسمح لك تمرير null بدلاً من GPUBindGroup إلى setBindGroup() على GPURenderPassEncoder أو GPURenderBundleEncoder بإلغاء ضبط مجموعة ربط تم ضبطها سابقًا في خانة معيّنة. اطّلِع على المشكلة dawn:1675.

// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);

// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);

إيقاف الأخطاء الناتجة عن إنشاء مسار غير متزامن عند فقدان الجهاز

تعرض الطريقتان createComputePipelineAsync() وcreateRenderPipelineAsync() الخاصتان بـ GPUDevice وعدًا يتم تنفيذه عند اكتمال إنشاء مسار العرض. من الآن فصاعدًا، سيتم تجاهل الأخطاء الناتجة عن إنشاء مسار غير متزامن عند ضبط GPUDevice على lost لجعل الأجهزة المفقودة تبدو وكأنّها تعمل قدر الإمكان. اطّلِع على المشكلة 1874 في Dawn.

تعديلات على إنشاء وحدة تظليل SPIR-V

سيؤدي إنشاء وحدة تظليل SPIR-V باستخدام createShaderModule() الآن إلى ظهور خطأ TypeError ما لم تشغّل Chrome باستخدام العلامة "Unsafe WebGPU Support"، لأنّ SPIR-V ليس جزءًا من مواصفات WebGPU. قبل إجراء هذا التغيير، كان استخدام SPIR-V يؤدي إلى إنشاء GPUInternalError بدلاً من ذلك. اطّلِع على التغيير chromium:4711911.

تحسين تجربة المطوّرين

تم تحسين رسالة الخطأ في عملية التحقّق من صحة عمليات الربط في تخطيط مجموعة الربط في برنامج تظليل الرؤوس، وذلك بالنسبة إلى عمليات الربط في مخزن مؤقت للقراءة والكتابة وعمليات الربط في نسيج التخزين للقراءة فقط. اطّلِع على المشكلة dawn:1883.

تخزين مسارات العرض مؤقتًا باستخدام تخطيط يتم إنشاؤه تلقائيًا

تستفيد خطوط الإنتاج التي تم إنشاؤها باستخدام createRenderPipeline({ layout: "auto" }) الآن من آليات التخزين المؤقت في Chrome. وهذا يعني أنّه سيتم إنشاء هذه المسارات بشكل أكثر كفاءة وستستخدم ذاكرة أقل. اطّلِع على issue dawn:1933.

إشعارات الفجر

أصبح wgpu::RequestAdapterOptionsBackendType الآن جزءًا من wgpu::RequestAdapterOptions لتسهيل طلب التطبيقات لخادم خلفي معيّن عند الحصول على محوّل. اطّلِع على المثال التالي والمشكلة dawn:1875.

wgpu::RequestAdapterOptions options = {
    .backendType = wgpu::BackendType::D3D12};

// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);

تم تنفيذ العديد من الطرق الإضافية لـ Node.js. راجِع تغيير الفجر:142465.

غيّرت واجهة برمجة التطبيقات webgpu.h C نوع القيم المنطقية من stdbool إلى WGPUBool، وهو uint32_t. تم إجراء هذا التغيير لضمان توفُّر ABI مكافئة لواجهة برمجة التطبيقات في لغتَي C وC++.

هذا يغطي بعض النقاط الرئيسية فقط. اطّلِع على قائمة عمليات الدمج الشاملة.

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

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

‫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