Published: April 23, 2025
سمة isFallbackAdapter في GPUAdapterInfo
تشير سمة isFallbackAdapter المنطقية في GPUAdapterInfo إلى ما إذا كانت هناك قيود كبيرة على أداء GPUAdapter مقابل توافق أوسع أو سلوك أكثر قابلية للتنبؤ أو خصوصية محسّنة. كانت هذه الإضافة ضرورية لأنّ المكتبات التي تأخذ كائنات GPUDevice التي يقدّمها المستخدمون لم تتمكّن من الوصول إلى هذه المعلومات من خلال سمة adapterInfo في GPUDevice. يمكنك الاطّلاع على المثال التالي والمشكلة 403172841.
const adapter = await navigator.gpu.requestAdapter();
if (adapter?.info.isFallbackAdapter) {
// The returned adapter is a software-backed fallback adapter, which
// may have significantly lower performance and fewer features.
}
بما أنّ Chrome لم يُرسِل بعد الدعم لوحدات معالجة الرسومات الاحتياطية، تكون قيمة isFallbackAdapter دائمًا خطأ حاليًا على أجهزة المستخدمين. نحن بصدد التحقيق في ما إذا كان يمكن إيقاف سمة GPUAdapter isFallbackAdapter نهائيًا وإزالتها. يمكنك الاطّلاع على نية الشحن.
تحسينات على وقت تجميع التظليل على D3D12
يواصل فريق Chrome تحسين Tint، وهو مجمّع لغة تظليل WebGPU، من خلال إضافة تمثيل وسيط (IR) للأجهزة التي تتوافق مع WebGPU باستخدام واجهة D3D12 الخلفية. سيجعل هذا التمثيل الوسيط، الذي يقع بين شجرة البنية التجريدية (AST) الخاصة بـ Tint وكاتب واجهة HLSL الخلفية، المجمّع أكثر كفاءة وقابلية للصيانة، ما يفيد كلاً من المطوّرين والمستخدمين في النهاية. تُظهر الاختبارات الأولية أنّ الإصدار الجديد من Tint أسرع بما يصل إلى 10 مرّات عند ترجمة مظلّلات WGSL من Unity إلى HLSL.
يتم توسيع نطاق هذه التحسينات، التي يمكن الوصول إليها حاليًا على Android وChromeOS وmacOS، تدريجيًا لتشمل أجهزة Windows التي تتوافق مع WebGPU باستخدام واجهة D3D12 الخلفية. يمكنك الاطّلاع على المشكلة 42251045.
حفظ صور لوحة الرسم ونسخها
يمكن لمستخدمي Chrome الآن النقر بزر الماوس الأيمن على لوحة رسم WebGPU والوصول إلى خيارات قائمة السياق حفظ الصورة باسم… أو نسخ الصورة. يمكنك الاطّلاع على المشكلة 40902474.
إزالة القيود المفروضة على وضع التوافق
عندما تكون ميزة "core-features-and-limits" التجريبية متاحة على GPUDevice، فإنّها تزيل جميع القيود المفروضة على وضع التوافق (الميزات والحدود) عند تفعيل العلامة chrome://flags/#enable-unsafe-webgpu. يمكنك الاطّلاع على المشكلة 395855517.
يشير طلب GPUAdapter باستخدام الخيار featureLevel: "compatibility" إلى المتصفّح لاختيار وضع التوافق التجريبي في WebGPU. إذا نجحت العملية، تكون وحدة معالجة الرسومات الناتجة "متوافقة تلقائيًا". بخلاف ذلك، تكون "أساسية تلقائيًا"، وهو ما يعادل استخدام الخيار featureLevel: "core". علاوةً على ذلك، يؤدي استدعاء requestDevice() بدون requiredFeatures وrequiredLimits إلى طلب GPUDevice بإمكانات GPUAdapter التلقائية.
تتوافق وحدات معالجة الرسومات الأساسية التلقائية دائمًا مع ميزة "core-features-and-limits" ويتم تفعيلها تلقائيًا على GPUDevices التي تم إنشاؤها منها. بالنسبة إلى وحدات معالجة الرسومات المتوافقة تلقائيًا، قد تكون ميزة "core-features-and-limits" متاحة ويمكن طلبها على GPUDevices التي تم إنشاؤها منها. قد تتوافق كلا نوعَي وحدات معالجة الرسومات أيضًا مع ميزات مثل "float32-blendable"، وهي اختيارية في كل من الوضعَين الأساسي والمتوافق.
المثال التالي هو لتطبيق يتطلّب "float32-blendable" ويتيح استخدام الميزات الأساسية إذا كانت متاحة، ولكنّه يستخدم ميزات التوافق فقط إذا لم تكن الميزات الأساسية متاحة.
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });
if (!adapter || !adapter.features.has("float32-blendable")) {
throw new Error("32-bit float textures blending support is not available");
}
const requiredFeatures = [];
if (adapter.features.has("core-features-and-limits")) {
requiredFeatures.push("core-features-and-limits");
}
const device = await adapter.requestDevice({ requiredFeatures });
if (!device.features.has("core-features-and-limits")) {
// Compatibility mode restrictions validation rules will apply.
}
تمت إزالة سمتَي GPUAdapter التجريبيتين featureLevelو isCompatibilityMode لصالح ميزة "core-features-and-limits". يمكنك الاطّلاع على المشكلة 395855516.
آخر الأخبار من Dawn
تمت إعادة تسمية تعداد حالة معاودة الاتصال InstanceDropped إلى CallbackCancelled لتوضيح أنّه تم إلغاء معاودة الاتصال، ولكن قد تظل المعالجة في الخلفية المرتبطة بالحدث، مثل تجميع مسار العرض، قيد التشغيل. الاسم الجديد أكثر قابلية للتطبيق بشكل عام، في حال تمت إضافة آلية إلغاء أخرى لاحقًا. يمكنك الاطّلاع على المشكلة 520.
تمت إعادة تسمية تعداد wgpu::PopErrorScopeStatus::EmptyStack الذي يشير إلى أنّه تعذّر إزالة نطاق الخطأ من المكدّس إلى wgpu::PopErrorScopeStatus::Error (وهو أيضًا أكثر قابلية للتطبيق بشكل عام). تتضمّن معاودة الاتصال الآن أيضًا رسالة شرح خطأ مقابلة للمساعدة في تحديد المشاكل وحلّها. يمكنك الاطّلاع على المشكلة 369.
لا يغطي هذا المقال سوى بعض النقاط الرئيسية. يمكنك الاطّلاع على القائمة الشاملة لعمليات الإرسال.
الميزات الجديدة في WebGPU
في ما يلي قائمة بكل ما تم تناوله في سلسلة "الميزات الجديدة في WebGPU".
Chrome 147-148
Chrome 146
- التوافق مع وضع التوافق في WebGPU على OpenGL ES 3.1
- المرفقات المؤقتة
- إضافة texture_and_sampler_let في WGSL
- آخر الأخبار من Dawn
Chrome 145
Chrome 144
- إضافة subgroup_id في WGSL
- إضافة uniform_buffer_standard_layout في WGSL
- WebGPU على Linux
- عمليات writeBuffer وwriteTexture أسرع
- آخر الأخبار من Dawn
Chrome 143
Chrome 142
Chrome 141
- اكتمل التمثيل الوسيط في Tint
- تحليل نطاق الأعداد الصحيحة في مجمّع WGSL
- تعديل SPIR-V 1.4 لواجهة Vulkan الخلفية
- آخر الأخبار من Dawn
Chrome 140
- تستهلك طلبات الأجهزة وحدة معالجة الرسومات
- اختصار لاستخدام الزخرفة حيث يتم استخدام طريقة عرض الزخرفة
- تتوافق WGSL textureSampleLevel مع الزخارف أحادية الأبعاد
- إيقاف استخدام زخرفة التخزين للقراءة فقط bgra8unorm نهائيًا
- إزالة سمة isFallbackAdapter في GPUAdapter
- آخر الأخبار من Dawn
Chrome 139
- التوافق مع الزخارف ثلاثية الأبعاد لتنسيقات BC وASTC المضغوطة
- ميزة `"core-features-and-limits"` الجديدة
- مرحلة التجربة والتقييم لوضع التوافق في WebGPU
- آخر الأخبار من Dawn
Chrome 138
- اختصار لاستخدام المخزن المؤقت كمورد ربط
- تغييرات على متطلبات حجم المخازن المؤقتة التي يتم ربطها عند الإنشاء
- تقرير البنية لوحدات معالجة الرسومات الحديثة
- إيقاف سمة isFallbackAdapter في GPUAdapter نهائيًا
- آخر الأخبار من Dawn
Chrome 137
- استخدام طريقة عرض الزخرفة لربط externalTexture
- نسخ المخازن المؤقتة بدون تحديد الإزاحات والحجم
- WGSL workgroupUniformLoad باستخدام مؤشر إلى atomic
- سمة powerPreference في GPUAdapterInfo
- إزالة سمة compatibilityMode في GPURequestAdapterOptions
- آخر الأخبار من Dawn
Chrome 136
- سمة isFallbackAdapter في GPUAdapterInfo
- تحسينات على وقت تجميع التظليل على D3D12
- حفظ صور لوحة الرسم ونسخها
- إزالة القيود المفروضة على وضع التوافق
- آخر الأخبار من Dawn
Chrome 135
- السماح بإنشاء تنسيق مسار عرض باستخدام تنسيق مجموعة ربط فارغ
- السماح بتوسيع منافذ العرض لتتجاوز حدود أهداف العرض
- الوصول بسهولة أكبر إلى وضع التوافق التجريبي على Android
- إزالة الحد الأقصى maxInterStageShaderComponents
- آخر الأخبار من Dawn
Chrome 134
- تحسين أحمال عمل تعلُّم الآلة باستخدام المجموعات الفرعية
- إزالة التوافق مع أنواع الزخارف القابلة للفلترة من النوع float باعتبارها قابلة للمزج
- آخر الأخبار من Dawn
Chrome 133
- تنسيقات الرأس الإضافية unorm8x4-bgra وذات المكوّن الواحد
- السماح بطلب حدود غير معروفة بقيمة غير محدّدة
- تغييرات على قواعد المحاذاة في WGSL
- تحسينات على أداء WGSL باستخدام discard
- استخدام displaySize في VideoFrame للزخارف الخارجية
- التعامل مع الصور ذات الاتجاهات غير التلقائية باستخدام copyExternalImageToTexture
- تحسين تجربة المطوّرين
- تفعيل وضع التوافق باستخدام featureLevel
- تنظيف الميزات التجريبية للمجموعات الفرعية
- إيقاف الحد الأقصى maxInterStageShaderComponents نهائيًا
- آخر الأخبار من Dawn
Chrome 132
- استخدام طريقة عرض الزخرفة
- مزج زخارف float ذات 32 بت
- سمة adapterInfo في GPUDevice
- ضبط سياق لوحة الرسم بتنسيق غير صالح يؤدي إلى ظهور خطأ JavaScript
- قيود الفلترة على أداة أخذ العيّنات على الزخارف
- تجربة المجموعات الفرعية الموسّعة
- تحسين تجربة المطوّرين
- التوافق التجريبي مع تنسيقات الزخارف العادية ذات 16 بت
- آخر الأخبار من Dawn
Chrome 131
- مسافات القطع في WGSL
- GPUCanvasContext getConfiguration()
- يجب ألا تحتوي الأشكال الأساسية للنقاط والخطوط على انحياز العمق
- وظائف الفحص الشامل المضمّنة للمجموعات الفرعية
- التوافق التجريبي مع multi-draw indirect
- خيار تجميع وحدة تظليل strict math
- إزالة GPUAdapter requestAdapterInfo()
- آخر الأخبار من Dawn
Chrome 130
- المزج من مصدرَين
- تحسينات على وقت تجميع التظليل على Metal
- إيقاف GPUAdapter requestAdapterInfo() نهائيًا
- آخر الأخبار من Dawn
Chrome 129
- التوافق مع النطاق العالي الديناميكية (HDR) باستخدام وضع ربط درجات الألوان في لوحة الرسم
- توسيع نطاق التوافق مع المجموعات الفرعية
- آخر الأخبار من Dawn
Chrome 128
- تجربة المجموعات الفرعية
- إيقاف ضبط انحياز العمق للخطوط والنقاط نهائيًا
- إخفاء تحذير "أدوات مطوري البرامج" بشأن الخطأ غير الذي لم يتم رصده إذا كان preventDefault
- WGSL interpolate sampling first and either
- آخر الأخبار من Dawn
Chrome 127
- التوافق التجريبي مع OpenGL ES على Android
- سمة info في GPUAdapter
- تحسينات على إمكانية التشغيل التفاعلي مع WebAssembly
- أخطاء محسّنة في أداة ترميز الأوامر
- آخر الأخبار من Dawn
Chrome 126
- زيادة الحد الأقصى maxTextureArrayLayers
- تحسين تحميل المخزن المؤقت لواجهة Vulkan الخلفية
- تحسينات على وقت تجميع التظليل
- يجب أن تكون المخازن المؤقتة للأوامر المُرسَلة فريدة
- آخر الأخبار من Dawn
Chrome 125
Chrome 124
- زخارف التخزين للقراءة فقط والقراءة والكتابة
- التوافق مع عاملي الخدمة والعاملين المشترَكين
- سمات معلومات وحدة معالجة الرسومات الجديدة
- إصلاح الأخطاء
- آخر الأخبار من 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
- زخارف float ذات 32 بت قابلة للفلترة
- تنسيق الرأس unorm10-10-10-2
- تنسيق الزخرفة rgb10a2uint
- آخر الأخبار من Dawn
Chrome 118
- التوافق مع HTMLImageElement وImageData في
copyExternalImageToTexture() - التوافق التجريبي مع زخرفة التخزين للقراءة والكتابة والقراءة فقط
- آخر الأخبار من Dawn
Chrome 117
- إلغاء ضبط مخزن مؤقت للرأس
- إلغاء ضبط مجموعة الربط
- إخفاء الأخطاء الناتجة عن إنشاء مسار العرض غير المتزامن عند فقدان الجهاز
- تعديلات على إنشاء وحدة تظليل SPIR-V
- تحسين تجربة المطوّرين
- تخزين مسارات العرض مؤقتًا باستخدام تنسيق تم إنشاؤه تلقائيًا
- آخر الأخبار من Dawn
Chrome 116
- التكامل مع WebCodecs
- الجهاز المفقود الذي تم عرضه من خلال GPUAdapter
requestDevice() - الحفاظ على سلاسة تشغيل الفيديو إذا تم استدعاء
importExternalTexture() - الامتثال للمواصفات
- تحسين تجربة المطوّرين
- آخر الأخبار من Dawn
Chrome 115
- إضافات لغة WGSL المتوافقة
- التوافق التجريبي مع Direct3D 11
- الحصول على وحدة معالجة الرسومات المنفصلة تلقائيًا عند توصيل الجهاز بمصدر طاقة التيار المتردد
- تحسين تجربة المطوّرين
- آخر الأخبار من Dawn
Chrome 114
- تحسين JavaScript
- تعرض getCurrentTexture() على لوحة رسم غير مضبوطة InvalidStateError
- آخر الأخبار من WGSL
- آخر الأخبار من Dawn