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

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

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

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

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

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

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

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

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

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

حد maxVertexAttributes را افزایش دهید

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

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

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

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

چه چیزی در WebGPU جدید است

فهرستی از همه چیزهایی که در سری What's New in WebGPU پوشش داده شده است.

کروم 130 کروم 129 کروم 128 کروم 127 کروم 126 کروم 125 کروم 124 کروم 123 کروم 122 کروم 121 کروم 120 کروم 119 کروم 118 کروم 117 کروم 116 کروم 115 کروم 114 کروم 113