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

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

بافر راس را تنظیم نکنید

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

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

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

گروه bind را تنظیم نکنید

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

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

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

بهبود تجربه توسعه دهندگان

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

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

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

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

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

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

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

چندین روش اضافی برای Node.js پیاده سازی شده است. تغییر سپیده دم: 142465 را ببینید.

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

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

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

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

کروم 125

کروم 124

کروم 123

کروم 122

کروم 121

کروم 120

کروم 119

کروم 118

کروم 117

کروم 116

کروم 115

کروم 114

کروم 113