WebGPU'daki Yenilikler (Chrome 117)

François Beaufort
François Beaufort

Köşe noktası arabelleğinin ayarını kaldırın

GPURenderPassEncoder veya GPURenderBundleEncoder üzerinde setVertexBuffer()'e GPUBuffer yerine null göndermek, belirli bir yuvada daha önce ayarlanmış bir köşe düğümü arabelleğinin ayarını kaldırmanıza olanak tanır. issue dawn:1675 konusuna bakın.

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

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

Bağlama grubunu kaldırma

GPURenderPassEncoder veya GPURenderBundleEncoder üzerinde setBindGroup()'e GPUBindGroup yerine null göndermek, belirli bir yuvada daha önce ayarlanmış bir bağlama grubunun ayarını kaldırmanıza olanak tanır. issue dawn:1675 konusuna bakın.

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

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

Cihaz kaybolduğunda eşzamansız ardışık düzen oluşturma işlemlerinden kaynaklanan hataları yoksayma

GPUDevice sınıfının createComputePipelineAsync() ve createRenderPipelineAsync() yöntemleri, ardışık düzenin oluşturulması tamamlandığında çözülen bir promise döndürür. Artık, kaybolan cihazların mümkün olduğunca çalışıyor gibi görünmesi için GPUDevice lost olduğunda, asenkron ardışık düzen oluşturma hataları engellenecek. dawn issue:1874 konusuna bakın.

SPIR-V gölgelendirici modülü oluşturma güncellemeleri

SPIR-V, WebGPU spesifikasyonunun bir parçası olmadığından Chrome'u "Güvenli Olmayan WebGPU Desteği" işaretiyle çalıştırmadığınız sürece createShaderModule() ile SPIR-V gölgelendirici modülü oluşturmak artık TypeError hatası veriyor. Bu değişiklikten önce SPIR-V kullanılması, bunun yerine GPUInternalError oluşturulmasına neden oluyordu. change chromium:4711911 başlıklı makaleye göz atın.

Geliştirici deneyimini iyileştirme

Köşe düğümü gölgelendiricideki bağlama grubu düzeni bağlamaları için doğrulama hata mesajı, salt okunur depolama alanı arabelleği ve salt yazma depolama alanı doku bağlamaları için iyileştirildi. issue dawn:1883 konusuna bakın.

Otomatik olarak oluşturulan düzenle ardışık düzenleri önbelleğe alma

createRenderPipeline({ layout: "auto" }) ile oluşturulan ardışık düzenler artık Chrome'daki önbelleğe alma mekanizmalarından yararlanıyor. Bu, bu ardışık düzenlerin daha verimli bir şekilde oluşturulacağı ve daha az bellek kullanacağı anlamına gelir. issue dawn:1933 konusuna bakın.

Şafak güncellemeleri

wgpu::RequestAdapterOptionsBackendType, uygulamaların adaptör alırken belirli bir arka uç istemesini kolaylaştırmak için artık wgpu::RequestAdapterOptions'in bir parçasıdır. Aşağıdaki örneğe ve issue dawn:1875 değerine bakın.

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

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

Node.js için birkaç ek yöntem uygulanmıştır. change dawn:142465 adresine bakın.

webgpu.h C API'sinde, doğru/yanlış değerlerin türü stdbool yerine WGPUBool olarak değiştirildi. WGPUBool bir uint32_t türüdür. Bu değişiklik, API'nin C ve C++'da eşdeğer bir ABI'ye sahip olmasını sağlamak için yapıldı.

Bu, önemli noktalardan yalnızca bazılarını kapsar. Kapsamlı commit listesine göz atın.

WebGPU'daki Yenilikler

WebGPU'daki Yenilikler serisinde ele alınan tüm konuların listesi.

Chrome 131

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