WebGPU 지원은 Firefox의 야간 버전에 제공됩니다.

WebGPU 도움말 사양 통합에 대한 정보 공개 Firefox 야간 빌드에서 3D 그래픽 처리를위한 프로그래밍 인터페이스 제공 Vulkan API, metal 및 Direct3D 12와 개념적으로 유사한 GPU 측 컴퓨팅. 사양은 W3C 조직이 만든 워킹 그룹의 Mozilla, Google, Apple, Microsoft 및 커뮤니티 대표가 개발하고 있습니다.

WebGPU의 주요 목표는 안전하고 편리하며 휴대 가능한 고성능 소프트웨어 인터페이스를 만드는 것입니다. Windows의 Direct3D 3, macOS의 Metal, Linux의 Vulkan과 같은 최신 시스템 그래픽 API에서 제공하는 12D 그래픽 기술 및 기능을 사용하여 웹 플랫폼에서 사용할 수 있습니다.

개념적으로 WebGPU는 Vulkan이 OpenGL과 다른 점에서 WebGL과 다릅니다. 특정 그래픽 API를 기반으로하지 않고 일반적으로 Vulkan, Metal 및 Direct3D에서 사용할 수있는 동일한 저수준 기본 요소를 사용하는 범용 계층입니다.

Firefox에서 "dom.webgpu.enabled"설정은 WebGPU를 활성화하기 위해 제공됩니다. 정보 : config. CanvasContext를 렌더링하는 것 외에도 WebRender 구성 시스템 (about : config의 "gfx.webrender.all")을 포함해야합니다.

WebGPU 구현은 Rust로 작성된 wgpu 프로젝트 코드를 기반으로하며 Linux, Android, Windows 및 macOS의 DX12, Vulkan 및 Metal API 위에서 작동 할 수 있습니다 (DX11 및 OpenGL ES 3.0 지원도 개발 중입니다).

WebGPU 정보

웹 GPU 낮은 수준의 제어를위한 도구와 함께 JavaScript 애플리케이션을 제공합니다. 조직에 대해 GPU 로의 명령 처리 및 전송, 관련 리소스, 메모리, 버퍼, 텍스처 개체 및 컴파일 된 그래픽 셰이더를 관리합니다. 이 접근 방식은 고성능 그래픽 애플리케이션 가능 오버 헤드를 줄이고 GPU 작업의 효율성을 높입니다.

웹 GPU 웹을위한 완전하고 복잡한 3D 프로젝트를 만들 수 있습니다. Vulkan, Metal 또는 Direct3D와 직접 통신하는 독립 실행 형 프로그램보다 성능이 나쁘지는 않지만 특정 플랫폼에 묶여 있지는 않습니다.

또한 네이티브 그래픽 프로그램을 이식하여 추가 기능을 제공합니다. 웹 기반 기술을 기반으로 기능 할 수있는 형태로 WebAssembly 기술을 사용하여.

3D 그래픽 외에도 WebGPU는 또한 GPU 옆의 컴퓨팅 제거와 관련된 가능성을 다룹니다. 셰이더 개발 지원. 셰이더는 WebGPU 셰이더 언어로 만들거나 SPIR-V 중간 형식으로 지정한 다음 현재 드라이버에서 지원하는 셰이더 언어로 번역 할 수 있습니다.

웹 GPU 별도의 자원 관리, 준비 작업 및 명령 전송을 사용합니다. (WebGL에서는 하나의 객체가 한 번에 모든 것을 담당했습니다). 세 가지 개별 컨텍스트가 제공됩니다. 텍스처 및 버퍼와 같은 리소스를 생성하기위한 GPUDevice; 렌더링 및 계산 단계를 포함하여 개별 명령을 인코딩하는 GPUCommandEncoder GPU에서 실행하기 위해 대기 할 GPUCommandBuffer.

WebGPU와 WebGL의 두 번째 차이점은 상태 처리에 대한 다른 접근 방식입니다. WebGPU에는 GPURenderPipeline 및 GPUComputePipeline이라는 두 가지 개체가 제안되어 있으며, 개발자가 미리 정의한 여러 상태를 결합 할 수 있으므로 브라우저가 셰이더 재 컴파일과 같은 추가 작업에 리소스를 낭비하지 않도록 할 수 있습니다. 지원되는 상태에는 셰이더, 버텍스 버퍼 및 속성 레이아웃, 연결된 그룹 레이아웃, 블렌딩, 깊이 및 패턴, 렌더링 후 출력 형식이 포함됩니다.

WebGPU의 세 번째 기능은 바인딩 모델입니다., 많은 측면에서 Vulkan에있는 리소스 풀링 수단과 유사합니다. 리소스를 그룹으로 그룹화하기 위해 WebGPU는 명령을 입력하여 셰이더에서 사용하기 위해 다른 유사한 개체와 연결할 수있는 GPUBindGroup 개체를 제공합니다.

이러한 그룹을 생성하면 드라이버가 필요한 준비 작업을 미리 수행 할 수 있으며 브라우저를 통해 풀 호출간에 리소스 링크를 훨씬 빠르게 전환 할 수 있습니다.

출처 : https://hacks.mozilla.org/


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.