꼭짓점 버퍼 설정 해제
GPURenderPassEncoder
또는 GPURenderBundleEncoder
에서 setVertexBuffer()
에 GPUBuffer
이 아닌 null
을 전달하면 지정된 슬롯에서 이전에 설정된 꼭짓점 버퍼를 설정 해제할 수 있습니다. 문제 dawn:1675를 참고하세요.
// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);
바인드 그룹 설정 해제
GPURenderPassEncoder
또는 GPURenderBundleEncoder
에서 GPUBindGroup
대신 setBindGroup()
에 null
를 전달하면 지정된 슬롯에서 이전에 설정된 바인드 그룹을 설정 해제할 수 있습니다. 문제 dawn:1675를 참고하세요.
// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);
// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);
기기를 분실한 경우 비동기 파이프라인 생성에서 오류 무시
GPUDevice
의 createComputePipelineAsync()
및 createRenderPipelineAsync()
메서드는 파이프라인 생성이 완료되면 확인되는 프로미스를 반환합니다. 이제부터는 분실된 기기가 최대한 작동하는 것처럼 보이도록 GPUDevice
가 lost
인 경우 비동기 파이프라인 생성의 오류가 무시됩니다. dawn issue:1874를 참고하세요.
SPIR-V 셰이더 모듈 생성 업데이트
이제 createShaderModule()
로 SPIR-V 셰이더 모듈을 만들면 SPIR-V가 WebGPU 사양에 포함되지 않으므로 '안전하지 않은 WebGPU 지원' 플래그를 사용하여 Chrome을 실행하지 않는 한 TypeError가 발생합니다. 이 변경 전에는 SPIR-V를 사용하면 대신 GPUInternalError가 생성되었습니다.
change chromium:4711911을 참고하세요.
개발자 환경 개선
읽기-쓰기 스토리지 버퍼 및 쓰기 전용 스토리지 텍스처 바인딩을 위해 꼭짓점 셰이더의 바인드 그룹 레이아웃 바인딩에 대한 유효성 검사 오류 메시지가 개선되었습니다. dawn:1883 문제를 참고하세요.
자동으로 생성된 레이아웃으로 파이프라인 캐싱
이제 createRenderPipeline({ layout: "auto" })
로 생성된 파이프라인이 Chrome의 캐싱 메커니즘을 활용합니다. 즉, 이러한 파이프라인이 더 효율적으로 생성되고 메모리를 덜 사용합니다. dawn:1933 문제를 참고하세요.
새벽 업데이트
이제 wgpu::RequestAdapterOptionsBackendType
가 wgpu::RequestAdapterOptions
의 일부가 되어 애플리케이션이 어댑터를 가져올 때 특정 백엔드를 더 쉽게 요청할 수 있습니다. 다음 예시와 dawn:1875 문제를 참고하세요.
wgpu::RequestAdapterOptions options = {
.backendType = wgpu::BackendType::D3D12};
// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);
Node.js를 위해 몇 가지 추가 메서드가 구현되었습니다. change dawn:142465를 참고하세요.
webgpu.h C API가 불리언 값의 유형을 stdbool
에서 WGPUBool
(uint32_t
)로 변경했습니다. 이 변경사항은 API에 C 및 C++의 동등한 ABI가 있는지 확인하기 위해 적용되었습니다.
여기에서는 몇 가지 주요 사항만 다룹니다. 전체 커밋 목록을 확인하세요.
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()
이 호출되는 경우 동영상 재생을 원활하게 유지- 사양 준수
- 개발자 환경 개선
- 새벽 업데이트