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

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

بافر رأس را غیرفعال کنید

ارسال null به جای GPUBuffer به setVertexBuffer() در GPURenderPassEncoder یا GPURenderBundleEncoder به شما امکان می‌دهد یک بافر رأس که قبلاً در یک اسلات مشخص تنظیم شده است را از حالت تنظیم خارج کنید. به شماره dawn:1675 مراجعه کنید.

// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);

// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);

گروه اتصال را غیرفعال کنید

Passing null rather than a GPUBindGroup to setBindGroup() on GPURenderPassEncoder or GPURenderBundleEncoder allows you to unset a previously set bind group in a given slot. See issue dawn:1675 .

// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);

// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);

خطاهای ناشی از ایجاد خط لوله ناهمگام را هنگام از دست رفتن دستگاه، بی‌صدا کنید

متدهای createComputePipelineAsync() و createRenderPipelineAsync() از GPUDevice یک promise برمی‌گردانند که پس از اتمام ایجاد خط لوله، برطرف می‌شود. از این پس، خطاهای ناشی از ایجاد خط لوله ناهمزمان، هنگامی که GPUDevice lost می‌رود، بی‌صدا می‌شوند تا دستگاه‌های از دست رفته تا حد امکان فعال به نظر برسند. به شماره dawn:1874 مراجعه کنید.

به‌روزرسانی‌های ایجاد ماژول سایه‌زن SPIR-V

ایجاد یک ماژول سایه‌زن SPIR-V با createShaderModule() اکنون یک خطای TypeError ایجاد می‌کند، مگر اینکه Chrome را با پرچم "Unsafe WebGPU Support" اجرا کنید زیرا SPIR-V بخشی از مشخصات WebGPU نیست. قبل از این تغییر، استفاده از SPIR-V باعث ایجاد یک خطای GPUInternalError می‌شد. به تغییر Chrome:4711911 مراجعه کنید.

بهبود تجربه توسعه‌دهنده

The validation error message for bind group layout bindings in vertex shader has been improved for read-write storage buffer and write-only storage texture bindings. See issue dawn:1883 .

ذخیره سازی خطوط لوله با طرح بندی خودکار تولید شده

خطوط لوله‌ای که با استفاده از createRenderPipeline({ layout: "auto" }) ایجاد می‌شوند، اکنون از مکانیسم‌های ذخیره‌سازی در کروم بهره می‌برند. این بدان معناست که این خطوط لوله به طور کارآمدتری ایجاد می‌شوند و از حافظه کمتری استفاده می‌کنند. به issue dawn:1933 مراجعه کنید.

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

wgpu::RequestAdapterOptionsBackendType اکنون بخشی از wgpu::RequestAdapterOptions است تا درخواست یک backend خاص هنگام دریافت آداپتور برای برنامه‌ها آسان‌تر شود. به مثال زیر و مشکل dawn:1875 مراجعه کنید.

wgpu::RequestAdapterOptions options = {
    .backendType = wgpu::BackendType::D3D12};

// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);

Several additional methods have been implemented for Node.js. See change dawn:142465 .

API مربوط به زبان C به نام webgpu.h نوع خود را برای مقادیر بولی از stdbool به WGPUBool تغییر داده است که یک uint32_t است. این تغییر برای اطمینان از اینکه API دارای یک ABI معادل در زبان‌های C و C++ باشد، انجام شده است.

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

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

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

کروم ۱۴۵

کروم ۱۴۴

کروم ۱۴۳

کروم ۱۴۲

کروم ۱۴۱

کروم ۱۴۰

کروم ۱۳۹

کروم ۱۳۸

کروم ۱۳۷

کروم ۱۳۶

کروم ۱۳۵

کروم ۱۳۴

کروم ۱۳۳

کروم ۱۳۲

کروم ۱۳۱

کروم ۱۳۰

کروم ۱۲۹

کروم ۱۲۸

کروم ۱۲۷

کروم ۱۲۶

کروم ۱۲۵

کروم ۱۲۴

کروم ۱۲۳

کروم ۱۲۲

کروم ۱۲۱

کروم ۱۲۰

کروم ۱۱۹

کروم ۱۱۸

کروم ۱۱۷

کروم ۱۱۶

کروم ۱۱۵

کروم ۱۱۴

کروم ۱۱۳