قد يبدو عدد ميزات WebGPU قليلاً هذه المرة، ولكن هناك تحسينات كبيرة على وشك الظهور. ستتضمّن الإصدارات التالية ميزات مثل DP4a، ونسيج التخزين للقراءة فقط والقراءة والكتابة، والتحكّم المنفصل في جانبَي الاستنسل والعمق، والعرض على شرائح نسيج ثلاثي الأبعاد، وتحسينات على تجميع التظليل.
في هذه الأثناء، تعرَّف على كيفية تعزيز اختبار نموذج الذكاء الاصطناعي على الويب باستخدام WebGPU وتوافق WebGL في Chrome بلا واجهة مستخدم رسومية وسبب إيقاف WebGPU أو عدم عمله في Chrome.
توسيع نطاق الوصول باستخدام وضع التوافق (ميزة قيد التطوير)
يتوافق WebGPU بشكلٍ جيد مع واجهات برمجة التطبيقات الحديثة للرسومات (Vulkan وMetal وD3D12)، ولكن بعض الأجهزة لا تتوافق معها. يحدّ ذلك من إمكانية الوصول إلى WebGPU، خاصةً على منصات مثل Windows (لا يتوفّر D3D11.1+ لدى% 31 من مستخدمي Chrome)، وAndroid (لا يتوفّر Vulkan 1.1+ لدى% 23 من المستخدمين)، وChromeOS (يزداد استخدام Vulkan).
يعمل فريق Chrome على وضع توافق في WebGPU لمعالجة هذه المشكلة من خلال توفير إصدار مقيّد قليلاً من WebGPU يعمل على واجهات برمجة التطبيقات القديمة مثل D3D11 وOpenGL ES. سيؤدي ذلك إلى توسيع قاعدة المستخدمين المحتملين لـ WebGPU.
من المهم الإشارة إلى أنّ التطبيقات التي تستخدم وضع التوافق تظل تطبيقات WebGPU صالحة تمامًا. ستنتقل الأجهزة التي لا تتوافق مع وضع التوافق بسلاسة إلى محوّل WebGPU الأساسي، ما يضمن سهولة الاستخدام على نطاق واسع.
يمكنك الاطّلاع على الاقتراح وكتابة تعليق إذا كانت لديك أسئلة.
زيادة الحدّ الأقصى لـ maxVertexAttributes
الحدّ الأقصى لعدد السمات في جميع المخازن المؤقتة عند إنشاء GPURenderPipeline هو 16 تلقائيًا. يمكنك الآن طلب ما يصل إلى 30 سمة باستخدام الحدّ الأقصى maxVertexAttributes عندما يكون ذلك متاحًا. يمكنك الاطّلاع على المثال التالي والمشكلة dawn:2223.
const adapter = await navigator.gpu.requestAdapter();
if (adapter.limits.maxVertexAttributes < 30) {
// When the desired limit isn't supported, take action to either fall back to
// a code path that does not require the higher limit or notify the user that
// their device does not meet minimum requirements.
}
// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
requiredLimits: { maxVertexAttributes: 30 },
});
آخر الأخبار في Dawn
تمت إضافة مفتاح تبديل جديد للمثيل باسم "expose_wgsl_experimental_features" لجعل المثيل يعرض ميزات WGSL التجريبية فقط وليس الميزات غير الآمنة، ما يتيح استخدام ميزات WGSL التجريبية الآمنة بدون الحاجة إلى تفعيل مفتاح التبديل "allow_unsafe_apis". يمكنك الاطّلاع على المشكلة dawn:2260.
تشمل التحسينات الأخيرة على روابط Dawn لـ Node.js ما يلي:
- تمت إضافة
GPUSupportedFeatures::getSize(). - تم تنفيذ حالة عدم الحداثة في
GPUAdapter. - يتم الآن الإبلاغ عن
GPUInternalErrorبشكلٍ صحيح للأجهزة. - يمكن الآن تعداد السمات.
لا يشمل ذلك سوى بعض النقاط الرئيسية. يمكنك الاطّلاع على القائمة الشاملة لعمليات الإرسال.
الميزات الجديدة في WebGPU
في ما يلي قائمة بكل ما تم تناوله في سلسلة "الميزات الجديدة في WebGPU".
Chrome 147-148
Chrome 146
- توافق وضع WebGPU مع OpenGL ES 3.1
- المرفقات المؤقتة
- إضافة texture_and_sampler_let في WGSL
- آخر الأخبار في Dawn
Chrome 145
- إضافة subgroup_uniformity في WGSL
- ربط المخزن المؤقت المتزامن التجريبي في العاملين
- آخر الأخبار في Dawn
Chrome 144
- إضافة subgroup_id في WGSL
- إضافة uniform_buffer_standard_layout في WGSL
- WebGPU على Linux
- تسريع writeBuffer وwriteTexture
- آخر الأخبار في Dawn
Chrome 143
Chrome 142
Chrome 141
- اكتمل Tint IR
- تحليل نطاق الأعداد الصحيحة في برنامج تجميع WGSL
- تعديل SPIR-V 1.4 لواجهة Vulkan الخلفية
- آخر الأخبار في Dawn
Chrome 140
- تستهلك طلبات الجهاز المحوّل
- اختصار لاستخدام النسيج عندما يتم استخدام طريقة عرض النسيج
- تتوافق WGSL textureSampleLevel مع النسيج الأحادي الأبعاد
- إيقاف استخدام نسيج التخزين للقراءة فقط bgra8unorm
- إزالة سمة GPUAdapter isFallbackAdapter
- آخر الأخبار في Dawn
Chrome 139
- دعم النسيج ثلاثي الأبعاد لصيغ الضغط BC وASTC
- ميزة "core-features-and-limits" الجديدة
- مرحلة التجربة والتقييم لوضع التوافق في WebGPU
- آخر الأخبار في Dawn
Chrome 138
- اختصار لاستخدام المخزن المؤقت كمورد ربط
- تغييرات في متطلبات حجم المخازن المؤقتة التي يتم ربطها عند الإنشاء
- تقرير بنية وحدات معالجة الرسومات الحديثة
- إيقاف سمة GPUAdapter isFallbackAdapter
- آخر الأخبار في Dawn
Chrome 137
- استخدام طريقة عرض النسيج لربط externalTexture
- نسخ المخازن المؤقتة بدون تحديد الإزاحات والحجم
- WGSL workgroupUniformLoad باستخدام مؤشر إلى atomic
- سمة GPUAdapterInfo powerPreference
- إزالة سمة GPURequestAdapterOptions compatibilityMode
- آخر الأخبار في Dawn
Chrome 136
- سمة GPUAdapterInfo isFallbackAdapter
- تحسينات على وقت تجميع التظليل على D3D12
- حفظ صور لوحة الرسم ونسخها
- إزالة القيود المفروضة على وضع التوافق
- آخر الأخبار في Dawn
Chrome 135
- السماح بإنشاء تخطيط خط الأنابيب باستخدام تخطيط مجموعة الربط الخالي
- السماح بتوسيع منافذ العرض لتتجاوز حدود أهداف العرض
- سهولة الوصول إلى وضع التوافق التجريبي على Android
- إزالة الحدّ الأقصى maxInterStageShaderComponents
- آخر الأخبار في Dawn
Chrome 134
- تحسين أحمال عمل تعلُّم الآلة باستخدام المجموعات الفرعية
- إزالة إمكانية استخدام أنواع النسيج القابلة للفلترة من النوع float كأنواع قابلة للمزج
- آخر الأخبار في Dawn
Chrome 133
- تنسيقات الرأس الإضافية unorm8x4-bgra و1-component
- السماح بطلب حدود غير معروفة باستخدام قيمة غير محدّدة
- تغييرات في قواعد المحاذاة في WGSL
- تحسينات على الأداء في WGSL باستخدام discard
- استخدام VideoFrame displaySize للنسيج الخارجي
- التعامل مع الصور ذات الاتجاهات غير التلقائية باستخدام copyExternalImageToTexture
- تحسين تجربة المطوّرين
- تفعيل وضع التوافق باستخدام featureLevel
- تنظيف ميزات المجموعات الفرعية التجريبية
- إيقاف الحدّ الأقصى maxInterStageShaderComponents
- آخر الأخبار في Dawn
Chrome 132
- استخدام طريقة عرض النسيج
- مزج نسيج float ذي 32 بت
- سمة GPUDevice adapterInfo
- ضبط سياق لوحة الرسم باستخدام تنسيق غير صالح يؤدي إلى ظهور خطأ 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
- سمة GPUAdapter info
- تحسينات على التوافق التشغيلي مع 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