موارد جدید در WebGPU (Chrome 122)

فرانسوا بوفور
François Beaufort

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

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

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

WebGPU به خوبی با APIهای گرافیکی مدرن (Vulkan، Metal و D3D12) هماهنگ است، اما برخی از دستگاه‌ها از آنها پشتیبانی نمی‌کنند. این امر دسترسی به WebGPU را محدود می‌کند، به خصوص در پلتفرم‌هایی مانند ویندوز (31٪ از کاربران کروم فاقد D3D11.1+ هستند)، اندروید (23٪ فاقد Vulkan 1.1+ هستند) و ChromeOS (پذیرش Vulkan در حال افزایش است).

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

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

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

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

افزایش محدودیت maxVertexAttributes

حداکثر تعداد ویژگی‌ها در مجموع در بافرها هنگام ایجاد یک GPURenderPipeline به طور پیش‌فرض ۱۶ است. اکنون می‌توان با استفاده از محدودیت maxVertexAttributes در صورت پشتیبانی، تا ۳۰ ویژگی درخواست کرد. به مثال زیر و مشکل 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" استفاده کرد. به شماره dawn:2260 مراجعه کنید.

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

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

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

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

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

کروم ۱۴۲

کروم ۱۴۱

کروم ۱۴۰

کروم ۱۳۹

کروم ۱۳۸

کروم ۱۳۷

کروم ۱۳۶

کروم ۱۳۵

کروم ۱۳۴

کروم ۱۳۳

کروم ۱۳۲

کروم ۱۳۱

کروم ۱۳۰

کروم ۱۲۹

کروم ۱۲۸

کروم ۱۲۷

کروم ۱۲۶

کروم ۱۲۵

کروم ۱۲۴

کروم ۱۲۳

کروم ۱۲۲

کروم ۱۲۱

کروم ۱۲۰

کروم ۱۱۹

کروم ۱۱۸

کروم ۱۱۷

کروم ۱۱۶

کروم ۱۱۵

کروم ۱۱۴

کروم ۱۱۳