WebGPU'daki Yenilikler (Chrome 117)

François Beaufort
François Beaufort

Köşe arabelleği ayarını kaldır

GPURenderPassEncoder veya GPURenderBundleEncoder üzerinde GPUBuffer yerine setVertexBuffer() öğesine null geçirmek, belirli bir alanda önceden ayarlanmış bir köşe arabelleğinin ayarını iptal etmenize olanak tanır. issue dawn:1675'e 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

GPURenderPassEncoder veya GPURenderBundleEncoder üzerinde GPUBindGroup yerine null değerini setBindGroup() öğesine geçirmek, belirli bir yuvada önceden ayarlanmış bir bağlama grubunun ayarını iptal etmenize olanak tanır. issue dawn:1675'e 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 hatalarının sesini kapat

GPUDevice öğesinin createComputePipelineAsync() ve createRenderPipelineAsync() yöntemleri, ardışık düzenin oluşturulması tamamlandığında çözüme kavuşturulan bir söz döndürür. Artık kayıp cihazların mümkün olduğunca çok çalışıyormuş gibi görünmesi için GPUDevice lost olduğunda eşzamansız ardışık düzen oluşturma kaynaklı hataların sesi kapatılır. 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, createShaderModule() ile bir SPIR-V gölgelendirici modülü oluşturulduğunda artık Chrome'u "Güvenli Olmayan WebGPU Desteği" işaretiyle çalıştırmadığınız takdirde TypeError hatası bildirilir. Bu değişiklikten önce SPIR-V kullanıldığında, bunun yerine bir GPUInternalError oluşturuluyordu. chromium:4711911'i değiştirme bölümüne 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 salt yazma depolama doku bağlamaları için iyileştirilmiştir. issue Dawn:1883'e 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. Böylece bu ardışık düzenler daha verimli bir şekilde oluşturulur ve daha az bellek kullanır. issue dawn:1933'e bakın.

Dawn ile ilgili güncellemeler

wgpu::RequestAdapterOptionsBackendType, artık uygulamaların bağdaştırıcı alırken belirli bir arka uç isteğinde bulunmasını kolaylaştırmak için wgpu::RequestAdapterOptions kapsamındadır. Aşağıdaki örneği ve issue sawn:1875'i inceleyin.

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ğlantısına göz atın.

webgpu.h C API'sı, boole değerleri türünü stdbool iken WGPUBool (bu bir uint32_t) olarak değiştirdi. Bu değişiklik, API'nin C ve C++'ta eşdeğer bir ABI'ya sahip olmasını sağlamak için yapılmıştır.

Burada, öne çıkan özelliklerin yalnızca bir kısmı ele alınıyor. Kayıtların kapsamlı listesine göz atın.

WebGPU'daki Yenilikler

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

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