Chrome은 이미 WebGPU를 지원하며 기본적으로 활성화됩니다.

WebGPU 크롬

수년간의 개발 끝에 Chrome 팀이 WebGPU를 출시합니다.

몇일 전에 Google 공개 한 발표를 통해 WebGPU 그래픽 API에 대한 기본 지원 및 WebGPU 셰이딩 언어(WGSL) Chrome 113 분기에서, 2월 XNUMX일 개봉 예정.

WebGPU를 모르시는 분들은 Vulkan, Metal 및 Direct3D 12와 유사한 API를 제공합니다. 렌더링 및 계산과 같은 GPU 측 작업을 수행하고 셰이더 언어를 사용하여 GPU 측 프로그램 작성 가능.

WebGPU 정보

개념적으로 WebGPU는 Vulkan 그래픽 API가 OpenGL과 다른 것과 같은 방식으로 WebGL과 다릅니다. 그러나 WebGPU는 특정 그래픽 API를 기반으로 하는 것이 아니라 Vulkan에서 발견되는 것과 동일한 저수준 프리미티브를 사용하는 범용 계층입니다. 금속 및 Direct3D. WebGPU 조직에 대한 낮은 수준의 제어 기능이 있는 JavaScript 애플리케이션을 제공합니다. 명령 처리 및 GPU로 전송, 관련 리소스, 메모리, 버퍼, 텍스처 개체 및 컴파일된 그래픽 셰이더 관리. 이 접근 방식을 사용하면 오버헤드를 줄이고 GPU 효율성을 높여 더 높은 성능의 그래픽 애플리케이션을 달성할 수 있습니다.

웹 GPU 웹용으로 복잡한 3D 프로젝트를 만들 수 있습니다. Vulkan, Metal 또는 Direct3D를 직접 사용하지만 특정 플랫폼에 연결되지 않은 독립 실행형 프로그램과 마찬가지로 작동합니다. 웹GPU 네이티브 그래픽 프로그램 포팅을 위한 추가 옵션도 제공합니다. WebAssembly에서 컴파일하여 웹 지원 양식으로 변환합니다. 3D 그래픽 외에도 WebGPU는 계산을 GPU 측으로 오프로드하고 셰이더를 실행하는 것과 관련된 가능성도 다룹니다.

WebGPU의 주요 기능 중 다음을 강조할 수 있습니다.

  • 자원의 분리 관리, 준비 작업 및 명령 전달 GPU로(WebGL에서는 하나의 객체가 한 번에 모든 것을 담당했습니다). 세 가지 별도의 컨텍스트가 제공됩니다. 텍스처 및 버퍼와 같은 리소스를 생성하기 위한 GPUDevice; 처리 및 계산 단계를 포함하여 개별 명령을 인코딩하는 GPUCommandEncoder GPU 실행 대기열에 전달할 GPUCommandBuffer.
    결과는 하나 이상의 캔버스 항목과 연결된 영역에서 렌더링되거나 출력 없이 렌더링될 수 있습니다(예: 계산 작업을 실행할 때). 스테이징을 사용하면 리소스 생성 및 프로비저닝 작업을 서로 다른 스레드에서 실행할 수 있는 서로 다른 컨트롤러로 쉽게 분리할 수 있습니다.
  • 상태 처리에 대한 다른 접근 방식입니다. WebGPU는 GPURenderPipeline 및 GPUComputePipeline이라는 두 개체를 제공하여 개발자가 미리 정의한 서로 다른 상태를 결합할 수 있도록 하여 브라우저가 셰이더 재컴파일과 같은 추가 작업에 리소스를 낭비하지 않도록 합니다. 지원되는 상태에는 셰이더, 정점 버퍼 및 특성 레이아웃, 고정 그룹 레이아웃, 블렌딩, 깊이 및 패턴, 렌더링 후 출력 형식이 포함됩니다.
  • Vulkan의 리소스 풀링 도구와 매우 유사한 바인딩 모델. 리소스를 그룹으로 그룹화하기 위해 WebGPU는 명령 기록 중에 셰이더에서 사용하기 위해 다른 유사한 개체에 바인딩할 수 있는 GPUBindGroup 개체를 제공합니다.
    이러한 그룹을 만들면 컨트롤러가 필요한 준비 작업을 미리 수행할 수 있고 브라우저가 그리기 호출 간에 리소스 바인딩을 훨씬 빠르게 전환할 수 있습니다. 리소스 바인딩의 레이아웃은 GPUBindGroupLayout 개체를 사용하여 미리 정의할 수 있습니다.

크롬 외에도 실험적인 WebGPU 지원은 Firefox에서 2020년 XNUMX월부터 테스트되었습니다. 그리고 2021년 XNUMX월부터 Safari에서. Firefox에서 WebGPU를 활성화하려면 about:config에서 dom.webgpu.enabled 및 gfx.webgpu.force-enabled 플래그를 설정해야 합니다.

Firefox 및 Safari에서 기본적으로 WebGPU를 활성화할 계획은 아직 없습니다. Firefox 및 Chrome용으로 개발된 WebGPU 구현은 WebGPU 지원을 애플리케이션에 통합하는 데 사용할 수 있는 Dawn(C++) 및 wgpu(Rust)와 같은 별도의 라이브러리로 제공됩니다.

또한 기본적으로 WebGL을 사용하는 인기 있는 JavaScript 라이브러리에 WebGPU 지원을 추가하는 작업이 진행 중입니다. 예를 들어 전체 WebGPU 지원은 Babylon.js에서 이미 선언되었고 Three.js, PlayCanvas 및 TensorFlow.js에서는 부분적으로 지원됩니다.

구현 WebGPU는 처음에는 ChromeOS, macOS 및 Windows용 빌드에서만 활성화됩니다. Linux 및 Android의 경우 WebGPU 지원이 나중에 활성화됩니다.

마지막으로, 그것에 대해 더 알고 싶다면 자세한 내용을 참조하십시오. 다음 링크에서.


코멘트를 남겨주세요

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

*

*

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