ویژگی‌های جدید WebGPU (‏Chrome نسخه ۱۲۲)

François Beaufort
François Beaufort

تعداد ویژگی‌های WebGPU ممکن است این بار کمی کم به‌نظر برسد، اما پیشرفت‌های عمده‌ای در راه است! نسخه‌های بعدی شامل ویژگی‌هایی مانند DP4a، بافت‌های ذخیره‌سازی فقط خواندنی و خواندنی-نوشتنی، کنترل جنبه عمق و شابلون جداگانه، رندر کردن برش‌های بافت سه‌بعدی، و بهبودهای گردآوری سایه‌زن خواهد بود.

در این فاصله، با نحوه تقویت کردن آزمایش مدل هوش مصنوعی وب با پشتیبانی WebGPU و WebGL در Headless Chrome و دلیل غیرفعال شدن یا کار نکردن WebGPU در Chrome آشنا شوید.

گسترش دسترسی با حالت سازگاری (ویژگی درحال توسعه)

‫WebGPU با APIهای گرافیک مدرن (Vulkan،‏ Metal، و D3D12) به‌خوبی هماهنگ است، اما برخی‌از دستگاه‌ها از آن‌ها پشتیبانی نمی‌کنند. این امر دسترسی WebGPU را محدود می‌کند، به‌ویژه در پلاتفرم‌هایی مانند Windows (۳۱٪ از کاربران Chrome ‏D3D11.1+ ندارند)، Android (۲۳٪ ‏Vulkan 1.1+ ندارند)، و ChromeOS (استفاده از Vulkan درحال افزایش است).

تیم Chrome درحال کار روی حالت سازگاری در WebGPU است تا با ارائه نسخه کمی محدودشده از WebGPU که در میاناهای برنامه‌سازی کاربردی قدیمی‌تر مثل D3D11 و OpenGL ES کار می‌کند، این مشکل را برطرف کند. این کار پایگاه کاربران بالقوه WebGPU را گسترش می‌دهد.

نکته مهم اینکه برنامه‌هایی که از حالت سازگاری استفاده می‌کنند، همچنان برنامه‌های WebGPU کاملاً معتبر هستند. دستگاه‌هایی که از حالت سازگاری پشتیبانی نمی‌کنند به‌طور یکپارچه از آداپتور اصلی WebGPU استفاده می‌کنند و قابلیت استفاده گسترده را تضمین می‌کنند.

نمودار حالت سازگاری WebGPU.
حالت سازگاری WebGPU دسترسی را گسترش می‌دهد.

اگر سؤالی دارید، پیشنهاد و نظر را بررسی کنید.

افزایش حد maxVertexAttributes

حداکثر تعداد کل مشخصه‌ها در سراسر بافرها هنگام ایجاد GPURenderPipeline به‌طور پیش‌فرض ۱۶ است. اکنون درصورت پشتیبانی، می‌توان بااستفاده از حد maxVertexAttributes حداکثر ۳۰ درخواست کرد. به مثال زیر و issue dawn:2223 مراجعه کنید.

const adapter = await navigator.gpu.requestAdapter();

if (adapter.limits.maxVertexAttributes < 30) {
  // When the desired limit isn't supported, take action to either fall back to
  // a code path that does not require the higher limit or notify the user that
  // their device does not meet minimum requirements.
}

// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
  requiredLimits: { maxVertexAttributes: 30 },
});

به‌روزرسانی‌های سپیده‌دم

کلید تغییر نمونه جدیدی به نام «expose_wgsl_experimental_features» اضافه شده است تا نمونه فقط ویژگی‌های آزمایشی WGSL را نمایان کند و ویژگی‌های ناامن را نمایان نکند، بنابراین می‌توان از ویژگی‌های آزمایشی WGSL ایمن بدون نیاز به فعال کردن کلید تغییر «allow_unsafe_apis» استفاده کرد. issue dawn:2260 را ببینید.

بهبودهای اخیر در ملزومات Dawn برای Node.js شامل موارد زیر می‌شود:

  • ‫GPUSupportedFeatures::getSize() اضافه شد.
  • ‫GPUAdapter کهنگی پیاده‌سازی شد.
  • اکنون GPUInternalError به‌درستی برای دستگاه‌ها گزارش شده است.
  • اکنون ویژگی‌ها قابل‌شمارش هستند.

این فقط برخی‌از نکات برجسته کلیدی را پوشش می‌دهد. فهرست کامل تعهدات را بررسی کنید.

ویژگی‌های جدید WebGPU

فهرستی از همه مواردی که در مجموعه ویژگی‌های جدید WebGPU پوشش داده شده است.

‫۱۵۵-۱۵۶ Chrome

‫۱۵۳-۱۵۴ Chrome

Chrome 151-152

‫۱۴۹-۱۵۰ Chrome

‫۱۴۷-۱۴۸ Chrome

‫۱۴۶ Chrome

‫Chrome 145

‫۱۴۴ Chrome

‫۱۴۳ Chrome

‫۱۴۲ Chrome

Chrome 141

‫۱۴۰ Chrome

Chrome 139

‫Chrome 138

Chrome 137

‫Chrome 136

‫۱۳۵ Chrome

‫۱۳۴ Chrome

‫Chrome 133

‫۱۳۲ Chrome

‫۱۳۱ Chrome

‫Chrome 130

‫Chrome 129

‫Chrome 128

‫Chrome 127

‫Chrome 126

‫Chrome 125

‫Chrome 124

‫Chrome 123

‫Chrome 122

Chrome 121

‫Chrome 120

‫Chrome 119

‫Chrome 118

Chrome 117

‫Chrome 116

‫Chrome 115

Chrome 114

‫Chrome 113