WebGPU'daki Yenilikler (Chrome 117)

François Beaufort
François Beaufort

Köşe noktası arabelleğini kaldırma

GPURenderPassEncoder veya GPURenderBundleEncoder üzerinde setVertexBuffer()'e GPUBuffer yerine null iletmek, belirli bir yuvada daha önce ayarlanmış bir köşe arabelleğini kaldırmanıza olanak tanır. dawn:1675 numaralı soruna 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ırın

GPURenderPassEncoder veya GPURenderBundleEncoder üzerinde setBindGroup()'e GPUBindGroup yerine null iletmek, belirli bir yuvada daha önce ayarlanmış bir bağlama grubunun ayarını kaldırmanıza olanak tanır. dawn:1675 numaralı soruna 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 işlem hattı oluşturma işlemindeki hataları sessize alma

GPUDevice yönteminin createComputePipelineAsync() ve createRenderPipelineAsync() yöntemleri, kanal oluşturma işlemi tamamlandığında çözümlenen bir söz döndürür. Bundan sonra, kayıp cihazların mümkün olduğunca çalışır görünmesi için GPUDevice lost olduğunda eşzamansız kanal oluşturmayla ilgili hatalar sessize alınacak. dawn issue:1874 başlıklı makaleyi inceleyin.

SPIR-V shader modülü oluşturma güncellemeleri

SPIR-V, WebGPU spesifikasyonunun bir parçası olmadığından createShaderModule() ile SPIR-V gölgelendirici modülü oluşturmak, Chrome'u "Unsafe WebGPU Support" işaretiyle çalıştırmadığınız sürece artık TypeError hatası veriyor. Bu değişiklikten önce SPIR-V kullanıldığında bunun yerine GPUInternalError oluşturuluyordu. change chromium:4711911 başlıklı makaleye bakın.

Geliştirici deneyimini iyileştirme

Köşe gölgelendiricisindeki bağlama grubu düzeni bağlamaları için doğrulama hata mesajı, okuma/yazma depolama arabelleği ve yalnızca yazma depolama dokusu bağlamaları için iyileştirildi. issue dawn:1883 başlıklı makaleyi inceleyin.

Otomatik olarak oluşturulan düzene sahip önbelleğe alma işlem hatları

createRenderPipeline({ layout: "auto" }) ile oluşturulan işlem hatları artık Chrome'daki önbelleğe alma mekanizmalarından yararlanıyor. Bu, bu işlem hatlarının daha verimli bir şekilde oluşturulacağı ve daha az bellek kullanacağı anlamına gelir. issue dawn:1933 başlıklı makaleyi inceleyin.

Dawn güncellemeleri

wgpu::RequestAdapterOptionsBackendType, artık wgpu::RequestAdapterOptions'nin bir parçasıdır. Böylece uygulamalar, bağdaştırıcı alırken belirli bir arka ucu daha kolay isteyebilir. Aşağıdaki örneğe bakın ve dawn:1875 sorununu gönderin.

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 başlıklı makaleyi inceleyin.

webgpu.h C API, boolean değerler için türünü stdbool'den WGPUBool'e (uint32_t) değiştirdi. 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 özet yalnızca önemli noktalardan bazılarını kapsar. Kapsamlı commit listesine göz atın.

WebGPU'daki yenilikler

WebGPU'daki Yenilikler serisinde ele alınan her şeyin listesi.

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

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