WebGPU'daki yenilikler (Chrome 146)

François Beaufort
François Beaufort

Yayınlanma tarihi: 25 Şubat 2026

OpenGL ES 3.1'de WebGPU uyumluluk modunu destekleme

WebGPU, Vulkan, Metal ve D3D12 gibi modern grafik API'leriyle uyumlu olacak şekilde tasarlanmış olsa da birçok kullanıcının bu standartları desteklemeyen eski donanımları vardır. Bu açığı kapatmak ve geniş kapsamlı erişilebilirlik sağlamak için Chrome, uyumluluk modu adlı yeni bir etkinleştirme özelliği sunuyor.

Bu mod, WebGPU'yu OpenGL ES 3.1 gibi eski grafik API'lerinde çalıştırmanıza olanak tanır. WebGPU spesifikasyonunun biraz kısıtlanmış bir alt kümesini hedefleyerek web uygulamanızın en yeni oyun bilgisayarlarından eski dizüstü bilgisayarlara ve mobil cihazlara kadar herkes tarafından erişilebilir olmasını sağlarsınız. Android ile başlayan ekip, OpenGL ES 3.1 ile ChromeOS ve Direct3D 11 ile Windows gibi diğer cihazlar için destek sunma olasılığını araştırıyor.

Birçok web uygulamasında, requestAdapter() işlevini çağırırken featureLevel: "compatibility" parametresini ileterek uyumluluk modunu etkinleştirebilirsiniz. Cihazınız Core WebGPU'yu destekliyorsa Chrome, Core özellikli bir bağdaştırıcı döndürür ancak web uygulamanız "core-features-and-limits" özelliğini etkinleştirmediği (veya mevcut tüm özellikleri etkinleştirmediği) sürece uyumluluk sınırları içinde kalması gerektiğini bilir. Daha karmaşık uygulamaların, modun kısıtlamalarına uyması için küçük ayarlamalar yapılması gerekebilir.

// Request a GPUAdapter in compatibility mode.
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });
const device = await adapter.requestDevice();

Bu modun mimariyle ilgili kısıtlamaları hakkında ayrıntılı bilgi için WebGPU Temelleri Kılavuzu'na bakın. Ayrıca, tüm WebGPU örnekleri artık uyumluluk modunu destekliyor. Gönderme niyetini de okuyabilirsiniz.

Geçici ekler

Bellek açısından verimli ekler oluşturmak için yeni TRANSIENT_ATTACHMENT GPUTextureUsage işaretini kullanabilirsiniz. Bu sayede oluşturma geçişi işlemleri döşeme belleğinde kalır. Böylece VRAM trafiği önlenir ve dokular için VRAM ayırma işlemi yapılmaz.

Bir dokuyu geçici (veya "hafızasız") olarak tanımladığınızda GPU, dokunun içeriğine yalnızca geçici olarak (özellikle yalnızca mevcut oluşturma geçişi içinde) ihtiyaç duyduğunu bilir. Ayrıca, dokunun içeriği oluşturma geçişinden sonra atıldığından sürücünün bunun için VRAM ayırması gerekmez.

Aşağıdaki örnekte geçici dokunun nasıl oluşturulacağı gösterilmektedir.

const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

if ('TRANSIENT_ATTACHMENT' in GPUTextureUsage) {

  const transientTexture = device.createTexture({
    size: [42, 42],
    // The TRANSIENT_ATTACHMENT flag indicates the texture content is temporary,
    // potentially keeping it in fast on-chip memory.
    usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TRANSIENT_ATTACHMENT,
    format: 'rgba8unorm',
  });
}

Hello Triangle MSAA - WebGPU Sample (Merhaba Üçgen MSAA - WebGPU Örneği) ve intent to ship (gönderme amacı) sayfasına bakın.

WGSL texture_and_sampler_let uzantısı

WGSL dil uzantısı texture_and_sampler_let, WGSL gölgelendiricisinde let öğesine doku veya örnekleyici değişkenleri atamanıza olanak tanır. Bu özellik şu anda alternatif bir adlandırma mekanizması sunuyor ve doku veya örnekleyici döndüren yöntemlerin doğrudan yerel değişkenlerde depolanabileceği bağlantısız destek için hazırlanıyor.

Aşağıdaki örneğe ve gönderme amacı'na bakın.

@group(0) @binding(0) var tex: texture_2d<f32>;
@group(1) @binding(0) var store : texture_storage_2d<r32float, read_write>;

@fragment fn main() {
    let a = tex;
    var res: vec4f = textureLoad(a, vec2i(1i), 0);

    textureStore(store, vec2i(0i), res);
}

Dawn ile ilgili güncellemeler

Aşağıdaki yeni sınır katmanları kullanılabilir:

Android'de ek bir güvenlik katmanı sağlamak ve hatalı giriş nedeniyle sürücü kararsızlığını önlemek için SPIR-V doğrulama varsayılan olarak etkindir. 473526182 numaralı sorunu inceleyin.

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 146

Chrome 145

Chrome 144

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