Chrome sẽ có hỗ trợ WebGPU và sẽ được bật theo mặc định

WebGPU Chrome

Sau nhiều năm phát triển, nhóm Chrome phát hành WebGPU

Vài ngày trước Google ra mắt thông qua một công bố hỗ trợ mặc định cho API đồ họa WebGPU và Ngôn ngữ tạo bóng WebGPU (WGSL) trong nhánh Chrome 113, dự kiến ​​phát hành vào ngày 2 tháng XNUMX.

Đối với những người không biết về WebGPU, bạn nên biết rằng cung cấp API tương tự như Vulkan, Metal và Direct3D 12 để thực hiện các hoạt động phía GPU như kết xuất và tính toán, đồng thời cho phép sử dụng ngôn ngữ đổ bóng để viết các chương trình phía GPU.

Giới thiệu về WebGPU

Về mặt khái niệm, WebGPU khác với WebGL giống như cách API đồ họa Vulkan khác với OpenGL, nhưng WebGPU không dựa trên một API đồ họa cụ thể, thay vào đó, nó là một lớp có mục đích chung sử dụng cùng các nguyên hàm cấp thấp có trong Vulkan. Kim loại và Direct3D. WebGPU cung cấp cho các ứng dụng JavaScript khả năng kiểm soát cấp thấp đối với tổ chức, xử lý và truyền lệnh tới GPU, quản lý tài nguyên liên quan, bộ nhớ, bộ đệm, đối tượng kết cấu và trình tạo bóng đồ họa đã biên dịch. Cách tiếp cận này cho phép bạn đạt được các ứng dụng đồ họa có hiệu suất cao hơn bằng cách giảm chi phí hoạt động và tăng hiệu suất GPU.

WebGPU cho phép bạn tạo các dự án 3D phức tạp cho web hoạt động tốt như các chương trình độc lập sử dụng trực tiếp Vulkan, Metal hoặc Direct3D nhưng không bị ràng buộc với các nền tảng cụ thể. WebGPU cũng cung cấp các tùy chọn bổ sung để chuyển các chương trình đồ họa gốc thành biểu mẫu hỗ trợ web bằng cách biên dịch trong WebAssugging. Ngoài đồ họa 3D, WebGPU cũng bao gồm các khả năng liên quan đến việc giảm tải tính toán cho phía GPU và chạy trình đổ bóng.

Trong số các tính năng chính của WebGPU, chúng tôi có thể làm nổi bật các tính năng sau:

  • Quản lý riêng tài nguyên, công việc chuẩn bị và truyền lệnh đến GPU (trong WebGL, một đối tượng chịu trách nhiệm về mọi thứ cùng một lúc). Ba ngữ cảnh riêng biệt được cung cấp: GPUDevice để tạo các tài nguyên như kết cấu và bộ đệm; GPUCommandEncoder để mã hóa các lệnh riêng lẻ, bao gồm các giai đoạn xử lý và tính toán; GPUCommandBuffer để chuyển đến hàng đợi thực thi GPU.
    Kết quả có thể được hiển thị trong một khu vực được liên kết với một hoặc nhiều mục canvas hoặc được hiển thị mà không có đầu ra (ví dụ: khi chạy các tác vụ tính toán). Dàn dựng giúp dễ dàng phân tách các hoạt động tạo và cung cấp tài nguyên thành các bộ điều khiển khác nhau có thể chạy trên các luồng khác nhau.
  • Một cách tiếp cận khác để xử lý nhà nước. WebGPU cung cấp hai đối tượng, GPURenderPipeline và GPUComputePipeline, cho phép bạn kết hợp các trạng thái khác nhau do nhà phát triển xác định trước, giúp trình duyệt không lãng phí tài nguyên cho công việc bổ sung, chẳng hạn như biên dịch lại trình đổ bóng. Các trạng thái được hỗ trợ bao gồm: trình đổ bóng, bộ đệm đỉnh và bố cục thuộc tính, bố cục nhóm cố định, pha trộn, độ sâu và mẫu, định dạng đầu ra sau kết xuất.
  • Một mô hình ràng buộc, giống như các công cụ tổng hợp tài nguyên của Vulkan. Để nhóm các tài nguyên thành các nhóm, WebGPU cung cấp một đối tượng GPUBindGroup có thể được liên kết với các đối tượng tương tự khác để sử dụng trong các trình đổ bóng trong quá trình ghi lệnh.
    Việc tạo các nhóm như vậy cho phép bộ điều khiển thực hiện trước các hành động chuẩn bị cần thiết và cho phép trình duyệt chuyển đổi các liên kết tài nguyên giữa các cuộc gọi vẽ nhanh hơn nhiều. Bố cục của các liên kết tài nguyên có thể được xác định trước bằng cách sử dụng đối tượng GPUBindGroupLayout.

Ngoài Chrome, hỗ trợ WebGPU thử nghiệm đã được thử nghiệm từ tháng 2020 năm XNUMX trong Firefox và từ tháng 2021 năm XNUMX trên Safari. Để bật WebGPU trong Firefox, bạn phải đặt cờ dom.webgpu.enabled và gfx.webgpu.force-enabled trong about:config.

Chưa có kế hoạch nào để bật WebGPU theo mặc định trong Firefox và Safari. Việc triển khai WebGPU được phát triển cho Firefox và Chrome có sẵn dưới dạng các thư viện riêng biệt: Dawn (C++) và wgpu (Rust) mà bạn có thể sử dụng để tích hợp hỗ trợ WebGPU vào các ứng dụng của mình.

Cũng cần lưu ý rằng công việc đang được tiến hành để bổ sung hỗ trợ WebGPU cho các thư viện JavaScript phổ biến vốn sử dụng WebGL. Ví dụ: hỗ trợ WebGPU đầy đủ đã được khai báo trong Babylon.js và một phần trong Three.js , PlayCanvas và TensorFlow.js.

Việc thực hiện Ban đầu, WebGPU sẽ chỉ được bật trên các bản dựng dành cho ChromeOS, macOS và Windows, trong khi đối với Linux và Android, hỗ trợ WebGPU sẽ được kích hoạt sau.

Cuối cùng, nếu bạn quan tâm có thể biết thêm về nó, bạn có thể tham khảo chi tiết Trong liên kết sau đây.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.