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

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

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

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

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

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

تستفيد الآن المسارات التي تم إنشاؤها باستخدام createRenderPipeline({ layout: "auto" }) من آليات التخزين المؤقت في Chrome. وهذا يعني أنّه سيتم إنشاء قنوات النقل هذه بكفاءة أكبر وستستخدم ذاكرة أقل. راجِع عدد الفجر: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. راجِع تغيير وقت الفجر:142465.

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

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

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

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

Chrome 131

Chrome 130

الإصدار 129 من Chrome

Chrome 128

الإصدار 127 من Chrome

الإصدار 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