دمج WebCodecs
تعرض WebGPU واجهة برمجة تطبيقات لإنشاء عناصر "زخرفة خارجية" غير شفافة من HTMLVideoElement
إلى importExternalTexture()
. يمكنك استخدام هذه العناصر لأخذ عيّنة من إطارات الفيديو بكفاءة، بدون الحاجة إلى نسخ البيانات مباشرةً من بيانات نموذج ألوان YUV المصدر.
مع ذلك، لم تسمح المواصفات الأولية لـ WebGPU بإنشاء كائنات GPUExternalTexture
من كائنات WebCodecs VideoFrame
. هذه الإمكانية مهمة للتطبيقات المتقدمة لمعالجة الفيديوهات التي تستخدم حاليًا برامج ترميز الويب وتريد دمج WebGPU في مسار معالجة الفيديوهات. يضيف دمج WebCodecs دعمًا لاستخدام VideoFrame
كمصدر لمكالمة GPUExternalTexture
ومكالمة copyExternalImageToTexture()
. اطّلِع على المثال التالي، وإدخال chromestatus.
// Access the GPU device.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
// Create VideoFrame from HTMLVideoElement.
const video = document.querySelector("video");
const videoFrame = new VideoFrame(video);
// Create texture from VideoFrame.
const texture = device.importExternalTexture({ source: videoFrame });
// TODO: Use texture in bind group creation.
يمكنك مراجعة النموذج التجريبي تحميل الفيديو باستخدام WebCodecs لتشغيله.
تم إرجاع الجهاز المفقود بواسطة GPUAdapter requestDevice()
إذا تعذّر إكمال الإجراء requestDevice()
على GPUAdapter
لأنّه سبق استخدامه لإنشاء GPUDevice
، سيتم توصيله الآن بوضع علامة على GPUDevice
تشير إلى أنّه مفقود، بدلاً من عرض وعد يتم رفضه من خلال null
. راجِع المشكلة chromium:1234617.
const adapter = await navigator.gpu.requestAdapter();
const device1 = await adapter.requestDevice();
// New! The promise is not rejected anymore with null.
const device2 = await adapter.requestDevice();
// And the device is immediately marked as lost.
const info = await device2.lost;
الحفاظ على سلاسة تشغيل الفيديو إذا تم استدعاء الدالة importExternalTexture()
عند استدعاء importExternalTexture()
مع HTMLVideoElement
، لن يتم تقييد تشغيل الفيديو المرتبط مرة أخرى عندما لا يكون الفيديو مرئيًا في إطار العرض. راجِع المشكلة chromium:1425252.
مطابقة المواصفات
إنّ الوسيطة message
في الدالة الإنشائية GPUPipelineError()
اختيارية. ويمكنك الاطِّلاع على تغيير chromium:4613967.
يظهر خطأ عند استدعاء createShaderModule()
إذا كان مصدر WGSL code
يحتوي على \0
. راجِع مشكلة dawn:1345.
الحد الأقصى التلقائي لمستوى التفاصيل (lodMaxClamp
) المستخدَم عند استخدام عيّنة من زخرفة باستخدام createSampler()
هو 32. ويمكنك الاطّلاع على تغيير chromium:4608063.
تحسين تجربة المطوّرين
يتم عرض رسالة في وحدة تحكّم JavaScript في "أدوات مطوّري البرامج" لتذكير المطوّرين عندما يستخدمون WebGPU على نظام أساسي غير متوافق. ويمكنك الاطِّلاع على تغيير chromium:4589369.
تظهر رسائل الخطأ المتعلقة بالتحقق من صحة المخزن المؤقت على الفور في وحدة تحكُّم JavaScript في "أدوات مطوّري البرامج" عند تعذُّر getMappedRange()
بدون إجبار المطوّرين على إرسال الأوامر إلى قائمة الانتظار. ويمكنك الاطِّلاع على تغيير chromium:4597950.
الإشعارات عند الفجر
تمت إعادة تسمية مفتاح تصحيح أخطاء disallow_unsafe_apis
ليصبح allow_unsafe_apis
وأصبح غير مفعّل تلقائيًا. يؤدي مفتاح التبديل هذا إلى إيقاف أخطاء التحقّق من الصحة في نقاط إدخال واجهة برمجة التطبيقات أو مجموعات المَعلمات التي لا تُعتبر آمنة بعد. ويمكن أن تكون مفيدة في تصحيح الأخطاء.
راجِع مشكلة dawn:1685.
تمت إزالة السمة source
المتوقّفة نهائيًا والخاصة ببرامج wgpu::ShaderModuleWGSLDescriptor
لصالح code
. يمكنك الاطّلاع على تغيير الفجر:130321.
تم تنفيذ طريقة wgpu::RenderBundle::SetLabel()
غير المتوفّرة. يمكنك الاطّلاع على تغيير الفجر:134502.
ويمكن للتطبيقات طلب خلفية معيّنة عند الحصول على محوّل يتضمّن الخيار wgpu::RequestAdapterOptionsBackendType
. يمكنك الاطّلاع على مثال أدناه ومشكلة dawn:1875.
wgpu::RequestAdapterOptionsBackendType backendTypeOptions = {};
backendTypeOptions.backendType = wgpu::BackendType::D3D12;
wgpu::RequestAdapterOptions options = {};
options.nextInChain = &backendTypeOptions;
// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);
تمت إضافة طريقة SwapChain::GetCurrentTexture()
جديدة مع الاستخدامات الإضافية لزخارف سلسلة التبديل بحيث يمكن استخدام wgpu::Texture
الذي تم إرجاعه في النُسخ. يمكنك الاطّلاع على مثال أدناه ومشكلة dawn:1551.
wgpu::SwapChain swapchain = myDevice.CreateSwapChain(mySurface, &myDesc);
swapchain.GetCurrentTexture();
swapchain.Present();
يتناول هذا فقط بعض النقاط الرئيسية. يمكنك الاطّلاع على القائمة الشاملة لعمليات الالتزام.
الميزات الجديدة في 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
- إشعارات الفجر