WebGPU (Chrome 114)의 새로운 기능

François Beaufort
François Beaufort

JavaScript 최적화

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

다음 Microbenchmark는 JavaScript의 호출 CPU 시간이 10K 그리기당 약 0.5ms에서 10K 그리기당 약 0.3ms로 감소하는 것을 보여주며 이는 40% 개선된 것입니다.

<ph type="x-smartling-placeholder">
</ph> 빠른 호출 개선사항을 보여주는 Chrome 브라우저 벤치마크 그래프 스크린샷 <ph type="x-smartling-placeholder">
</ph> 빠른 통화 개선사항을 보여주는 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 업데이트

오류 메시지 개선

잘못된 객체의 설명어 라벨이 더 이상 삭제되지 않으므로 오류 메시지에서 해당 객체를 볼 수 있습니다. issue dawn:1771을 참고하세요.

누락된 Node.js API 추가

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

WebGPU의 새로운 기능

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