الميزات الجديدة في 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. وهذا يعني أنه سيتم إنشاء هذه المسارات بكفاءة أكبر وستستخدم ذاكرة أقل. راجِع مشكلة 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.

الإصدار 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 من متصفّح Chrome