زخارف عائمة قابلة للفلترة تشغل 32 بت
تُستخدم الزخارف العائمة التي تشغل 32 بت لتخزين البيانات عالية الدقة، مثل صور النطاق العالي الديناميكية وخرائط العمق. وهي مهمة بشكل خاص لوحدات معالجة الرسومات المستخدَمة في الألعاب المتطورة والتطبيقات الاحترافية.
تصف ميزة "دعم الزخارف العائمة القابلة للفلترة التي تشغل 32 بت" قدرة وحدة معالجة الرسومات على فلترة الزخارف العائمة التي تشغل 32 بت. وهذا يعني أنّ وحدة معالجة الرسومات يمكنها تنعيم حواف الزخارف العائمة، ما يجعلها تبدو أقل خشونة. وهي تشبه الإضافة "OES_texture_float_linear" في WebGL.
لا تتوافق كل وحدات معالجة الرسومات مع الزخارف العائمة القابلة للفلترة التي تشغل 32 بت. عندما تتوفّر ميزة "float32-filterable" في GPUAdapter، يمكنك الآن طلب GPUDevice باستخدام هذه الميزة وفلترة الزخارف بتنسيقات "r32float" و"rg32float" و "rgba32float". يمكنك الاطّلاع على المثال التالي والمشكلة dawn:1664.
const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("float32-filterable")) {
throw new Error("Filterable 32-bit float textures support is not available");
}
// Explicitly request filterable 32-bit float textures support.
const device = await adapter.requestDevice({
requiredFeatures: ["float32-filterable"],
});
// Create a sampler with linear filtering.
const sampler = device.createSampler({
magFilter: "linear",
});
// Create a texture with rgba32float format.
const texture = device.createTexture({
size: [100, 100],
format: "rgba32float",
usage: GPUTextureUsage.COPY_DST | GPUTextureUsage.TEXTURE_BINDING,
});
// Write data to texture, create a bindgroup with sampler and texture and
// send the appropriate commands to the GPU....
تنسيق الرأس "unorm10-10-10-2"
تمت إضافة تنسيق رأس جديد يُسمى "unorm10-10-10-2" المعروف أيضًا باسم "rgb10a2" إلى مواصفات WebGPU. ويتكوّن من قيمة واحدة مضغوطة تشغل 32 بت مع أربع قيم عددية صحيحة غير سالبة عادية، مرتّبة على النحو التالي: 10 بت و10 بت و10 بت و2 بت. يمكنك الاطّلاع على المثال التالي والمشكلة dawn:2044.
// Define the layout of vertex attribute data with unorm10-10-10-2 format.
const buffers = [
{
arrayStride: 0,
attributes: [
{ format: "unorm10-10-10-2", offset: 0, shaderLocation: 0 },
],
},
];
// Describe the vertex shader entry point and its input buffer layouts.
const vertex = {
module: myVertexShaderModule,
entryPoint: "main",
buffers,
};
// Pass vertex to device.createRenderPipeline() and
// use vec4<f32> type in WGSL shader code to manipulate data.
تنسيق الزخرفة "rgb10a2uint"
تمت إضافة تنسيق زخرفة جديد يُسمى "rgb10a2uint" إلى مواصفات WebGPU. ويتكوّن من تنسيق بكسل مضغوط يشغل 32 بت مع أربعة مكوّنات عددية صحيحة غير سالبة: الأحمر الذي يشغل 10 بت والأخضر الذي يشغل 10 بت والأزرق الذي يشغل 10 بت والألفا الذي يشغل 2 بت. يمكنك الاطّلاع على المثال التالي والمشكلة dawn:1936.
// Create a texture with rgb10a2uint format.
const texture = device.createTexture({
size: [100, 100],
format: "rgb10a2uint",
usage: GPUTextureUsage.COPY_DST | GPUTextureUsage.TEXTURE_BINDING,
});
// Write data to texture, create a bindgroup with texture and
// send the appropriate commands to the GPU....
آخر الأخبار من Dawn
تسمح طلبات الطابع الزمني لتطبيقات WebGPU بقياس المدة التي تستغرقها أوامر وحدة معالجة الرسومات بدقة (بالنانو ثانية). تم تعديل شكل واجهة برمجة التطبيقات لتسجيل طلبات الطابع الزمني في بداية ونهاية عمليات العرض لتتطابق مع مواصفات WebGPU. يمكنك الاطّلاع على المثال التالي والمشكلة dawn:1800.
// Create a timestamp query set that will store the timestamp values.
wgpu::QuerySetDescriptor querySetDescriptor = {
.count = 2,
.type = wgpu::QueryType::Timestamp};
wgpu::QuerySet querySet = device.CreateQuerySet(&querySetDescriptor);
wgpu::RenderPassTimestampWrites timestampWrites = {
.querySet = querySet,
.beginningOfPassWriteIndex = 0,
.endOfPassWriteIndex = 1};
wgpu::ComputePassDescriptor pass{.timestampWrites = ×tampWrites};
// Write the queue timestamp into beginningOfPassWriteIndex and
// endOfPassWriteIndex of myQuerySet respectively before and after the pass
// commands execute.
myEncoder.BeginComputePass(&pass);
لا يغطي هذا القسم سوى بعض النقاط الرئيسية. يمكنك الاطّلاع على القائمة الشاملة لعمليات الإرسال.
الميزات الجديدة في WebGPU
في ما يلي قائمة بكل ما تم تناوله في سلسلة "الميزات الجديدة في WebGPU".
Chrome 151-152
- التحكّم في حجم المجموعة الفرعية
- OperationError لحالات تعذُّر التحقّق من صحة setImmediates
- آخر الأخبار من Dawn
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
- تستهلك طلبات الجهاز المحوّل
- اختصار لاستخدام الزخرفة عندما يتم استخدام طريقة عرض الزخرفة
- تتوافق WGSL textureSampleLevel مع الزخارف أحادية الأبعاد
- إيقاف استخدام زخرفة التخزين للقراءة فقط bgra8unorm نهائيًا
- إزالة سمة isFallbackAdapter في GPUAdapter
- آخر الأخبار من Dawn
Chrome 139
- دعم الزخارف ثلاثية الأبعاد لتنسيقات BC وASTC المضغوطة
- ميزة "core-features-and-limits" الجديدة
- مرحلة التجربة والتقييم لوضع التوافق مع WebGPU
- آخر الأخبار من Dawn
Chrome 138
- اختصار لاستخدام المخزن المؤقت كمورد ربط
- تغييرات في متطلبات حجم المخازن المؤقتة التي يتم ربطها عند الإنشاء
- تقرير بنية وحدات معالجة الرسومات الحديثة
- إيقاف سمة isFallbackAdapter في GPUAdapter نهائيًا
- آخر الأخبار من Dawn
Chrome 137
- استخدام طريقة عرض الزخرفة لربط externalTexture
- نسخ المخازن المؤقتة بدون تحديد الإزاحات والحجم
- WGSL workgroupUniformLoad باستخدام مؤشر إلى atomic
- سمة powerPreference في GPUAdapterInfo
- إزالة سمة compatibilityMode في GPURequestAdapterOptions
- آخر الأخبار من Dawn
Chrome 136
- سمة isFallbackAdapter في GPUAdapterInfo
- تحسينات في وقت تجميع التظليل على D3D12
- حفظ صور لوحة الرسم ونسخها
- إزالة القيود المفروضة على وضع التوافق
- آخر الأخبار من Dawn
Chrome 135
- السماح بإنشاء تنسيق خط أنابيب باستخدام تنسيق مجموعة ربط فارغ
- السماح بتوسيع منافذ العرض إلى ما بعد حدود أهداف العرض
- تسهيل الوصول إلى وضع التوافق التجريبي على Android
- إزالة الحد الأقصى maxInterStageShaderComponents
- آخر الأخبار من Dawn
Chrome 134
- تحسين أحمال عمل تعلُّم الآلة باستخدام المجموعات الفرعية
- إزالة دعم أنواع الزخارف القابلة للفلترة العائمة كزخارف قابلة للمزج
- آخر الأخبار من Dawn
Chrome 133
- تنسيقات الرأس الإضافية unorm8x4-bgra وذات المكوّن الواحد
- السماح بطلب حدود غير معروفة بقيمة غير محدّدة
- تغييرات في قواعد المحاذاة في WGSL
- تحسينات في الأداء في WGSL باستخدام discard
- استخدام displaySize في VideoFrame للزخارف الخارجية
- التعامل مع الصور ذات الاتجاهات غير التلقائية باستخدام copyExternalImageToTexture
- تحسين تجربة المطوّرين
- تفعيل وضع التوافق باستخدام featureLevel
- تنظيف الميزات التجريبية للمجموعات الفرعية
- إيقاف الحد الأقصى maxInterStageShaderComponents نهائيًا
- آخر الأخبار من Dawn
Chrome 132
- استخدام طريقة عرض الزخرفة
- مزج الزخارف العائمة التي تشغل 32 بت
- سمة adapterInfo في GPUDevice
- ضبط سياق لوحة الرسم بتنسيق غير صالح يؤدي إلى ظهور خطأ JavaScript
- قيود فلترة أداة أخذ العيّنات على الزخارف
- تجربة المجموعات الفرعية الموسّعة
- تحسين تجربة المطوّرين
- الدعم التجريبي لتنسيقات الزخارف العادية التي تشغل 16 بت
- آخر الأخبار من Dawn
Chrome 131
- مسافات القطع في WGSL
- GPUCanvasContext getConfiguration()
- يجب ألا تحتوي العناصر الأساسية للنقاط والخطوط على انحياز العمق
- وظائف الفحص الشامل المضمّنة للمجموعات الفرعية
- الدعم التجريبي لـ multi-draw indirect
- خيار تجميع وحدة التظليل البرمجية strict math
- إزالة GPUAdapter requestAdapterInfo()
- آخر الأخبار من Dawn
Chrome 130
- المزج الثنائي المصدر
- تحسينات في وقت تجميع التظليل على Metal
- إيقاف GPUAdapter requestAdapterInfo() نهائيًا
- آخر الأخبار من Dawn
Chrome 129
- دعم النطاق العالي الديناميكية باستخدام وضع ربط درجات الألوان في لوحة الرسم
- دعم المجموعات الفرعية الموسّع
- آخر الأخبار من Dawn
Chrome 128
- تجربة المجموعات الفرعية
- إيقاف ضبط انحياز العمق للخطوط والنقاط نهائيًا
- إخفاء تحذير "أدوات مطوري البرامج" بشأن الخطأ غير المسجَّل إذا تم استخدام preventDefault
- WGSL interpolate sampling first and either
- آخر الأخبار من 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
- زخارف عائمة قابلة للفلترة تشغل 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