WebGPU (Chrome 114)의 새로운 기능

François Beaufort
François Beaufort

JavaScript 최적화

Chromium 참여자는 V8 JavaScript 엔진에서 생성된 코드에서 Blink 렌더링 엔진의 C++ 핸들러로 호출하는 오버헤드를 줄여 GPUComputePassEncoder, GPURenderPassEncoder, GPUCommandEncoder 메서드의 WebGPU 성능을 가속화했습니다. 문제 chromium:1417558을 참고하세요.

다음 마이크로벤치마크는 JavaScript 호출의 CPU 시간이 드로잉 10,000개당 약 0.5ms에서 드로잉 10,000개당 약 0.3ms로 감소하여 40% 개선되었음을 보여줍니다.

빠른 호출 개선을 보여주는 Chrome 브라우저 벤치마크 그래프의 스크린샷
빠른 호출 개선을 보여주는 Chrome 벤치마크 그래프 (소스).

구성되지 않은 캔버스의 getCurrentTexture()에서 InvalidStateError가 발생함

구성되지 않은 캔버스에서 GPUCanvasContext getCurrentTexture() 메서드를 호출하면 이제 WebGPU 사양에 따라 OperationError 대신 InvalidStateError이 발생합니다. chromium:1424461 문제를 참고하세요.

const context = document.querySelector("canvas").getContext("webgpu");
context.getCurrentTexture(); // Throws InvalidStateError

WGSL 업데이트

이제 AbstractInt의 0으로 채워진 벡터를 vec2(), vec3(), vec4()로 작성할 수 있습니다. issue tint:1892를 참고하세요. 예를 들면 다음과 같습니다.

  • vec2(): vec2(0,0)
  • vec3(): vec3(0,0,0)
  • vec4(): vec4(0,0,0,0)

Dawn 업데이트

오류 메시지 개선

오류 메시지에서 잘못된 객체의 설명자 라벨을 볼 수 있도록 더 이상 삭제되지 않습니다. 문제 dawn:1771을 참고하세요.

Node.js에 누락된 API 추가

이제 GPUAdapter::requestAdapterInfo()GPUBuffer::getMapState() 메서드가 Node.js용으로 구현됩니다. 문제 dawn:1761을 참고하세요.

WebGPU의 새로운 기능

WebGPU의 새로운 기능 시리즈에서 다룬 모든 항목의 목록입니다.

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