ویژگی‌های جدید WebGPU (Chrome 117)

François Beaufort
François Beaufort

لغو تنظیم میان‌گیر رأس

گذراندن null به‌جای GPUBuffer به setVertexBuffer() در GPURenderPassEncoder یا GPURenderBundleEncoder به شما امکان می‌دهد بافر رأس ازپیش تنظیم‌شده را در شکافی معین لغو تنظیم کنید. issue dawn:1675 را ببینید.

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

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

لغو تنظیم گروه پیوند

ارسال null به‌جای GPUBindGroup به setBindGroup() در GPURenderPassEncoder یا GPURenderBundleEncoder به شما امکان می‌دهد گروه پیوند ازپیش تنظیم‌شده را در جایگاه معینی لغو کنید. 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 نویدی را برمی‌گردانند که وقتی ایجاد خط لوله تکمیل شد، برطرف می‌شود. ازاین‌پس، وقتی GPUDevice روی lost تنظیم شده باشد، خطاهای مربوط به ایجاد خط لوله غیرهمگام بی‌صدا می‌شوند تا دستگاه‌های گم‌شده تا حد امکان عملکرد صحیح داشته باشند. dawn issue:1874 را ببینید.

به‌روزرسانی‌های ایجاد واحد سایه‌زن SPIR-V

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

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

پیام خطای اعتبارسنجی برای پیوندهای طرح‌بندی گروه پیوند در سایه‌زن رأس برای بافرهای ذخیره‌سازی خواندنی-نوشتنی و پیوندهای بافت ذخیره‌سازی فقط‌نوشتنی بهبود یافته است. issue dawn:1883 را ببینید.

ذخیره کردن خطوط لوله با چیدمان خودکار تولیدشده

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

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

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

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

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

چندین روش اضافی برای Node.js پیاده‌سازی شده است. تغییر سپیده دم:۱۴۲۴۶۵ را ببینید.

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

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

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

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

‫۱۵۵-۱۵۶ Chrome

‫۱۵۳-۱۵۴ Chrome

Chrome 151-152

‫۱۴۹-۱۵۰ Chrome

‫۱۴۷-۱۴۸ Chrome

‫۱۴۶ Chrome

‫Chrome 145

‫۱۴۴ Chrome

‫۱۴۳ Chrome

‫۱۴۲ Chrome

Chrome 141

‫۱۴۰ Chrome

Chrome 139

‫Chrome 138

Chrome 137

‫Chrome 136

‫۱۳۵ Chrome

‫۱۳۴ Chrome

‫Chrome 133

‫۱۳۲ Chrome

‫۱۳۱ Chrome

‫Chrome 130

‫Chrome 129

‫Chrome 128

‫Chrome 127

‫Chrome 126

‫Chrome 125

‫Chrome 124

‫Chrome 123

‫Chrome 122

Chrome 121

‫Chrome 120

‫Chrome 119

‫Chrome 118

Chrome 117

‫Chrome 116

‫Chrome 115

Chrome 114

‫Chrome 113