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

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

تاریخ انتشار: 26 مارس 2025

اجازه ایجاد طرح‌بندی خط لوله با طرح‌بندی گروه پیوند تهی

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

به عنوان مثال، ممکن است بخواهید خط لوله ای ایجاد کنید که فقط از طرح بندی گروه bind 0 و 2 استفاده می کند. شماره 377836524 را ببینید.

const bgl0 = myDevice.createBindGroupLayout({ entries: myGlobalEntries });
const bgl1 = myDevice.createBindGroupLayout({ entries: myFragmentEntries });
const bgl2 = myDevice.createBindGroupLayout({ entries: myVertexEntries });

// Create a pipeline layout that will be used to render without a fragment shader.
const myPipelineLayout = myDevice.createPipelineLayout({
  bindGroupLayouts: [bgl0, null, bgl2],
});

به Viewport ها اجازه دهید تا از محدوده اهداف رندر عبور کنند

الزامات اعتبارسنجی Viewport کاهش یافته است تا به viewport ها اجازه داده شود که از مرزهای هدف رندر فراتر بروند. این به ویژه برای ترسیم عناصر دوبعدی مانند UI که ممکن است خارج از نمای فعلی باشد مفید است. شماره 390162929 را ببینید.

const passEncoder = myCommandEncoder.beginRenderPass({
  colorAttachments: [
    {
      view: myColorTexture.createView(),
      loadOp: "clear",
      storeOp: "store",
    },
  ],
});

// Set a viewport that extends past the render target's bounds by 8 pixels
// in all directions.
passEncoder.setViewport(
  /*x=*/ -8,
  /*y=*/ -8,
  /*width=*/ myColorTexture.width + 16,
  /*height=*/ myColorTexture.height + 16,
  /*minDepth=*/ 0,
  /*maxDepth=*/ 1,
);

// Draw geometry and complete the render pass as usual.

دسترسی آسان تر به حالت سازگاری آزمایشی در اندروید

پرچم chrome://flags/#enable-unsafe-webgpu به تنهایی اکنون همه قابلیت‌های مورد نیاز برای حالت آزمایشی سازگاری WebGPU در Android را فعال می‌کند. با این کار، می‌توانید یک GPUAdapter را در حالت سازگاری با گزینه featureLevel: "compatibility" درخواست کنید و حتی در دستگاه‌هایی که از Vulkan پشتیبانی نمی‌کنند به Backend OpenGL ES دسترسی پیدا کنید. مثال زیر و شماره dawn را ببینید:389876644 .

// Request a GPUAdapter in compatibility mode.
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });
صفحه گزارش WebGPU یک GPUAdapter را در حالت سازگاری در دستگاه Android نشان می دهد.
اطلاعات آداپتور حالت سازگاری در webgpureport.org .

محدودیت maxInterStageShaderComponents را حذف کنید

همانطور که قبلا اعلام شد ، محدودیت maxInterStageShaderComponents به دلیل ترکیبی از عوامل حذف شده است:

  • افزونگی با maxInterStageShaderVariables : این محدودیت در حال حاضر هدف مشابهی را دنبال می کند، کنترل مقدار داده ارسال شده بین مراحل سایه زن.
  • اختلافات جزئی: در حالی که تفاوت های جزئی در نحوه محاسبه دو حد وجود دارد، این تفاوت ها جزئی هستند و می توان به طور موثر در محدوده maxInterStageShaderVariables مدیریت کرد.
  • ساده سازی: حذف maxInterStageShaderComponents رابط سایه زن را ساده می کند و پیچیدگی را برای توسعه دهندگان کاهش می دهد. به جای مدیریت دو محدودیت جداگانه با تفاوت‌های ظریف، می‌توانند روی maxInterStageShaderVariables با نام مناسب‌تر و جامع‌تر تمرکز کنند.

به قصد حذف و صدور 364338810 مراجعه کنید.

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

دیگر امکان استفاده از نمونه‌گیر فیلتر برای نمونه‌برداری از بافت عمق وجود ندارد. به عنوان یادآوری، یک بافت عمقی را فقط می توان با یک نمونه غیر فیلتر یا مقایسه کننده استفاده کرد. شماره 379788112 را ببینید.

ساختارهای WGPURequiredLimits و WGPUSupportedLimits به WGPULimits تبدیل شده‌اند. شماره 374263404 را ببینید.

ساختارهای زیر تغییر نام داده اند. به شماره 42240793 مراجعه کنید.

  • WGPUImageCopyBuffer اکنون WGPUTexelCopyBufferInfo است
  • WGPUImageCopyTexture اکنون WGPUTexelCopyTextureInfo است
  • WGPUTextureDataLayout اکنون WGPUTexelCopyBufferLayout است

اعضای subgroupMinSize و subgroupMaxSize به ساختار WGPUAdapterInfo اضافه شده اند. webgpu-headers PR را ببینید.

ردیابی استفاده از Dawn API در Metal اکنون هنگام اجرای برنامه شما با متغیر محیطی DAWN_TRACE_FILE_BASE امکان پذیر است که یک فایل .gputrace را ذخیره می کند که می تواند بعداً در Metal Debugger XCode بارگذاری شود. به مستندات Debugging Dawn مراجعه کنید.

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

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

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

کروم 135

کروم 134

کروم 133

کروم 132

کروم 131

کروم 130

کروم 129

کروم 128

کروم 127

کروم 126

کروم 125

کروم 124

کروم 123

کروم 122

کروم 121

کروم 120

کروم 119

کروم 118

کروم 117

کروم 116

کروم 115

کروم 114

کروم 113