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 sorununa 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 iletmek, belirli bir yuvada daha önce ayarlanmış bir bağlama grubunun ayarını kaldırmanıza olanak tanır. dawn:1675 sorununa 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 durumda görünmesi için GPUDevice lost olduğunda eşzamansız kanal oluşturmayla ilgili hatalar sessize alınacak. dawn:1874 sorununa bakın.

SPIR-V gölgelendirici 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 konusuna bakın.

Geliştirici deneyimini iyileştirme

Köşe gölgelendiricideki 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. dawn:1883 sorununa bakın.

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

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. dawn:1933 sorununa bakın.

Dawn ile ilgili güncellemeler

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 uç isteğinde daha kolay bulunabilir. Aşağıdaki örneğe ve dawn:1875 numaralı soruna 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. dawn:142465 değişikliğine bakın.

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 tüm konuların listesi.

Chrome 143

Chrome 142

Chrome 141

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