게시일: 2025년 6월 17일
버퍼를 바인딩 리소스로 사용하는 방법의 축약형
이제 개발자는 GPUBuffer를 GPUBindingResource로 직접 사용하여 바인딩을 위해 셰이더에 노출할 수 있습니다. 따라서 크기와 오프셋이 모두 기본값을 사용하는 경우 다른 바인딩 유형과 일관되며 GPUBufferBinding보다 더 간단하게 사용할 수 있습니다. 문제 419223794를 참고하세요.
const bindGroup = myDevice.createBindGroup({
layout: myPipeline.getBindGroupLayout(0),
entries: [
{ binding: 0, resource: mySampler },
{ binding: 1, resource: myTextureView },
{ binding: 2, resource: myExternalTexture },
{ binding: 3, resource: myBuffer }, // Same as { buffer: myBuffer }
{ binding: 4, resource: { buffer: myOtherBuffer, offset: 42 },
],
});
생성 시 매핑된 버퍼의 크기 요구사항 변경
이제 mappedAtCreation
를 true로 설정하여 버퍼를 만들면 size
이 4의 배수가 아닌 경우 RangeError가 발생합니다. 이전에는 GPUValidationError로만 시행되었습니다. 문제 405883445를 참고하세요.
myDevice.createBuffer({
mappedAtCreation: true,
size: 42,
usage: GPUBufferUsage.STORAGE,
});
// Throws RangeError
최신 GPU의 아키텍처 보고서
이제 NVIDIA 및 AMD의 최신 GPU는 GPUAdapterInfo에서 아키텍처를 각각 "blackwell"
및 "rdna4"
로 보고하고 GPU 아키텍처 목록에 몇 가지 사소한 추가사항이 있습니다. 문제 417202748을 참고하세요.
GPUAdapter isFallbackAdapter 속성 지원 중단
GPUAdapter isFallbackAdapter
속성은 지원 중단되었습니다. Chrome 136에서 도입된 GPUAdapterInfo isFallbackAdapter
속성으로 대체되었습니다. 지원 중단 인텐트를 참고하세요.
Dawn 업데이트
Emscripten은 CMake 빌드용 Dawn GLFW에서 지원되므로 개발자는 브라우저 API를 통해 최신 표준화된 webgpu.h를 구현하는 Emdawnwebgpu를 사용할 때 WebGPU 크로스 플랫폼 앱 코드를 더욱 간소화할 수 있습니다. 변경 dawn:242894를 참고하세요.
전체 가이드는 업데이트된 WebGPU로 앱 빌드 문서를 참고하세요.
이제 '원격' Emdawnwebgpu 포트가 패키지 출시에 포함됩니다. 이 포트의 스냅샷은 이제 외부에서 호스팅되는 포트를 지원하는 Emscripten 4.0.10 이상에 포함되어 있습니다. Emdawnwebgpu로 전환하는 작업은 이제 emcc -sUSE_WEBGPU
에서 emcc --use-port=emdawnwebgpu
로의 단일 플래그 변경으로 이루어집니다. Emscripten PR #24303, #24220, Dawn CL 243214를 참고하세요.
여기에는 주요 내용 중 일부만 다룹니다. 전체 커밋 목록을 확인하세요.
WebGPU의 새로운 기능
WebGPU의 새로운 기능 시리즈에서 다룬 모든 항목의 목록입니다.
Chrome 138
- 버퍼를 바인딩 리소스로 사용하는 방법의 약어
- 생성 시 매핑된 버퍼의 크기 요구사항 변경
- 최신 GPU의 아키텍처 보고서
- GPUAdapter isFallbackAdapter 속성 지원 중단
- Dawn 업데이트
Chrome 137
- externalTexture 결합에 TextureView 사용
- 오프셋 및 크기를 지정하지 않고 버퍼 복사
- 원자 포인터를 사용하는 WGSL workgroupUniformLoad
- GPUAdapterInfo powerPreference 속성
- GPURequestAdapterOptions compatibilityMode 속성 삭제
- Dawn 업데이트
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 업데이트