زيادة الحدّ الأقصى لعدد طبقات maxTextureArrayLayers
الحدّ الأقصى المسموح به لعدد طبقات الزخرفة الثنائية الأبعاد أو عمقها هو 256 تلقائيًا. يمكنك الآن طلب ما يصل إلى 2048 باستخدام الحدّ الأقصى maxTextureArrayLayers عندما يكون ذلك متاحًا. راجِع المثال التالي والمشكلة رقم 42241514.
const adapter = await navigator.gpu.requestAdapter();
if (adapter.limits.maxTextureArrayLayers < 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 texture array layers attributes.
const device = await adapter.requestDevice({
requiredLimits: { maxTextureArrayLayers: 2048 }
});
تحسين عملية تحميل المخزن المؤقت لوحدة Vulkan الخلفية
يتوفّر الآن مسار سريع عند استدعاء طريقة writeBuffer() في GPUQueue لوحدة Vulkan الخلفية. يمكن الآن كتابة البيانات مباشرةً في المخزن المؤقت الوجهة، ما يزيل الحاجة إلى نسخة إضافية ومزامنة. يقلّل هذا التحسين من حركة البيانات في الذاكرة اللازمة لتحميل البيانات إلى وحدة معالجة الرسومات.
يتطلّب التحسين في المسار السريع أن تكون ذاكرة المخزن المؤقت مرئية للمضيف وألا تتضمّن أي عمليات معلّقة على وحدة معالجة الرسومات. راجِع المشكلة رقم 42242084.
تحسينات على وقت تجميع التظليل
يعمل فريق Chrome على تحسين كفاءة Tint، وهو مجمّع لغة تظليل WebGPU. تعدِّل Tint حاليًا شجرة البنية التجريدية (AST) لرمز التظليل البرمجي عدة مرات قبل إنشاء رمز الآلة، وهي عملية تستهلك الكثير من الموارد على بعض الأنظمة الأساسية. لتحسين ذلك، يتم طرح تمثيل وسيط جديد (IR)، بالإضافة إلى وحدات خلفية مُعاد تصميمها تستخدمه. يهدف هذا التغيير إلى تسريع عملية تجميع التظليل.
يتم توسيع نطاق هذه التحسينات، التي يمكن الوصول إليها حاليًا على Android، بشكل تدريجي لتشمل أجهزة ChromeOS التي تتوافق مع WebGPU باستخدام وحدة Vulkan الخلفية. راجِع المشكلة رقم 42250751.
يجب أن تكون مخازن الأوامر المُرسَلة فريدة
يجب أن يكون كل GPUCommandBuffer يتم إرساله إلى GPUQueue باستخدام طريقة submit() فريدًا، وإلا سيتم إنشاء خطأ في التحقّق. كان هذا خطأ في المواصفات. راجِع المشكلة رقم 42241492.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
const commandEncoder = device.createCommandEncoder();
const commandBuffer = commandEncoder.finish();
device.queue.submit([commandBuffer, commandBuffer]);
// ⚠️ Validation fails because command buffers are not unique.
آخر الأخبار في Dawn
أصبح الآن برنامج webgpu_cpp.h المغلّف بلغة C++ يتضمّن الرأس فقط، ما يسهّل استخدامه ويسهّل دمجه مع برامج C++ مغلّفة بديلة. راجِع المشكلة رقم 40195122.
لم يعُد واجهة برمجة التطبيقات C في webgpu.h تعرض مفهوم كائنات Swapchain. يهدف هذا التغيير إلى التوافق بشكل وثيق مع واجهة برمجة تطبيقات JavaScript. يتم الآن إجراء الضبط الداخلي من خلال طريقة Configure() لكائن wgpu::Surface الجديد، والذي يخضع لتعديلات مستقبلية. يمكنك الاطّلاع على مثال في مستندات إنشاء تطبيق باستخدام WebGPU. راجِع المشكلة رقم 42241264.
يمكنك الاطّلاع على القائمة الشاملة لعمليات الإرسال.
الميزات الجديدة في 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 نهائيًا
- إزالة سمة 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 وذات المكوّن الواحد
- السماح بطلب حدود غير معروفة باستخدام قيمة غير محدّدة
- تغييرات على قواعد المحاذاة في 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