تاريخ النشر: 24 سبتمبر 2025
اكتملت عملية التلوين بالأشعة تحت الحمراء
تم الانتهاء من مشروع طويل الأمد (أكثر من عامين ونصف) لزيادة أداء الأجزاء الداخلية من Tint، وهي أداة تجميع WGSL. تم إدراج تمثيل وسيط (IR) في الخلفية بين شجرة بناء الجملة المجردة (AST) الحالية ومولّدات رموز الخلفية. أتاح طرح IR لفريق Chrome إزالة جميع عمليات تحويل AST وإعادة إنشائها كعمليات تحويل IR، والتي تكون أسرع بكثير بسبب الاختلافات في البنية. وقد شهدت الأجزاء الداخلية من Tint على بعض المنصات تحسّنًا في السرعة يصل إلى سبع مرات نتيجةً لهذه التغييرات.
تتيح هذه التمثيل الوسيط الجديد إمكانات كبيرة لتحليل وتعديل برامج التظليل المعقّدة والواسعة النطاق، ما يَعِد ليس فقط بتحقيق مكاسب ملحوظة في الأداء، بل أيضًا بتمهيد الطريق أمام Chrome لتقديم ميزات WebGPU جديدة ومثيرة في المستقبل.
منذ هذه المرحلة، تعمل جميع مولّدات الرموز الخلفية من تمثيل IR، وتم حذف جميع عمليات تحويل AST، كما تمت إزالة جميع رموز دعم AST لتنفيذ عمليات التحويل.
في إطار العمل على تحسين IR، تم تحويل الواجهة الأمامية لـ SPIR-V (التي تستخدمها التطبيقات لتحويل SPIR-V إلى WGSL) من إنشاء تمثيل AST إلى الإنشاء مباشرةً إلى IR. يقدّم هذا التحسين أيضًا ميزات طال انتظارها، مثل إتاحة استخدام النوع float 16 في الواجهة الأمامية لـ SPIR-V.
تحليل نطاق الأعداد الصحيحة في برنامج WGSL المجمّع
يعمل فريق Chrome تدريجيًا على طرح تحليل جديد لنطاق الأعداد الصحيحة في Tint، وهو برنامج تجميع لغة التظليل WebGPU. يقدّر تحليل نطاق الأعداد الصحيحة الحدّ الأدنى والحدّ الأقصى للقيم التي يمكن أن يتخذها متغيّر عدد صحيح أثناء تنفيذ البرنامج بدون تشغيله فعليًا.
تهدف هذه الميزة إلى تحسين الكفاءة من خلال تقليل الحاجة إلى عمليات التحقّق المكلفة من الحدود، وسيتم تفعيلها تلقائيًا قريبًا على جميع المنصات. يمكنك الاطّلاع على المشكلة 348701956.
تعديل على SPIR-V 1.4 لبرنامج Vulkan الخلفي
يتم طرح الإصدار 1.4 من SPIR-V حيثما يتوفّر على أجهزة Android وChromeOS. يتيح هذا التحديث لبرنامج التجميع Tint WGSL الاستفادة من ميزات SPIR-V الجديدة، والتسهيلات، والتعليمات الجديدة لإنشاء رموز برمجية أكثر كفاءة في سيناريوهات معيّنة عند تجميع مظلّلات Vulkan. راجِع المشكلة 427717267.
إشعارات الفجر
أصبح عنوان webgpu.h
المتوافق مع المعايير، والذي يحدّد واجهة برمجة التطبيقات الأساسية WebGPU C، مستقرًا الآن. تنطبق هذه الثباتية تحديدًا على واجهة برمجة التطبيقات الأساسية المحدّدة في المصدر، ولا تشمل إضافات التنفيذ (على سبيل المثال، من Dawn أو Emdawnwebgpu)، لذا من الأفضل استخدام webgpu.h
المقدَّمة من عملية التنفيذ الدقيقة التي تربط بها. على الرغم من أنّ العنوان ثابت، قد تظل تواجه اختلافات غير مقصودة بين عمليات التنفيذ بينما نواصل إصلاح الأخطاء ومعالجة التوافق في جميع أنحاء النظام المتكامل. في حال حدوث ذلك، يُرجى الإبلاغ عن الخطأ.
بفضل المساهم الخارجي ويليام كانديلون، يمكنك الآن العثور على ملفات Dawn الثنائية المُنشأة مسبقًا كعناصر على GitHub Actions. وتشمل هذه الملفات ملفات .lib ثابتة لنظام التشغيل Android، وحزمة .XCFramework لأجهزة Apple، وجميع ملفات العناوين الضرورية. يمكنك الاطّلاع على طلب السحب رقم 39 في Dawn ومثال على القطع الأثرية.
هذا يشمل بعض النقاط الرئيسية فقط. اطّلِع على قائمة عمليات الدمج الشاملة.
الميزات الجديدة في WebGPU
قائمة بكل ما تم تناوله في سلسلة الميزات الجديدة في WebGPU
Chrome 141
- اكتملت عملية توجيه اللون بالأشعة تحت الحمراء
- تحليل نطاق الأعداد الصحيحة في برنامج WGSL البرمجي
- تحديث SPIR-V 1.4 لبرنامج Vulkan الخلفي
- آخر الأخبار من Dawn
Chrome 140
- طلبات الأجهزة تستهلك المحوّل
- اختصار لاستخدام الزخرفة حيث يتم استخدام عرض الزخرفة
- تتيح الدالة WGSL textureSampleLevel استخدام زخارف أحادية الأبعاد
- إيقاف استخدام زخرفة التخزين للقراءة فقط بتنسيق bgra8unorm نهائيًا
- إزالة سمة isFallbackAdapter في GPUAdapter
- آخر الأخبار من Dawn
Chrome 139
- إتاحة بنية ثلاثية الأبعاد لتنسيقات BC وASTC المضغوطة
- ميزة "الميزات الأساسية والحدود" الجديدة
- تجربة المصدر لوضع التوافق مع WebGPU
- آخر الأخبار من Dawn
Chrome 138
- اختصار لاستخدام المخزن المؤقت كمورد ربط
- تغييرات على متطلبات الحجم للمخازن المؤقتة التي تم ربطها عند الإنشاء
- تقرير البنية لوحدات معالجة الرسومات الحديثة
- إيقاف سمة isFallbackAdapter في GPUAdapter نهائيًا
- آخر الأخبار من Dawn
Chrome 137
- استخدام طريقة عرض الزخرفة لربط externalTexture
- نسخ المخازن المؤقتة بدون تحديد الإزاحات والحجم
- WGSL workgroupUniformLoad باستخدام مؤشر إلى atomic
- سمة powerPreference في GPUAdapterInfo
- إزالة سمة compatibilityMode في GPURequestAdapterOptions
- آخر الأخبار من Dawn
Chrome 136
- سمة isFallbackAdapter في GPUAdapterInfo
- تحسينات على وقت تجميع Shader على D3D12
- حفظ صور اللوحات ونسخها
- قيود وضع التوافق مع قياس التحسُّن
- آخر الأخبار من Dawn
Chrome 135
- السماح بإنشاء تخطيط خط أنابيب باستخدام تخطيط مجموعة ربط فارغ
- السماح بتوسيع منافذ العرض إلى ما بعد حدود أهداف العرض
- تسهيل الوصول إلى وضع التوافق التجريبي على Android
- إزالة الحدّ الأقصى لـ maxInterStageShaderComponents
- آخر الأخبار من Dawn
Chrome 134
- تحسين أحمال عمل تعلُّم الآلة باستخدام المجموعات الفرعية
- إزالة إمكانية فلترة أنواع المواد القابلة للطفو على أنّها قابلة للمزج
- آخر الأخبار من Dawn
Chrome 133
- تنسيقات إضافية للرؤوس ذات المكوّن الواحد وunorm8x4-bgra
- السماح بطلب حدود غير معروفة بقيمة غير محدّدة
- تغييرات في قواعد المحاذاة في WGSL
- تحسين أداء WGSL باستخدام الأمر discard
- استخدام VideoFrame displaySize للصور الخارجية
- التعامل مع الصور ذات الاتجاهات غير التلقائية باستخدام copyExternalImageToTexture
- تحسين تجربة المطوّرين
- تفعيل وضع التوافق باستخدام featureLevel
- إزالة ميزات المجموعات الفرعية التجريبية
- إيقاف حد maxInterStageShaderComponents نهائيًا
- آخر الأخبار من Dawn
Chrome 132
- استخدام TextureView
- دمج مواد عرض عائمة تشغل 32 بت
- سمة adapterInfo في GPUDevice
- ضبط سياق لوحة العرض باستخدام تنسيق غير صالح يؤدي إلى ظهور خطأ في JavaScript
- قيود فلترة أداة أخذ العينات على المواد
- تجربة المجموعات الفرعية الموسّعة
- تحسين تجربة المطوّرين
- إتاحة تجريبية لتنسيقات البنية العادية ذات 16 بت
- آخر الأخبار من Dawn
Chrome 131
- مسافات القطع في WGSL
- GPUCanvasContext getConfiguration()
- يجب ألا تحتوي الأشكال الأساسية للنقاط والخطوط على انحياز العمق
- وظائف مدمجة للفحص الشامل للمجموعات الفرعية
- دعم تجريبي لعمليات السحب غير المباشرة المتعددة
- Shader module compilation option strict math
- إزالة طريقة requestAdapterInfo() في GPUAdapter
- آخر الأخبار من Dawn
Chrome 130
- دمج مصدرَين
- تحسينات على وقت تجميع Shader على Metal
- إيقاف طريقة requestAdapterInfo() في GPUAdapter نهائيًا
- آخر الأخبار من Dawn
Chrome 129
- التوافق مع النطاق العالي الديناميكية باستخدام وضع "تحديد درجة اللون على لوحة العرض"
- توسيع نطاق دعم المجموعات الفرعية
- آخر الأخبار من Dawn
Chrome 128
- تجربة المجموعات الفرعية
- إيقاف ضبط انحياز العمق للخطوط والنقاط نهائيًا
- إخفاء تحذير "أدوات مطوّري البرامج" بشأن الخطأ غير الملتقط في حال استخدام preventDefault
- WGSL interpolate sampling first and either
- آخر الأخبار من Dawn
Chrome 127
- إتاحة OpenGL ES تجريبيًا على Android
- سمة info في GPUAdapter
- تحسينات على إمكانية التشغيل التفاعلي في WebAssembly
- أخطاء محسّنة في ترميز الأوامر
- آخر الأخبار من Dawn
Chrome 126
- زيادة الحدّ الأقصى لعدد طبقات maxTextureArrayLayers
- تحسين عملية تحميل المخزن المؤقت في الخلفية باستخدام Vulkan
- تحسينات على وقت تجميع Shader
- يجب أن تكون مخازن أوامر الإرسال فريدة
- آخر الأخبار من Dawn
Chrome 125
Chrome 124
- نسيج مساحة التخزين للقراءة فقط والقراءة والكتابة
- توافق Service Workers وShared Workers
- سمات معلومات المحوّل الجديدة
- إصلاح الأخطاء
- آخر الأخبار من Dawn
Chrome 123
- إتاحة وظائف DP4a المضمّنة في WGSL
- مَعلمات المؤشر غير المقيدة في WGSL
- بنية مختصرة لإلغاء الإشارة إلى العناصر المركّبة في WGSL
- حالة منفصلة للقراءة فقط لكل من جوانب الاستنسل والعمق
- آخر الأخبار من Dawn
Chrome 122
- توسيع مدى الوصول إلى الجمهور باستخدام "وضع التوافق" (ميزة قيد التطوير)
- زيادة الحد الأقصى لعدد سمات الرأس (maxVertexAttributes)
- آخر الأخبار من Dawn
Chrome 121
- إتاحة WebGPU على Android
- استخدام DXC بدلاً من FXC لتجميع التظليل على أجهزة Windows
- طلبات البحث عن الطوابع الزمنية في عمليات الحساب والعرض
- نقاط الدخول التلقائية إلى وحدات التظليل
- إتاحة مساحة الألوان display-p3 كـ GPUExternalTexture
- معلومات عن مساحات تخزين الذاكرة
- آخر الأخبار من Dawn
Chrome 120
- إتاحة قيم النقطة العائمة ذات 16 بت في WGSL
- تجاوز الحدود
- التغييرات على حالة العمق/الاستنسل
- تعديلات على معلومات المحوّل
- تحديد كمية طلبات البحث المستندة إلى الطابع الزمني
- ميزات التنظيف الشامل
Chrome 119
- الصور النسيجية العائمة التي يمكن فلترتها بدقة 32 بت
- تنسيق الرأس unorm10-10-10-2
- تنسيق النسيج rgb10a2uint
- آخر الأخبار من Dawn
Chrome 118
- إتاحة HTMLImageElement وImageData في
copyExternalImageToTexture()
- إتاحة تجريبية لنسيج التخزين للقراءة والكتابة والقراءة فقط
- آخر الأخبار من Dawn
Chrome 117
- Unset vertex buffer
- إلغاء ضبط مجموعة الربط
- إخفاء الأخطاء الناتجة عن إنشاء مسار غير متزامن عند فقدان الجهاز
- تعديلات على إنشاء وحدات تظليل SPIR-V
- تحسين تجربة المطوّرين
- تخزين مسارات العرض مؤقتًا باستخدام تخطيط يتم إنشاؤه تلقائيًا
- آخر الأخبار من Dawn
Chrome 116
- دمج WebCodecs
- الجهاز الذي تم إرجاعه من خلال GPUAdapter
requestDevice()
- الحفاظ على سلاسة تشغيل الفيديو عند تلقّي مكالمة على الرقم
importExternalTexture()
- الامتثال للمواصفات
- تحسين تجربة المطوّرين
- آخر الأخبار من Dawn
Chrome 115
- إضافات لغة WGSL المتوافقة
- توافق تجريبي مع Direct3D 11
- الحصول على وحدة معالجة رسومات منفصلة تلقائيًا عند توصيل الجهاز بمصدر طاقة
- تحسين تجربة المطوّرين
- آخر الأخبار من Dawn
Chrome 114
- تحسين JavaScript
- تعرض getCurrentTexture() الخطأ InvalidStateError على لوحة غير مضبوطة
- تعديلات على WGSL
- آخر الأخبار من Dawn