게시일: 2025년 8월 27일
기기 요청이 어댑터를 사용함
WebGPU 사양에 따르면 어댑터는 기기 요청이 성공하면 '사용됨'으로 표시됩니다. 따라서 동일한 어댑터를 사용하는 후속 requestDevice()
호출은 이제 거부된 프로미스를 반환합니다. 이전에는 이러한 호출이 생성 시 손실된 기기를 반환했습니다. 문제 415825174를 참고하세요.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
await adapter.requestDevice(); // Fails because adapter has been consumed.
텍스처 뷰가 사용되는 곳에서 텍스처를 사용하는 약식
이제 GPUTexture를 GPUBindingResource로 직접 사용하여 바인딩을 위해 셰이더에 노출할 수 있습니다. 인체공학적 개선을 위해 GPURenderPassColorAttachment view
, GPURenderPassColorAttachment resolveTarget
, GPURenderPassDepthStencilAttachment view
로도 사용할 수 있습니다. 이렇게 하면 GPUTextureView를 사용하여 기본 뷰를 가져오는 것보다 간단한 접근 방식을 사용할 수 있습니다. 문제 425906323을 참고하세요.
const bindGroup = myDevice.createBindGroup({
layout: myPipeline.getBindGroupLayout(0),
entries: [
{ binding: 0, resource: mySampler },
{ binding: 1, resource: myTexture }, // Same as myTexture.createView()
{ binding: 2, resource: myExternalTexture },
{ binding: 3, resource: myBuffer },
],
});
WGSL textureSampleLevel이 1D 텍스처 지원
이제 1D 텍스처를 textureSampleLevel()
를 사용하여 샘플링할 수 있어 2D 텍스처와 일관성을 유지할 수 있습니다. 이를 통해 이전에는 textureSample()
를 사용하는 프래그먼트 셰이더에서만 가능했던 꼭짓점 셰이더에서 1D 텍스처를 샘플링할 수 있습니다. 문제 382514673을 참고하세요.
bgra8unorm 읽기 전용 저장소 텍스처 사용 지원 중단
읽기 전용 스토리지 텍스처와 함께 "bgra8unorm"
형식을 사용하는 것은 이제 지원 중단됩니다. WebGPU 사양에서는 이를 명시적으로 허용하지 않으며 Chrome에서 이전에 허용된 것은 버그였습니다. 이 형식은 쓰기 전용 액세스를 위한 것이며 이식할 수 없기 때문입니다. 문제 427681156을 참고하세요.
GPUAdapter isFallbackAdapter 속성 삭제
이전에 공지한 대로 GPUAdapter isFallbackAdapter
속성이 삭제되었습니다. Chrome 136에서 도입된 GPUAdapterInfo isFallbackAdapter
속성으로 대체됩니다. 삭제 의도를 참고하세요.
새벽 업데이트
wgpuInstanceGetWGSLLanguageFeatures()
함수는 인스턴스에서 지원하는 WGSL 언어 기능 목록을 가져오는 데 사용됩니다. 이전에는 WGPUStatus
값을 반환했습니다. 실패할 수 없으므로 값을 반환하지 않도록 업데이트되었습니다. 문제 429178774를 참고하세요.
이제 wgpuSurfacePresent()
함수는 서페이스에 현재 텍스처가 없는 경우 WGPUStatus
오류를 반환합니다. 문제 425930323을 참고하세요.
새로운 wgpu::InstanceFeatureName::MultipleDevicesPerAdapter
기능을 사용하면 어댑터가 '소비'되지 않고 여러 기기를 만들 수 있습니다. 문제 415825174를 참고하세요.
dump_shaders_on_failure
기기 전환 버튼을 사용하면 디버깅 목적으로 실패 시에만 셰이더를 덤프할 수 있습니다. 이 기능은 D3 백엔드에만 적용되지만 향후 다른 백엔드로 확장될 수 있습니다. 문제 429187478을 참고하세요.
특히 모바일 GPU의 성능을 개선하기 위해 렌더링 패스를 제출할 때 오버헤드를 줄이도록 Vulkan 백엔드가 여러 번 변경되었습니다. 예: VkFramebuffers 캐싱
여기에서는 몇 가지 주요 사항만 다룹니다. 전체 커밋 목록을 확인하세요.
WebGPU의 새로운 기능
WebGPU의 새로운 기능 시리즈에서 다룬 모든 항목의 목록입니다.
Chrome 140
- 기기 요청이 어댑터를 사용함
- 텍스처 뷰가 사용되는 경우 텍스처를 사용하는 약어
- WGSL textureSampleLevel이 1D 텍스처 지원
- bgra8unorm 읽기 전용 저장소 텍스처 사용 지원 중단
- GPUAdapter isFallbackAdapter 속성 삭제
- 새벽 업데이트
Chrome 139
Chrome 138
- 버퍼를 바인딩 리소스로 사용하는 약식
- 생성 시 매핑된 버퍼의 크기 요구사항 변경
- 최근 GPU의 아키텍처 보고서
- GPUAdapter isFallbackAdapter 속성 지원 중단
- 새벽 업데이트
Chrome 137
- externalTexture 바인딩에 텍스처 뷰 사용
- 오프셋과 크기를 지정하지 않고 버퍼 복사
- 원자에 대한 포인터를 사용하는 WGSL workgroupUniformLoad
- GPUAdapterInfo powerPreference 속성
- GPURequestAdapterOptions compatibilityMode 속성 삭제
- 새벽 업데이트
Chrome 136
Chrome 135
- null 바인드 그룹 레이아웃으로 파이프라인 레이아웃 생성 허용
- 뷰포트가 렌더링 타겟 경계를 지나 확장되도록 허용
- Android에서 실험용 호환성 모드에 더 쉽게 액세스
- maxInterStageShaderComponents 한도 삭제
- 새벽 업데이트
Chrome 134
Chrome 133
- 추가 unorm8x4-bgra 및 1컴포넌트 꼭짓점 형식
- 정의되지 않은 값으로 알 수 없는 한도를 요청하도록 허용
- WGSL 정렬 규칙 변경사항
- discard를 사용한 WGSL 성능 향상
- 외부 텍스처에 VideoFrame displaySize 사용
- copyExternalImageToTexture를 사용하여 기본이 아닌 방향의 이미지 처리
- 개발자 환경 개선
- featureLevel로 호환성 모드 사용 설정
- 실험용 하위 그룹 기능 정리
- maxInterStageShaderComponents 한도 지원 중단
- 새벽 업데이트
Chrome 132
- 텍스처 뷰 사용량
- 32비트 부동 소수점 텍스처 혼합
- GPUDevice adapterInfo 속성
- 잘못된 형식으로 캔버스 컨텍스트를 구성하면 JavaScript 오류가 발생함
- 텍스처의 샘플러 제한 필터링
- 확장된 하위 그룹 실험
- 개발자 환경 개선
- 16비트 정규화된 텍스처 형식 실험적 지원
- 새벽 업데이트
Chrome 131
- WGSL에서 거리 클리핑
- GPUCanvasContext getConfiguration()
- 점 및 선 기본 요소에는 깊이 바이어스가 없어야 합니다
- 하위 그룹의 포괄적 검색 기본 제공 함수
- multi-draw indirect 실험적 지원
- 셰이더 모듈 컴파일 옵션 strict math
- GPUAdapter requestAdapterInfo() 삭제
- 새벽 업데이트
Chrome 130
Chrome 129
Chrome 128
- 하위 그룹 실험
- 선과 점의 깊이 편향 설정 지원 중단
- preventDefault인 경우 포착되지 않은 오류 DevTools 경고 숨기기
- WGSL 보간 샘플링이 먼저 실행되고 다음 중 하나가 실행됩니다.
- 새벽 업데이트
Chrome 127
Chrome 126
Chrome 125
Chrome 124
Chrome 123
Chrome 122
Chrome 121
- Android에서 WebGPU 지원
- Windows에서 셰이더 컴파일에 FXC 대신 DXC 사용
- 컴퓨팅 및 렌더링 패스의 타임스탬프 쿼리
- 셰이더 모듈의 기본 진입점
- GPUExternalTexture 색상 공간으로 display-p3 지원
- 메모리 힙 정보
- 새벽 업데이트
Chrome 120
Chrome 119
Chrome 118
Chrome 117
- 꼭짓점 버퍼 설정 해제
- 바인드 그룹 설정 해제
- 기기가 손실된 경우 비동기 파이프라인 생성에서 오류 무시
- SPIR-V 셰이더 모듈 생성 업데이트
- 개발자 환경 개선
- 자동으로 생성된 레이아웃으로 파이프라인 캐싱
- 새벽 업데이트
Chrome 116
- WebCodecs 통합
- GPUAdapter
requestDevice()
에서 반환된 손실된 기기 importExternalTexture()
이 호출되는 경우 동영상 재생을 원활하게 유지- 사양 준수
- 개발자 환경 개선
- 새벽 업데이트