Published: July 30, 2025
دعم الزخارف ثلاثية الأبعاد لصيغ الضغط BC وASTC
تضيف ميزتا WebGPU "texture-compression-bc-sliced-3d" و"texture-compression-astc-sliced-3d" دعمًا للزخارف ثلاثية الأبعاد باستخدام صيغ Block Compression (BC) وAdaptive Scalable Texture Compression (ASTC). يتيح لك ذلك الاستفادة من إمكانات الضغط الفعّالة لصيغ BC وASTC لبيانات الزخارف الحجمية، ما يؤدي إلى تقليل كبير في استهلاك الذاكرة ومتطلبات معدل نقل البيانات بدون فقدان كبير في الجودة المرئية. ويكون ذلك مفيدًا بشكل خاص في مجالات مثل التصوّر العلمي والتصوير الطبي وتقنيات العرض المتقدّمة.
يتحقّق مقتطف الرمز البرمجي التالي مما إذا كان المحوّل يتيح استخدام الزخارف ثلاثية الأبعاد باستخدام صيغ الضغط BC وASTC، ويطلب جهازًا يتضمّن هذه الميزات إذا كانت متاحة.
const adapter = await navigator.gpu.requestAdapter();
const requiredFeatures = [];
if (adapter?.features.has("texture-compression-bc-sliced-3d")) {
requiredFeatures.push(
"texture-compression-bc",
"texture-compression-bc-sliced-3d",
);
}
if (adapter?.features.has("texture-compression-astc-sliced-3d")) {
requiredFeatures.push(
"texture-compression-astc",
"texture-compression-astc-sliced-3d",
);
}
const device = await adapter?.requestDevice({ requiredFeatures });
// Later on...
if (device.features.has("texture-compression-astc-sliced-3d")) {
// Create a 3D texture using ASTC compression
} else if (device.features.has("texture-compression-bc-sliced-3d")) {
// Create a 3D texture using BC compression
} else {
// Fallback: Create an uncompressed 3D texture
}
يمكنك استكشاف صور المسح الضوئي ثلاثية الأبعاد للدماغ من خلال الاطّلاع على نموذج WebGPU لـ Volume Rendering - Texture 3D والاطّلاع على إدخال chromestatus.
ميزة "core-features-and-limits" الجديدة
نطرح ميزة "core-features-and-limits" جديدة لوضع التوافق القادم في WebGPU. تشير هذه الميزة إلى أنّ المحوّل أو الجهاز يتيح الميزات والحدود الأساسية لمواصفات WebGPU. إنّ "core" WebGPU هو الإصدار الوحيد المتاح حاليًا، لذا يجب أن تتضمّن جميع عمليات تنفيذ WebGPU ميزة "core-features-and-limits" في ميزاتها المتاحة.
في المستقبل، عند إطلاق وضع التوافق في WebGPU، قد لا يتضمّن المحوّل أو الجهاز هذه الميزة للإشارة إلى أنّه محوّل أو جهاز في وضع التوافق وليس محوّلًا أو جهازًا أساسيًا. عند تفعيل هذه الميزة على جهاز، يتم رفع جميع القيود المفروضة على وضع التوافق (الميزات والحدود).
للحصول على شرح مفصّل وطريقة الاستخدام في وضع التوافق في WebGPU، يُرجى الرجوع إلى الشرح والقسم التالي. يمكنك الاطّلاع على المشكلة 418025721.
مرحلة التجربة والتقييم لوضع التوافق في WebGPU
WebGPU هي واجهة برمجة تطبيقات قوية مصمّمة للرسومات الحديثة، وتتوافق مع تقنيات مثل Vulkan وMetal وDirect3D 12. ومع ذلك، لا يزال عدد كبير من الأجهزة لا يتيح استخدام واجهات برمجة التطبيقات الأحدث هذه. على سبيل المثال، على نظام التشغيل Windows، لا يتوفّر Direct3D 11.1 أو إصدار أحدث لدى% 31 من مستخدمي Chrome. على نظام التشغيل Android، لا يتوفّر Vulkan 1.1 لدى% 15 من مستخدمي Android، بما في ذلك% 10 لا يتوفّر لديهم Vulkan على الإطلاق.
يطرح ذلك تحديًا للمطوّرين الذين يريدون زيادة مدى وصول تطبيقاتهم إلى أقصى حد. غالبًا ما يُضطرون إلى تطوير عمليات تنفيذ متعددة (على سبيل المثال، WebGPU وWebGL)، أو قبول جمهور أكثر محدودية باستخدام WebGPU الأساسي، أو الالتزام بـ WebGL، ما يؤدي إلى عدم الاستفادة من الميزات المتقدّمة في WebGPU، مثل الحوسبة على وحدة معالجة الرسومات.
يقدّم وضع التوافق في WebGPU حلاً من خلال توفير إصدار اختياري ومقيّد قليلاً من WebGPU API. تم تصميم هذا الوضع لتشغيل واجهات برمجة تطبيقات الرسومات الأقدم، مثل OpenGL ES 3.1 وDirect3D11، ما يؤدي إلى توسيع مدى وصول تطبيقك بشكل كبير إلى الأجهزة التي لا تتيح استخدام واجهات برمجة تطبيقات الرسومات الحديثة والصريحة التي يتطلبها WebGPU الأساسي.
بما أنّ وضع التوافق هو مجموعة فرعية من WebGPU، فإنّ التطبيقات التي يتم إنشاؤها باستخدام هذا الوضع تكون أيضًا تطبيقات WebGPU "أساسية" صالحة. يعني ذلك أنّها ستعمل بسلاسة حتى على المتصفحات التي لا تتيح استخدام وضع التوافق على وجه التحديد.
بالنسبة إلى العديد من التطبيقات الأساسية، يكون تفعيل وضع التوافق بسيطًا مثل تمرير featureLevel: "compatibility" عند استدعاء requestAdapter(). قد تتطلب التطبيقات الأكثر تعقيدًا تعديلات طفيفة لتناسب قيود الوضع. يُعد نموذج WebGPU لـ Generate Mipmap مثالاً جيدًا.
// Request a GPUAdapter in compatibility mode
const adapter = await navigator.gpu.requestAdapter({
featureLevel: "compatibility",
});
const hasCore = adapter?.features.has("core-features-and-limits");
const device = await adapter?.requestDevice({
requiredFeatures: (hasCore ? ["core-features-and-limits"] : []),
});
if (device?.features.has("core-features-and-limits")) {
// Compatibility mode restrictions will apply
}
تفعيل الميزة
لا يكون وضع التوافق في WebGPU مفعّلاً تلقائيًا في Chrome، ولكن يمكن تجربته في Chrome 139 من خلال تفعيل الوظيفة بشكل صريح. يمكنك تفعيلها محليًا من خلال تفعيل العلامة "Experimental Web Platform Features" flag على chrome://flags/#enable-experimental-web-platform-features.
لتفعيلها لجميع زوّار تطبيقك، يتم إجراء مرحلة التجربة والتقييم من المقرر أن تنتهي في Chrome 145 (21 أبريل 2026). للمشاركة في مرحلة التجربة والتقييم، يُرجى الرجوع إلى مشاركة بدء استخدام مراحل التجربة والتقييم.
آخر الأخبار من Dawn
تمت إضافة وسيطة message إلى الدالة WGPUQueueWorkDoneCallback لتكون أكثر اتساقًا مع دوال معاودة الاتصال الأخرى التي تأخذ حالة أيضًا. يمكنك الاطّلاع على طلب السحب webgpu-headers.
عند ربط `emdawnwebgpu` بالرمز -sSHARED_MEMORY، يتم أيضًا تجميع ملف webgpu.cpp باستخدام هذه العلامة. يمكنك الاطّلاع على Dawn CL 244075.
لا يغطي ذلك سوى بعض النقاط الرئيسية. يمكنك الاطّلاع على القائمة الشاملة لعمليات الإرسال.
الميزات الجديدة في 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 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
- السماح بإنشاء تنسيق خط أنابيب باستخدام تنسيق مجموعة الربط null
- السماح بتوسيع منافذ العرض إلى ما بعد حدود أهداف العرض
- تسهيل الوصول إلى وضع التوافق التجريبي على Android
- إزالة الحد الأقصى maxInterStageShaderComponents
- آخر الأخبار من Dawn
Chrome 134
- تحسين أحمال عمل تعلُّم الآلة باستخدام المجموعات الفرعية
- إزالة إمكانية استخدام أنواع الزخارف القابلة للفلترة من النوع float كزخارف قابلة للمزج
- آخر الأخبار من Dawn
Chrome 133
- صيغ الرأس الإضافية unorm8x4-bgra و1-component
- السماح بطلب حدود غير معروفة باستخدام قيمة غير محدّدة
- تغييرات في قواعد المحاذاة في WGSL
- تحسينات في الأداء في WGSL باستخدام discard
- استخدام displaySize في VideoFrame للزخارف الخارجية
- التعامل مع الصور ذات الاتجاهات غير التلقائية باستخدام 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 أولاً ثم إما
- آخر الأخبار من 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