موارد جدید در 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);

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

ارسال null به جای GPUBindGroup به setBindGroup() در GPURenderPassEncoder یا GPURenderBundleEncoder به شما امکان می‌دهد یک گروه اتصال (bind group) که قبلاً تنظیم شده است را در یک اسلات مشخص از حالت تنظیم خارج کنید. به شماره 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 مراجعه کنید.

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

پیام خطای اعتبارسنجی برای پیوندهای طرح‌بندی گروه اتصال در سایه‌زن رأس برای پیوندهای بافر ذخیره‌سازی خواندنی-نوشتنی و پیوندهای بافت ذخیره‌سازی فقط نوشتنی بهبود یافته است. به شماره 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);

چندین متد اضافی برای Node.js پیاده‌سازی شده‌اند. به change dawn:142465 مراجعه کنید.

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

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

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

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

کروم ۱۴۲

کروم ۱۴۱

کروم ۱۴۰

کروم ۱۳۹

کروم ۱۳۸

کروم ۱۳۷

کروم ۱۳۶

کروم ۱۳۵

کروم ۱۳۴

کروم ۱۳۳

کروم ۱۳۲

کروم ۱۳۱

کروم ۱۳۰

کروم ۱۲۹

کروم ۱۲۸

کروم ۱۲۷

کروم ۱۲۶

کروم ۱۲۵

کروم ۱۲۴

کروم ۱۲۳

کروم ۱۲۲

کروم ۱۲۱

کروم ۱۲۰

کروم ۱۱۹

کروم ۱۱۸

کروم ۱۱۷

کروم ۱۱۶

کروم ۱۱۵

کروم ۱۱۴

کروم ۱۱۳