Published: Oct 22, 2025
تم توسيع إمكانات دعم تنسيق الزخرفة
تتيح ميزة "texture-formats-tier1" الجديدة في وحدة معالجة الرسومات للمطوّرين نقل المحتوى الحالي إلى الويب بدون الحاجة إلى إعادة كتابته لإمكانات WebGPU المنخفضة. وهي تتيح تنسيقات الزخرفة الجديدة "r16unorm" و"r16snorm" و"rg16unorm" و"rg16snorm" و"rgba16unorm" و"rgba16snorm" مع إمكانات إرفاق العرض والمزج وأخذ عيّنات متعددة، وإمكانية الوصول إلى زخرفة التخزين "read-only" أو "write-only". كما تتيح تنسيقات الزخرفة الحالية "r8snorm" و"rg8snorm" و"rgba8snorm" مع إمكانات إرفاق العرض والمزج وأخذ عيّنات متعددة والحلّ. يمكن أيضًا استخدام المزيد من تنسيقات الزخرفة مع "read-only" أو "write-only" إمكانية الوصول إلى زخرفة التخزين.
تتيح ميزة "texture-formats-tier2" الجديدة في وحدة معالجة الرسومات إمكانية الوصول إلى زخرفة التخزين "read-write" لتنسيقات معيّنة، وهو أمر بالغ الأهمية لمشاريع مثل نقل Unreal Engine إلى الويب. يُرجى العِلم أنّ تفعيل "texture-formats-tier2" عند إنشاء الجهاز يؤدي تلقائيًا إلى تفعيل "texture-formats-tier1".
يُرجى الاطّلاع على المقتطف التالي وإدخال chromestatus.
const adapter = await navigator.gpu.requestAdapter();
const requiredFeatures = [];
if (adapter.features.has("texture-format-tier1")) {
requiredFeatures.push("texture-format-tier1");
}
if (adapter.features.has("texture-format-tier2")) {
requiredFeatures.push("texture-format-tier2");
}
const device = await adapter.requestDevice({ requiredFeatures });
// Later on, when dealing with "r8unorm" texture formats for example...
if (device.features.has("texture-format-tier2")) {
// Use "read-write" storage texture access...
} else if (device.features.has("texture-format-tier1")) {
// Use "read-only" or "write-only" storage texture access...
} else {
// Fallback: Use another texture format...
}
نشكر فريق Intel على عمله.
فهرس العناصر الأساسية في WGSL
primitive_index هي قيمة مضمّنة في WGSL تحدّد بشكلٍ فريد العنصر الأساسي الحالي (مثل نقطة أو خط أو مثلث) الذي يعالجه برنامج تظليل الأجزاء. يبدأ من 0، ويزيد بمقدار 1 بعد معالجة كل عنصر أساسي، ويعود إلى 0 بين كل نموذج يتم رسمه.
عندما تكون ميزة "primitive-index" متاحة في GPUAdapter، اطلب GPUDevice باستخدام هذه الميزة للحصول على دعم فهرس العناصر الأساسية في WGSL، وفعِّل هذه الإضافة بشكلٍ صريح في رمز WGSL باستخدام enable primitive_index;. بعد التفعيل، استخدِم قيمة primitive_index المضمّنة من النوع عدد صحيح في برنامج تظليل الأجزاء للوصول إلى البيانات لكل عنصر أساسي أو تنفيذ منطق يختلف لكل شكل هندسي مميّز يتم عرضه، على سبيل المثال.
يعرض مقتطف الرمز التالي برنامج تظليل الأجزاء الذي يعرض العنصر الأساسي الثاني باللون الأحمر وجميع العناصر الأساسية الأخرى باللون الأزرق.
const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("primitive-index")) {
throw new Error("Primitive index support is not available");
}
// Explicitly request primitive index support.
const device = await adapter.requestDevice({
requiredFeatures: ["primitive-index"],
});
const fragmentShaderModule = device.createShaderModule({ code: `
enable primitive_index;
@fragment
fn main(@builtin(primitive_index) i : u32) -> @location(0) vec4f {
if (i == 1) {
return vec4f(1, 0, 0, 1);
}
return vec4f(0, 1, 0, 1);
}`,
});
// Send the appropriate commands to the GPU...
يمكنك استكشاف المزيد من خلال الاطّلاع على نموذج "اختيار العناصر الأساسية" والاطّلاع على إدخال chromestatus.
آخر الأخبار في Dawn
غيّرت السمة DAWN_BUILD_MONOLITHIC_LIBRARY في CMake التي كانت تُستخدم للتعامل مع نوع المكتبة الموحّدة التي سيتم إنشاؤها قيمتها التلقائية من OFF إلى STATIC، ما يؤدي إلى إنشاء ملفات libwebgpu* تلقائيًا.
تتعامل Dawn الآن بشكلٍ سليم مع القيمة التلقائية wgpu::PresentMode::Undefined عند ضبط wgpu::Surface. يُرجى الاطّلاع على المشكلة 441410668.
لا يغطي هذا المقال سوى بعض النقاط الرئيسية. يُرجى الاطّلاع على القائمة الشاملة لعمليات الإرسال.
الميزات الجديدة في WebGPU
في ما يلي قائمة بكل ما تم تناوله في سلسلة "الميزات الجديدة في WebGPU".
Chrome 149-150
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 IR
- تحليل نطاق الأعداد الصحيحة في برنامج تجميع WGSL
- تعديل SPIR-V 1.4 للواجهة الخلفية Vulkan
- آخر الأخبار في Dawn
Chrome 140
- تستهلك طلبات الجهاز المحوّل
- اختصار لاستخدام الزخرفة عندما يتم استخدام طريقة عرض الزخرفة
- تتيح الدالة textureSampleLevel في WGSL استخدام الزخارف أحادية الأبعاد
- إيقاف استخدام زخرفة التخزين للقراءة فقط bgra8unorm نهائيًا
- إزالة سمة isFallbackAdapter في GPUAdapter
- آخر الأخبار في Dawn
Chrome 139
- إتاحة الزخارف ثلاثية الأبعاد لتنسيقات BC وASTC المضغوطة
- ميزة "core-features-and-limits" الجديدة
- مرحلة التجربة والتقييم لوضع التوافق مع WebGPU
- آخر الأخبار في Dawn
Chrome 138
- اختصار لاستخدام المخزن المؤقت كمورد ربط
- تغييرات في متطلبات حجم المخازن المؤقتة التي يتم ربطها عند الإنشاء
- تقرير البنية لوحدات معالجة الرسومات الحديثة
- إيقاف سمة isFallbackAdapter في GPUAdapter نهائيًا
- آخر الأخبار في Dawn
Chrome 137
- استخدام طريقة عرض الزخرفة لربط externalTexture
- نسخ المخازن المؤقتة بدون تحديد الإزاحات والحجم
- الدالة workgroupUniformLoad في WGSL باستخدام مؤشر إلى 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
- الدالة getConfiguration() في GPUCanvasContext
- يجب ألا يكون للعناصر الأساسية النقطية والخطية انحياز في العمق
- وظائف مضمّنة للفحص الشامل للمجموعات الفرعية
- دعم تجريبي للرسم المتعدد غير المباشر
- الخيار strict math لتجميع وحدة برنامج التظليل
- إزالة الدالة requestAdapterInfo() في GPUAdapter
- آخر الأخبار في Dawn
Chrome 130
- المزج من مصدر مزدوج
- تحسينات في وقت تجميع برنامج التظليل على Metal
- إيقاف الدالة requestAdapterInfo() في GPUAdapter نهائيًا
- آخر الأخبار في Dawn
Chrome 129
- إتاحة النطاق العالي الديناميكية (HDR) مع وضع ربط درجات الألوان في لوحة الرسم
- إتاحة المجموعات الفرعية الموسّعة
- آخر الأخبار في Dawn
Chrome 128
- تجربة المجموعات الفرعية
- إيقاف ضبط انحياز العمق للخطوط والنقاط نهائيًا
- إخفاء تحذير "أدوات مطوري البرامج" عن الخطأ غير الذي لم يتم رصده إذا تم استدعاء preventDefault
- الدالة interpolate في WGSL لأخذ العيّنات أولاً ثم إما
- آخر الأخبار في 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