게시일: 2025년 4월 23일
GPUAdapterInfo isFallbackAdapter 속성
GPUAdapterInfo isFallbackAdapter
불리언 속성은 GPUAdapter에 더 광범위한 호환성, 더 예측 가능한 동작 또는 향상된 개인 정보 보호를 위해 상당한 성능 제한이 있는지 여부를 나타냅니다. 사용자 제공 GPUDevice 객체를 사용하는 라이브러리가 GPUDevice의 adapterInfo
속성을 통해 이 정보에 액세스할 수 없으므로 이 속성을 추가해야 했습니다. 다음 예시와 문제 403172841을 참고하세요.
const adapter = await navigator.gpu.requestAdapter();
if (adapter?.info.isFallbackAdapter) {
// The returned adapter is a software-backed fallback adapter, which
// may have significantly lower performance and fewer features.
}
Chrome은 아직 대체 어댑터 지원을 출시하지 않았으므로 현재 사용자 기기에서 isFallbackAdapter
는 항상 false입니다. GPUAdapter isFallbackAdapter
속성을 지원 중단하고 삭제할 수 있는지 조사하고 있습니다. 배송 인텐트를 참고하세요.
D3D12의 셰이더 컴파일 시간 개선
Chrome팀은 D3D12 백엔드로 WebGPU를 지원하는 기기의 중간 표현 (IR)을 추가하여 WebGPU 셰이더 언어 컴파일러인 Tint를 지속적으로 개선하고 있습니다. Tint의 추상 문법 트리 (AST)와 HLSL 백엔드 작성기 사이에 위치한 이 IR은 컴파일러를 더 효율적이고 유지보수 가능하게 만들어 궁극적으로 개발자와 사용자 모두에게 도움이 됩니다. 초기 테스트에 따르면 새 버전의 Tint는 Unity의 WGSL 셰이더를 HLSL로 변환할 때 최대 10배 더 빠릅니다.

이러한 개선사항은 이미 Android, ChromeOS, macOS에서 액세스할 수 있으며 D3D12 백엔드로 WebGPU를 지원하는 Windows 기기로 점진적으로 확대되고 있습니다. 문제 42251045를 참고하세요.
캔버스 이미지 저장 및 복사하기
이제 Chrome 사용자는 WebGPU 캔버스를 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴 옵션 이미지를 다른 이름으로 저장… 또는 이미지 복사에 액세스할 수 있습니다. 문제 40902474를 참고하세요.

