원문: What's New in WebGPU (Chrome 149-150) — Chrome Developers 원문은 CC-BY-4.0 라이선스로 제공되며, 이 글은 한국어로 번역한 2차 저작물입니다.
Immediates, 즉 push constants 또는 root constants는 소량의 빈번하게 변경되는 데이터를 셰이더에 직접 전달할 수 있도록 합니다. 이 과정은 GPU 버퍼 생성 및 bind group 관리에 따른 오버헤드를 우회합니다.
매번 draw call마다 변경되는 데이터, 예를 들어 고유 객체 ID나 수백 개 객체의 3D 변환 행렬 등에 대한 uniform buffer 바인딩을 업데이트하는 것은 CPU 오버헤드를 발생시킵니다. 메모리에 데이터를 쓰고 GPU 조회를 관리하는 작업을 피하기 위해 원시 값을 pass encoder에 직접 주입하십시오.
Immediates는 작고 매우 동적인 변수에 대한 빠른 경로를 제공합니다. 대규모 데이터 배열, 복잡한 조명 구조 또는 거대한 행렬의 경우에는 uniform buffer 또는 storage buffer를 사용하십시오.
WGSL 셰이더에서
<immediate> 주소 공간을 사용하면 pass encoder에 직접 전달될 수 있는 immediate 데이터를 정의할 수 있습니다. bind group을 바인딩하지 않고 이 데이터를 제공하려면 draw call 전에 JavaScript에서 setImmediates()를 호출하십시오. 지원 여부를 확인하려면 navigator.gpu.wgslLanguageFeatures를 통해 immediate_address_space WGSL 언어 확장을 feature-detect하십시오. 다음 예시와 shipping 의향을 참조하십시오.이 기능에 대한 자세한 내용은 WebGPUFundamentals Immediates를 참조하십시오.
Microsoft 팀의 기여에 감사드립니다!
Transient Attachment에 대한 엄격한 유효성 검사
WebGPU는 최근
TRANSIENT_ATTACHMENT GPUTextureUsage 플래그를 도입하여, 개발자가 depth-stencil 버퍼나 multisampled 타겟과 같은 임시 렌더링 첨부 파일을 생성할 수 있도록 했습니다. 이러한 첨부 파일은 메인 VRAM을 할당하지 않고도 고속의 온칩 타일 메모리에 유지됩니다.- 플랫폼 제한으로 인해, transient 텍스처를 생성할 때
는 빈 배열이어야 합니다. transient 텍스처는 렌더링에만 사용되므로 대체 view 형식은 필요하지 않습니다.viewFormats - 텍스처 뷰를 생성하는 것은 사용 플래그를 좁히지 않습니다. transient 텍스처에
를 호출할 때, 뷰는 사용 플래그를 변경할 수 없습니다.createView() - Transient attachment는 렌더 패스 내에서
으로 사용할 수 없습니다.resolveTarget
Dawn 업데이트
이것은 주요 내용 중 일부일 뿐입니다. 모든 변경 사항 목록은 커밋 목록에서 확인할 수 있습니다.
What's New in WebGPU 시리즈에서 다루어진 모든 내용의 목록입니다.
Chrome 149-150
Chrome 147-148
Chrome 146
Chrome 145
Chrome 144
- WGSL subgroup_id 확장
- WGSL uniform_buffer_standard_layout 확장
- Linux에서의 WebGPU
- writeBuffer 및 writeTexture 속도 향상
- Dawn 업데이트
Chrome 143
Chrome 142
Chrome 141
Chrome 140
- Device 요청이 adapter를 소비합니다
- 텍스처 뷰가 사용되는 곳에서 텍스처 사용을 위한 단축 표기법
- WGSL textureSampleLevel이 1D 텍스처를 지원합니다
- bgra8unorm 읽기 전용 스토리지 텍스처 사용 지원 중단
- GPUAdapter isFallbackAdapter 속성 제거
- Dawn 업데이트
Chrome 139
Chrome 138
- 버퍼를 바인딩 리소스로 사용하기 위한 단축 표기법
- 생성 시 매핑된 버퍼의 크기 요구사항 변경
- 최신 GPU 아키텍처 보고서
- GPUAdapter isFallbackAdapter 속성 지원 중단
- Dawn 업데이트
Chrome 137
- externalTexture 바인딩에 텍스처 뷰 사용
- 오프셋 및 크기 지정 없이 버퍼 복사
- WGSL workgroupUniformLoad가 atomic에 대한 포인터 사용
- GPUAdapterInfo powerPreference 속성
- GPURequestAdapterOptions compatibilityMode 속성 제거
- Dawn 업데이트
Chrome 136
Chrome 135
- null bind group layout으로 파이프라인 레이아웃 생성 허용
- 뷰포트가 렌더 타겟 경계를 넘어서 확장되도록 허용
- Android에서 실험적인 호환 모드에 대한 더 쉬운 접근
- maxInterStageShaderComponents 제한 제거
- Dawn 업데이트
Chrome 134
Chrome 133
- 추가 unorm8x4-bgra 및 1-컴포넌트 정점 형식
- 정의되지 않은 값으로 알 수 없는 제한 요청 허용
- WGSL 정렬 규칙 변경
- discard를 사용한 WGSL 성능 향상
- VideoFrame displaySize를 external 텍스처에 사용
- copyExternalImageToTexture로 비표준 방향의 이미지 처리
- 개발자 경험 개선
- featureLevel로 호환 모드 활성화
- 실험적인 서브그룹 기능 정리
- maxInterStageShaderComponents 제한 지원 중단
- Dawn 업데이트
Chrome 132
- 텍스처 뷰 사용
- 32비트 float 텍스처 블렌딩
- GPUDevice adapterInfo 속성
- 잘못된 형식으로 캔버스 컨텍스트 구성 시 JavaScript 오류 발생
- 텍스처에 대한 필터링 샘플러 제한
- 확장된 서브그룹 실험
- 개발자 경험 개선
- 16비트 정규화 텍스처 형식에 대한 실험적 지원
- Dawn 업데이트
Chrome 131
- WGSL의 Clip distances
- GPUCanvasContext getConfiguration()
- Point 및 line 기본 요소는 depth bias를 갖지 않아야 합니다
- 서브그룹을 위한 Inclusive scan 내장 함수
- Multi-draw indirect에 대한 실험적 지원
- 셰이더 모듈 컴파일 옵션 strict math
- GPUAdapter requestAdapterInfo() 제거
- Dawn 업데이트
Chrome 130
Chrome 129
Chrome 128
- 서브그룹 실험
- 라인 및 포인트에 대한 depth bias 설정 지원 중단
- preventDefault 시 uncaptured error DevTools 경고 숨김
- WGSL interpolate sampling first 및 either
- Dawn 업데이트
Chrome 127
Chrome 126
Chrome 125
Chrome 124
Chrome 123
- WGSL의 DP4a 내장 함수 지원
- WGSL의 제한 없는 포인터 매개변수
- WGSL에서 복합 요소 역참조를 위한 구문 설탕
- stencil 및 depth 부분을 위한 별도의 읽기 전용 상태
- Dawn 업데이트
Chrome 122
Chrome 121
- Android에서 WebGPU 지원
- Windows에서 셰이더 컴파일을 위해 FXC 대신 DXC 사용
- 컴퓨트 및 렌더 패스에서의 타임스탬프 쿼리
- 셰이더 모듈의 기본 진입점
- GPUExternalTexture 색상 공간으로 display-p3 지원
- 메모리 힙 정보
- Dawn 업데이트
Chrome 120
Chrome 119
Chrome 118
- HTMLImageElement 및 ImageData를
에서 지원copyExternalImageToTexture() - 읽기-쓰기 및 읽기 전용 스토리지 텍스처에 대한 실험적 지원
- Dawn 업데이트
Chrome 117
- 정점 버퍼 해제
- 바인딩 그룹 해제
- 디바이스가 손실된 경우 비동기 파이프라인 생성의 오류 숨김
- SPIR-V 셰이더 모듈 생성 업데이트
- 개발자 경험 개선
- 자동으로 생성된 레이아웃으로 파이프라인 캐싱
- Dawn 업데이트
Chrome 116
- WebCodecs 통합
- GPUAdapter
에서 반환된 손실된 디바이스requestDevice()
호출 시 비디오 재생을 원활하게 유지importExternalTexture()- 명세 준수
- 개발자 경험 개선
- Dawn 업데이트




