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

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

تاریخ انتشار: 27 اوت 2025

درخواست های دستگاه آداپتور مصرف می کند

طبق مشخصات WebGPU ، یک آداپتور در صورت درخواست موفقیت آمیز دستگاه به عنوان "مصرف شده" علامت گذاری می شود. در نتیجه، هر فراخوان بعدی requestDevice() با استفاده از همان آداپتور، اکنون به یک وعده رد می‌شود. قبلاً، این تماس‌ها دستگاهی را که در زمان ایجاد گم شده بود برمی‌گرداند. به شماره 415825174 مراجعه کنید.

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

await adapter.requestDevice(); // Fails because adapter has been consumed.

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

یک GPUTexture اکنون می تواند مستقیماً به عنوان یک منبع GPUBinding برای قرار دادن در معرض سایه زن برای اتصال استفاده شود. همچنین می‌توان از آن به عنوان view GPURenderPassColorAttachment، GPURenderPassColorAttachment resolveTarget و view GPURenderPassDepthStencilAttachment برای ارگونومی بهبودیافته استفاده کرد. این روش ساده‌تری نسبت به استفاده از GPUTextureView برای دریافت نمای پیش‌فرض ارائه می‌دهد. شماره 425906323 را ببینید.

const bindGroup = myDevice.createBindGroup({
  layout: myPipeline.getBindGroupLayout(0),
  entries: [
    { binding: 0, resource: mySampler },
    { binding: 1, resource: myTexture }, // Same as myTexture.createView()
    { binding: 2, resource: myExternalTexture },
    { binding: 3, resource: myBuffer },
  ],
});

WGSL textureSampleLevel از بافت های 1 بعدی پشتیبانی می کند

اکنون می توان بافت های 1 بعدی را با استفاده از textureSampleLevel() برای سازگاری با بافت های دو بعدی نمونه برداری کرد . این به شما امکان می دهد یک بافت 1 بعدی را از یک سایه زن رأس نمونه برداری کنید که قبلاً فقط از یک سایه زن قطعه با textureSample() امکان پذیر بود. به شماره 382514673 مراجعه کنید.

استفاده از بافت ذخیره‌سازی فقط خواندنی bgra8unorm را منسوخ کنید

استفاده از قالب "bgra8unorm" با بافت های ذخیره سازی فقط خواندنی اکنون منسوخ شده است. مشخصات WebGPU صراحتاً این را مجاز نمی‌داند، و مجوز قبلی آن در Chrome یک اشکال بود، زیرا این قالب برای دسترسی فقط نوشتنی در نظر گرفته شده است و قابل حمل نیست. شماره 427681156 را ببینید.

ویژگی GPUAdapter isFallbackAdapter را حذف کنید

همانطور که قبلا اعلام شد ، ویژگی GPUAdapter isFallbackAdapter اکنون حذف شده است. با ویژگی GPUAdapterInfo isFallbackAdapter که در Chrome 136 معرفی شده بود، جایگزین شده است. به قصد حذف مراجعه کنید.

به روز رسانی سحر

تابع wgpuInstanceGetWGSLLanguageFeatures() برای دریافت لیستی از ویژگی های زبان WGSL که توسط نمونه پشتیبانی می شود استفاده می شود. قبلاً مقدار WGPUStatus را برمی‌گرداند. به‌روزرسانی شده است تا مقداری را برنگرداند زیرا نمی‌تواند خراب شود. شماره 429178774 را ببینید.

تابع wgpuSurfacePresent() اکنون یک خطای WGPUStatus را برمی‌گرداند اگر سطح دارای بافت فعلی نباشد. به شماره 425930323 مراجعه کنید

ویژگی جدید wgpu::InstanceFeatureName::MultipleDevicesPerAdapter به آداپتورها اجازه می دهد چندین دستگاه را بدون "مصرف" ایجاد کنند. به شماره 415825174 مراجعه کنید.

جابجایی دستگاه dump_shaders_on_failure به شما این امکان را می دهد که سایه بان ها را فقط در صورت خرابی برای اهداف اشکال زدایی حذف کنید. این به طور انحصاری برای باطن‌های D3 اعمال می‌شود، اگرچه گسترش آینده به سایر باطن‌ها امکان‌پذیر است. شماره 429187478 را ببینید.

تغییرات متعددی در باطن Vulkan ایجاد شده است تا سربار هنگام ارسال پاس‌های رندر کاهش یابد، به‌ویژه برای بهبود عملکرد در پردازنده‌های گرافیکی موبایل. به عنوان مثال: کش کردن بافرهای VkFrame .

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

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

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

کروم 140

کروم 139

کروم 138

کروم 137

کروم 136

کروم 135

کروم 134

کروم 133

کروم 132

کروم 131

کروم 130

کروم 129

کروم 128

کروم 127

کروم 126

کروم 125

کروم 124

کروم 123

کروم 122

کروم 121

کروم 120

کروم 119

کروم 118

کروم 117

کروم 116

کروم 115

کروم 114

کروم 113