이번에는 WebGPU 기능의 수가 약간 부족해 보일 수 있지만, 곧 주요 개선사항을 도입할 예정입니다. 다음 버전에는 DP4a, 읽기 전용 및 읽기-쓰기 저장소 텍스처, 별도의 스텐실 및 깊이 측정기준 제어, 3D 텍스처 슬라이스로 렌더링, 셰이더 컴파일 개선과 같은 기능이 포함됩니다.
그동안 헤드리스 Chrome에서 WebGPU 및 WebGL 지원을 통해 웹 AI 모델 테스트를 강화하는 방법과 Chrome에서 WebGPU가 사용 중지되거나 작동하지 않는 이유를 알아보세요.
호환성 모드로 도달범위 확대 (개발 중인 기능)
WebGPU는 최신 그래픽 API (Vulkan, Metal, D3D12)와 잘 호환되지만 일부 기기에서는 이러한 API를 지원하지 않습니다. 따라서 특히 Windows (Chrome 사용자의 31% 가 D3D11.1 이상을 사용하지 않음), Android (23% 가 Vulkan 1.1 이상을 사용하지 않음), ChromeOS (Vulkan 채택 증가)와 같은 플랫폼에서 WebGPU의 접근성이 제한됩니다.
Chrome팀은 D3D11 및 OpenGL ES와 같은 이전 API에서 작동하는 약간 제한된 버전의 WebGPU를 제공하여 이 문제를 해결하기 위해 WebGPU의 호환성 모드를 개발하고 있습니다. 이렇게 하면 WebGPU의 잠재적 사용자층이 확대됩니다.
중요한 점은 호환성 모드를 사용하는 애플리케이션은 완전히 유효한 WebGPU 애플리케이션으로 유지된다는 것입니다. 호환성 모드 지원이 없는 기기는 기본적으로 핵심 WebGPU 어댑터로 원활하게 전환되므로 광범위한 사용성을 보장할 수 있습니다.
maxVertexAttributes 제한 늘리기
GPURenderPipeline을 만들 때 버퍼 전체의 총 최대 속성 수는 기본적으로 16개입니다. 이제 지원되는 경우 maxVertexAttributes 한도를 사용하여 최대 30개까지 요청할 수 있습니다. 다음 예와 issue dawn: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 },
});
Dawn 업데이트
'expose_wgsl_experimental_features'라는 새로운 인스턴스 전환 버튼이 추가되어 인스턴스가 안전하지 않은 WGSL 기능이 아닌 실험용 WGSL 기능만 노출하도록 했습니다. 따라서 'allow_unsafe_apis' 전환 버튼을 사용 설정하지 않고도 안전한 실험용 WGSL 기능을 사용할 수 있습니다. 문제 dawn:2260을 참고하세요.
최근 Node.js용 Dawn 바인딩의 개선사항에는 다음이 포함됩니다.
GPUSupportedFeatures::getSize()
이(가) 추가되었습니다.GPUAdapter
비활성 상태가 구현되었습니다.- 이제
GPUInternalError
가 기기에 대해 올바르게 보고됩니다. - 이제 속성을 열거할 수 있습니다.
여기에서는 몇 가지 주요 사항만 다룹니다. 전체 커밋 목록을 확인하세요.
WebGPU의 새로운 기능
WebGPU의 새로운 기능 시리즈에서 다룬 모든 내용 목록
Chrome 131
- WGSL에서 거리 클립하기
- GPUCanvasContext getConfiguration()
- 점 및 선 원시에는 깊이 바이어스가 없어야 함
- 하위 그룹을 위한 포용 스캔 기본 제공 함수
- 다중 그리기 간접 광고 실험 지원
- 셰이더 모듈 컴파일 옵션 엄격한 수학
- GPUAdapter requestAdapterInfo() 삭제
- Dawn 업데이트
Chrome 130
Chrome 129
Chrome 128
- 하위 그룹 실험
- 선 및 점의 설정 깊이 바이어스 지원 중단
- preventDefault인 경우 포착되지 않은 오류 DevTools 경고 숨기기
- WGSL은 먼저 샘플링을 보간하고 다음 중 하나를 실행합니다.
- Dawn 업데이트
Chrome 127
Chrome 126
Chrome 125
Chrome 124
Chrome 123
- WGSL의 DP4a 내장 함수 지원
- WGSL의 제한되지 않은 포인터 매개변수
- WGSL에서 합성물 역참조를 위한 문법 슈가
- 스텐실 및 깊이 측면에 관한 별도의 읽기 전용 상태
- Dawn 업데이트
Chrome 122
Chrome 121
- Android에서 WebGPU 지원
- Windows에서 셰이더 컴파일에 FXC 대신 DXC 사용하기
- 컴퓨팅 및 렌더링 패스의 타임스탬프 쿼리
- 셰이더 모듈의 기본 진입점
- display-p3를 GPUExternalTexture 색상 공간으로 지원
- 메모리 힙 정보
- Dawn 업데이트
Chrome 120
Chrome 119
Chrome 118
copyExternalImageToTexture()
의 HTMLImageElement 및 ImageData 지원- 읽기 쓰기 저장소 텍스처 및 읽기 전용 저장소 텍스처에 대한 실험적 지원
- Dawn 업데이트
Chrome 117
- 꼭짓점 버퍼 설정 해제
- 바인드 그룹 설정 해제
- 기기 연결이 끊겼을 때 비동기 파이프라인 생성 오류를 표시하지 않음
- SPIR-V 셰이더 모듈 생성 업데이트
- 개발자 환경 개선
- 자동 생성된 레이아웃으로 파이프라인 캐싱
- Dawn 업데이트
Chrome 116
- WebCodecs 통합
- GPUAdapter
requestDevice()
에서 반환된 분실 기기 importExternalTexture()
가 호출될 때 동영상 재생을 원활하게 유지- 사양 준수
- 개발자 환경 개선
- Dawn 업데이트