WebGPU'daki Yenilikler (Chrome 117)

François Beaufort
François Beaufort

Köşe noktası tamponunun 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 grubunun ayarını kaldırın

GPURenderPassEncoder veya GPURenderBundleEncoder üzerinde setBindGroup() için GPUBindGroup yerine null göndermek, belirli bir yuvada daha önce ayarlanmış bir bağlama grubunun ayarını kaldırmanıza olanak tanır. Sorun şafak:1675 bölümünü inceleyin.

// 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. Şu andan itibaren, kayıp cihazların mümkün olduğunca fazla çalışıyor gibi görünmesi için GPUDevice lost olduğunda eş zamansız ardışık düzen oluşturma hataları susturulur. dawn issue:1874'e (şafak sorunu: 1874) 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 grup 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'ü görü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. Böylece bu ardışık düzenler daha verimli bir şekilde oluşturulur ve daha az bellek kullanır. 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 başka yöntemler de 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 sürümü

Chrome 126

Chrome 125 sürümü

Chrome 124 sürümü

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119 sürümü

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113