Nowości w interfejsie WebGPU (Chrome 122)

François Beaufort
François Beaufort

Liczba funkcji WebGPU może wydawać się tym niezbyt skomplikowana, ale nastąpią duże postępy w nauce. Następne wersje będą zawierały funkcje takie jak DP4a, tekstury pamięci tylko do odczytu oraz odczytu i zapisu, osobny szablon i kontrolę głębi obrazu, renderowanie na wycinkach tekstur 3D oraz ulepszenia kompilacji cieni.

W międzyczasie dowiedz się, jak ulepszyć testowanie modeli Web AI z wykorzystaniem technologii WebGPU i WebGPU w Chrome bez interfejsu graficznego oraz dlaczego WebGPU może być wyłączony lub nie działa w Chrome.

Zwiększanie zasięgu dzięki trybowi zgodności (funkcja w fazie opracowywania)

WebGPU dobrze współpracuje z nowoczesnymi interfejsami API dla grafiki (Vulkan, Metal i D3D12), ale niektóre urządzenia ich nie obsługują. Ogranicza to dostępność funkcji WebGPU, zwłaszcza na platformach takich jak Windows (31% użytkowników Chrome nie ma wersji D3D11.1 lub nowszej), Android (23% brak wersji Vulkan 1.1 lub nowszej) i ChromeOS (coraz większą popularność tego rozwiązania).

Zespół Chrome pracuje nad trybem zgodności w WebGPU, aby rozwiązać ten problem, oferując nieco ograniczoną wersję technologii WebGPU, która działa ze starszymi interfejsami API, takimi jak D3D11 i OpenGPU ES. Zwiększy to potencjalną bazę użytkowników WebGPU.

Co ważne, aplikacje korzystające z trybu zgodności pozostają w pełni prawidłowymi aplikacjami WebGPU. W przypadku urządzeń bez obsługi trybu zgodności domyślnie zostanie użyty podstawowy adapter WebGPU, co zapewni szerokie możliwości obsługi.

Schemat trybu zgodności z WebGPU.
Rozszerzony zasięg trybu zgodności z WebGPU.

Jeśli masz pytania, zapoznaj się z ofertą pakietową i komentarzem.

Zwiększ limit maxVertexAttributes

Maksymalna łączna liczba atrybutów w buforach podczas tworzenia potoku GPURenderPipeline wynosi domyślnie 16. Teraz można przesłać żądania do 30, korzystając z limitu maxVertexAttributes, jeśli jest ono obsługiwane. Zobacz ten przykład i problem świt:2223.

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

if (adapter.limits.maxVertexAttributes < 30) {
  // When the desired limit isn't supported, take action to either fall back to
  // a code path that does not require the higher limit or notify the user that
  // their device does not meet minimum requirements.
}

// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
  requiredLimits: { maxVertexAttributes: 30 },
});

Aktualizacje o świcie

nowy przełącznik instancji o nazwie „expose_wgsl_experimental_features”. dodano, aby instancja ujawniała tylko eksperymentalne funkcje WGSL, ale nie te niebezpieczne, aby można było używać bezpiecznych, eksperymentalnych funkcji WGSL bez konieczności włączania ustawienia „allow_unsafe_apis”. przełącz. Zobacz problem: świt:2260.

Niedawno wprowadziliśmy te ulepszenia w powiązaniach Dawn w Node.js:

  • Do Twojego konta dodano GPUSupportedFeatures::getSize().
  • Wdrożono brak aktualizacji GPUAdapter.
  • Aplikacja GPUInternalError jest teraz prawidłowo zgłaszana w przypadku urządzeń.
  • Można teraz wyliczać atrybuty.

To tylko niektóre z najważniejszych informacji. Zapoznaj się z pełną listą zatwierdzeń.

Co nowego w WebGPU

Lista wszystkiego, co zostało omówione w serii Co nowego w WebGPU.

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