الميزات الجديدة في 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 لإظهار أنّ الأجهزة المفقودة تعمل بقدر الإمكان. راجِع dawn issue:1874.

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

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

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

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

قنوات التخزين المؤقت باستخدام تنسيق تم إنشاؤه تلقائيًا

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

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

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

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

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

تم تنفيذ عدة طرق إضافية لاستخدام Node.js. راجِع change dawn:142465.

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

لا يتناول هذا التقرير سوى بعض أهم التفاصيل. اطّلِع على قائمة المساهمين الشاملة.

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

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

Chrome 131

Chrome 130

الإصدار 129 من Chrome

Chrome 128

Chrome 127

الإصدار 126 من Chrome

الإصدار 125 من Chrome

Chrome 124

Chrome 123

Chrome 122

الإصدار 121 من Chrome

الإصدار 120 من Chrome

الإصدار 119 من Chrome

Chrome 118

Chrome 117

Chrome 116

Chrome 115

الإصدار 114 من Chrome

Chrome 113