WebGPU의 새로운 기능 (Chrome 117)

François Beaufort
François Beaufort

꼭짓점 버퍼 설정 해제

GPURenderPassEncoder 또는 GPURenderBundleEncoder에서 GPUBuffer 대신 nullsetVertexBuffer()에 전달하면 지정된 슬롯에서 이전에 설정된 꼭짓점 버퍼를 설정 해제할 수 있습니다. issue dawn:1675를 참고하세요.

// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);

// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);

바인드 그룹 설정 해제

GPURenderPassEncoder 또는 GPURenderBundleEncoder에서 GPUBindGroup 대신 nullsetBindGroup()에 전달하면 지정된 슬롯에서 이전에 설정된 바인드 그룹을 설정 해제할 수 있습니다. issue dawn:1675를 참고하세요.

// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);

// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);

기기 분실 시 비동기 파이프라인 생성 시 오류 차단

GPUDevicecreateComputePipelineAsync()createRenderPipelineAsync() 메서드는 파이프라인 생성이 완료되면 확인되는 프로미스를 반환합니다. 이제 분실된 기기가 최대한 작동하는 것처럼 보이도록 GPUDevicelost일 때 비동기 파이프라인 생성으로 인한 오류가 음소거됩니다. dawn issue:1874를 참고하세요.

SPIR-V 셰이더 모듈 생성 업데이트

이제 createShaderModule()를 사용하여 SPIR-V 셰이더 모듈을 만들면 '안전하지 않은 WebGPU 지원'으로 Chrome을 실행하지 않는 한 TypeError가 발생합니다. SPIR-V가 WebGPU 사양에 포함되지 않으므로 flag를 지정해야 합니다. 이 변경 이전에는 SPIR-V를 사용하면 GPUInternalError가 대신 생성됩니다. chromium:4711911 변경사항을 참고하세요.

개발자 환경 개선

꼭짓점 셰이더의 바인드 그룹 레이아웃 바인딩에 대한 유효성 검사 오류 메시지가 읽기-쓰기 스토리지 버퍼와 쓰기 전용 저장소 텍스처 바인딩에 맞게 개선되었습니다. issue dawn:1883을 참고하세요.

자동으로 생성된 레이아웃으로 파이프라인 캐싱

createRenderPipeline({ layout: "auto" })로 만든 파이프라인은 이제 Chrome의 캐싱 메커니즘을 활용합니다. 즉, 이러한 파이프라인이 더 효율적으로 생성되고 메모리를 덜 사용하게 됩니다. issue dawn:1933을 참고하세요.

Dawn 업데이트

이제 wgpu::RequestAdapterOptionsBackendTypewgpu::RequestAdapterOptions의 일부로, 어댑터를 가져올 때 애플리케이션에서 특정 백엔드를 더 쉽게 요청할 수 있습니다. 다음 예와 issue dawn:1875를 참고하세요.

wgpu::RequestAdapterOptions options = {
    .backendType = wgpu::BackendType::D3D12};

// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);

Node.js를 위한 몇 가지 추가 메서드가 구현되었습니다. change dawn:142465를 참고하세요.

webgpu.h C API는 불리언 값의 유형을 stdbool에서 WGPUBool(uint32_t)로 변경했습니다. 이 변경사항은 API가 C 및 C++에서 동등한 ABI를 보유하도록 하기 위한 것입니다.

여기에서는 몇 가지 주요 사항만 다룹니다. 전체 커밋 목록을 확인하세요.

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