광고효과 측정 호환성 모드 제한사항
GPUDevice에서 사용할 수 있는 실험용 "core-features-and-limits"
기능은 chrome://flags/#enable-unsafe-webgpu
플래그가 사용 설정된 경우 모든 호환성 모드 제한사항 (기능 및 제한)을 해제합니다. 문제 395855517을 참고하세요.
featureLevel: "compatibility"
옵션으로 GPUAdapter를 요청하면 브라우저에 실험용 WebGPU 호환성 모드를 선택하라는 힌트가 제공됩니다. 성공하면 결과 어댑터가 '호환성 기본값'으로 설정됩니다. 그렇지 않으면 featureLevel: "core"
옵션을 사용하는 것과 동일한 'core-defaulting'입니다. 또한 requiredFeatures
및 requiredLimits
없이 requestDevice()
를 호출하면 GPUAdapter의 기본 기능이 있는 GPUDevice가 요청됩니다.
핵심 기본 어댑터는 항상 "core-features-and-limits"
기능을 지원하며, 이 어댑터에서 생성된 GPUDevice에서 자동으로 사용 설정됩니다. 호환성 기본값 어댑터의 경우 "core-features-and-limits"
기능이 지원될 수 있으며 이러한 어댑터에서 생성된 GPUDevices에서 요청할 수 있습니다. 두 유형의 어댑터 모두 "float32-blendable"
와 같은 기능을 지원할 수 있으며, 이는 핵심 모드와 호환성 모드 모두에서 선택사항입니다.
다음 예는 "float32-blendable"
가 필요하고 사용 가능한 경우 핵심 기능 사용을 지원하지만 핵심 기능을 사용할 수 없는 경우 호환성 기능만 사용하는 애플리케이션을 보여줍니다.
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });
if (!adapter || !adapter.features.has("float32-blendable")) {
throw new Error("32-bit float textures blending support is not available");
}
const requiredFeatures = [];
if (adapter.features.has("core-features-and-limits")) {
requiredFeatures.push("core-features-and-limits");
}
const device = await adapter.requestDevice({ requiredFeatures });
if (!device.features.has("core-features-and-limits")) {
// Compatibility mode restrictions validation rules will apply.
}
실험용 GPUAdapter featureLevel
및 isCompatibilityMode
속성이 "core-features-and-limits"
기능을 위해 삭제되었습니다. 문제 395855516을 참고하세요.
Dawn 업데이트
콜백이 취소되었지만 이벤트와 관련된 백그라운드 처리(예: 파이프라인 컴파일)가 여전히 실행 중일 수 있음을 명확히 하기 위해 콜백 상태 enum InstanceDropped
의 이름이 CallbackCancelled
로 변경되었습니다. 새 이름은 나중에 다른 취소 메커니즘이 추가되는 경우 더 일반적으로 적용할 수 있습니다. 문제 520을 참고하세요.
오류 범위 스택을 팝할 수 없음을 나타내는 wgpu::PopErrorScopeStatus::EmptyStack
enum의 이름이 더 일반적으로 적용할 수 있는 wgpu::PopErrorScopeStatus::Error
로 변경되었습니다. 이제 디버깅에 도움이 되는 상응하는 오류 설명 메시지도 콜백에 포함됩니다. 문제 369를 참고하세요.
여기에는 주요 내용 중 일부만 다룹니다. 전체 커밋 목록을 확인하세요.
WebGPU의 새로운 기능
WebGPU의 새로운 기능 시리즈에서 다룬 모든 항목의 목록입니다.
Chrome 136
- GPUAdapterInfo isFallbackAdapter 속성
- D3D12의 셰이더 컴파일 시간 개선
- 캔버스 이미지 저장 및 복사하기
- 리프트 호환성 모드 제한사항
- Dawn 업데이트
Chrome 135
- null 바인드 그룹 레이아웃으로 파이프라인 레이아웃 만들기 허용
- 뷰포트가 렌더링 타겟 경계를 넘어 확장되도록 허용
- Android에서 실험용 호환성 모드에 더 쉽게 액세스
- maxInterStageShaderComponents 제한 삭제
- Dawn 업데이트
Chrome 134
Chrome 133
- 추가 unorm8x4-bgra 및 1개 구성요소 정점 형식
- 정의되지 않은 값으로 알 수 없는 한도를 요청할 수 있도록 허용
- WGSL 정렬 규칙 변경사항
- 삭제로 WGSL 성능 향상
- 외부 텍스처에 VideoFrame displaySize 사용하기
- copyExternalImageToTexture를 사용하여 기본이 아닌 방향의 이미지 처리
- 개발자 환경 개선
- featureLevel을 사용하여 호환성 모드 사용 설정
- 실험용 하위 그룹 기능 정리
- maxInterStageShaderComponents 한도 지원 중단
- Dawn 업데이트
Chrome 132
- 텍스처 뷰 사용량
- 32비트 부동 소수점 텍스처 혼합
- GPUDevice adapterInfo 속성
- 잘못된 형식으로 캔버스 컨텍스트를 구성하면 JavaScript 오류가 발생함
- 텍스처에 대한 샘플러 필터링 제한사항
- 확장된 하위 그룹 실험
- 개발자 환경 개선
- 16비트 정규화된 텍스처 형식의 실험적 지원
- Dawn 업데이트
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 업데이트