إضافات لغات WGSL المتوافقة
يعرض العنصر wgslLanguageFeatures
في العنصر GPU
أسماء إضافات اللغة المتوافقة مع WGSL. يتم تفعيل إضافات لغات WGSL المتوافقة تلقائيًا، وبالتالي لن تحتاج إلى طلبها بشكل صريح. هذه القائمة فارغة حاليًا، ولكن يمكنك توقّع الحصول على الكثير منها في المستقبل (على سبيل المثال، do-while loops
). يمكنك الاطّلاع على المشكلة dawn:1777.
if (navigator.gpu.wgslLanguageFeatures?.has("unknown-feature")) {
// Use unknown-feature in WGSL shader code.
}
الدعم التجريبي لـ Direct3D 11
ويعمل فريق Chromium على توفير إمكانية استخدام WebGPU في Direct3D 11. يمكنك الآن تجربة هذه الميزة محليًا عن طريق تشغيل متصفّح Chrome على نظام التشغيل Windows باستخدام علامات سطر الأوامر --enable-unsafe-webgpu --use-webgpu-adapter=d3d11
. راجِع مشكلة dawn:1705.
الحصول على وحدة معالجة رسومات منفصلة تلقائيًا على طاقة التيار المتردد
على أجهزة macOS المزوّدة بوحدة معالجة رسومات، يتم عرض وحدة معالجة الرسومات المنفصلة عندما يكون جهاز المستخدم موصولًا بمصدر طاقة التيار المتردد، وذلك في حال طلب requestAdapter()
بدون استخدام خيار powerPreference
. وبخلاف ذلك، يتم إرجاع وحدة معالجة الرسومات المدمَجة. يُرجى الاطّلاع على التغيير 4499307.
تحسين تجربة المطوّرين
تحذيرات جديدة في "أدوات مطوري البرامج"
في حال استخدام المفتاح depth
في GPUExtend3DDict
، سيظهر تحذير في "وحدة تحكُّم أدوات مطوّري البرامج" لأنّ المفتاح الصحيح هو depthOrArrayLayers
. راجع المشكلة chromium:1440900.
يتم إصدار تحذير أيضًا إذا كان GPUBlendComponent
يتضمن مزيج من الأعضاء الفاضحين والمُتعتقَبين باستخدام المحتوى. راجِع مشكلة dawn:1785.
على الرغم من صلاحية الإرسالات والرسومات بدون حجم صغير، يحث التحذير المطوّرين على تجنُّبها متى أمكن. راجِع مشكلة dawn:1786.
رسائل خطأ أفضل
يتم الآن تقديم رسالة خطأ محسّنة عند استخدام GPUCommandEncoder
إذا تم استدعاء finish()
من قبل. راجِع مشكلة dawn:1736.
عند إرسال المخازن المؤقتة للأوامر مع عناصر تم إتلافها، تظهر الآن تصنيفات المخازن المؤقتة للأوامر التي تم استخدامها في submit()
في رسالة الخطأ. راجِع مشكلة dawn:1747.
يتم الآن تحديد الجزء غير الصالح من حالة الاستنسل للعمق في رسالة الخطأ عند التحقّق من صحة depthStencil
. راجِع مشكلة dawn:1735.
تبلغ الآن رسالة خطأ التحقّق من صحة minBindingSize
المجموعة ورقم الربط الذي تعذّر التحقق من الصحة، بالإضافة إلى المورد الاحتياطي. راجِع مشكلة dawn:1604.
تم تحسين رسائل الخطأ التي تعرضها طريقة mapAsync()
على عنصر GPUBuffer
لمساعدة المطوّرين عند تصحيح الأخطاء. ويمكنك الاطّلاع على المثال أدناه والمشكلة chromium:1431622.
// Create a GPU buffer and map it.
const descriptor = { size: 0, usage: GPUBufferUsage.MAP_READ };
const buffer = device.createBuffer(descriptor);
buffer.mapAsync(GPUMapMode.READ);
// Before it has been mapped, request another mapping.
try {
await buffer.mapAsync(GPUMapMode.READ);
} catch (error) {
// New! Error message tells you mapping is already pending.
console.warn(error.message);
}
التصنيفات في أدوات تصحيح الأخطاء في نظام التشغيل macOS
يتيح لك مفتاح تبديل تصحيح أخطاء use_user_defined_labels_in_backend
إعادة توجيه تصنيفات العناصر إلى الخلفية لكي تظهر في أدوات تصحيح الأخطاء الخاصة بالنظام الأساسي، مثل RenderDoc أو PIX أو Materials. من الآن فصاعدًا، سيتم توفير تجربة تصحيح أخطاء أفضل على نظام التشغيل macOS عند تفعيله لتصحيح الأخطاء. راجِع مشكلة dawn:1784.
تسجيل HLSL في حال فشل التحويل
يتيح لك زر إيقاف/تفعيل تصحيح الأخطاء dump_shaders
تسجيل برامج تظليل WGSL وظلال الخلفية المترجَمة. من الآن فصاعدًا، عند تفعيل هذه الميزة لتصحيح الأخطاء، سيتم التخلص من بروتوكول HLSL في حال تعذّر تجميعه. راجِع مشكلة dawn:1681.
الإشعارات عند الفجر
لم يتم ضبط المخزن المؤقت للرأس
يتيح لك تمرير nullptr
بدلاً من wgpu::Buffer
إلى SetVertexBuffer()
في wgpu::RenderPassEncoder
أو wgpu::RenderBundleEncoder
إلغاء ضبط المخزن المؤقت الرأسي الذي سبق ضبطه في خانة محدَّدة. راجِع مشكلة dawn:1675.
// Set vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, nullptr);
المرفقات المؤقتة
يمكنك إنشاء المرفقات التي تسمح لعمليات تمرير العرض بالبقاء في ذاكرة المربّعات، وتجنُّب حركة بيانات VRAM وربما تجنُّب تخصيص VRAM للزخارف من خلال ضبط استخدام wgpu::TextureUsage::TransientAttachment
. هذه الميزة متاحة فقط لـ Metal وVulkan. راجِع مشكلة الفجر: 1695.
wgpu::TextureDescriptor desc;
desc.format = wgpu::TextureFormat::RGBA8Unorm;
desc.size = {1, 1, 1};
desc.usage = wgpu::TextureUsage::RenderAttachment |
wgpu::TextureUsage::TransientAttachment;
auto transientTexture = device.CreateTexture(&desc);
// You can now create views from the texture to serve as transient
// attachments, e.g. as color attachments in a render pipeline.
مبنى بدون "depot_tools
"
يتيح لك خيار CMake الجديد DAWN_FETCH_DEPENDENCIES
استرجاع تبعيات Dawn باستخدام نص برمجي في Python يقرأ ملفات DEPS بدلاً من طلب تثبيت depot_tools
من خلال جميع المشاريع التي تعتمد عليه. راجِع التغيير 131750.
الميزات الجديدة في WebGPU
قائمة بكل ما تمت مناقشته في سلسلة الميزات الجديدة في WebGPU.
الإصدار 125 من Chrome
الإصدار 124 من Chrome
- زخارف مساحة التخزين للقراءة فقط والقراءة
- دعم العاملين في مجال الخدمات والعاملين المشتركين
- السمات الجديدة لمعلومات المحوّل
- إصلاح الأخطاء
- إشعارات الفجر
الإصدار 123 من Chrome
- دعم دوال DP4a المضمنة في WGSL
- معلَمات غير محدودة للمؤشر في WGSL
- صيغة سكر لإزالة الإشارة إلى المركّبات في WGSL
- حالة منفصلة للقراءة فقط حول جوانب الاستنسل والعمق
- إشعارات الفجر
الإصدار 122 من Chrome
- توسيع مدى الوصول إلى الجمهور باستخدام وضع التوافق (ميزة قيد التطوير)
- زيادة حدّ maxVertexAttributes
- إشعارات الفجر
الإصدار 121 من Chrome
- إتاحة WebGPU على Android
- استخدام DXC بدلاً من FXC لتجميع أدوات التظليل على Windows
- طلبات البحث عن الطابع الزمني في بطاقات الحوسبة والعرض
- نقاط الإدخال التلقائية لوحدات أداة التظليل
- إتاحة view-p3 كمساحة لون GPUExternalTexture
- معلومات حول حِزم الذاكرة
- إشعارات الفجر
الإصدار 120 من Chrome
- دعم قيم النقطة العائمة 16 بت في WGSL
- إطلاق العنان لقدراتك
- تغييرات في حالة الاستنسل المعمَّق
- إشعارات حول المحوّل
- تحديد كم طلبات الطابع الزمني
- ميزات تنظيف الربيع
الإصدار 119 من متصفِّح Chrome
الإصدار 118 من متصفّح Chrome
- إتاحة استخدام HTMLImageElement وImageData في
copyExternalImageToTexture()
- الدعم التجريبي لزخرفة مساحة التخزين للقراءة فقط والقراءة فقط
- إشعارات الفجر
الإصدار 117 من Chrome
- عدم ضبط المخزن المؤقت للرأس
- إلغاء ضبط مجموعة الربط
- كتم صوت الأخطاء الناتجة عن إنشاء مسار غير متزامن عند فقدان الجهاز
- تعديلات على عملية إنشاء وحدة أداة تظليل SPIR-V
- تحسين تجربة المطوّرين
- تخزين مسارات التخزين المؤقت باستخدام تنسيق يتم إنشاؤه تلقائيًا
- إشعارات الفجر
الإصدار 116 من متصفّح Chrome
- دمج WebCodecs
- الجهاز المفقود الذي أعاده GPUAdapter
requestDevice()
- مواصلة تشغيل الفيديو بسلاسة في حال تسمية "
importExternalTexture()
" - مطابقة المواصفات
- تحسين تجربة المطوّرين
- إشعارات الفجر
الإصدار 115 من متصفّح Chrome
- إضافات لغات WGSL المتوافقة
- الدعم التجريبي للإصدار 11 من تقنية Direct3D
- استخدام وحدة معالجة الرسومات المنفصلة تلقائيًا باستخدام طاقة التيار المتردد
- تحسين تجربة المطوّرين
- إشعارات الفجر
الإصدار 114 من متصفّح Chrome
- تحسين JavaScript
- getCurrentTexture() على لوحة رسم لم يتم ضبطها تطرح ReplyStateError
- إشعارات من WGSL
- إشعارات الفجر