Hỗ trợ WebGPU đến với các phiên bản Firefox hàng đêm

Thông tin về việc tích hợp đặc tả trợ giúp WebGPU đã được phát hành trong các bản dựng hàng đêm của Firefox, hiện là cung cấp giao diện lập trình để xử lý đồ họa 3D và tính toán ở phía GPU, về mặt khái niệm tương tự như API Vulkan, metal và Direct3D 12. Thông số kỹ thuật đang được phát triển bởi Mozilla, Google, Apple, Microsoft và các đại diện cộng đồng trong một nhóm làm việc do tổ chức W3C tạo ra.

Mục tiêu chính của WebGPU là tạo ra một giao diện phần mềm an toàn, thuận tiện, di động và hiệu suất cao để sử dụng trên nền tảng web với công nghệ đồ họa 3D và các khả năng được cung cấp bởi các API đồ họa hệ thống hiện đại như Direct3D 12 trên Windows, Metal trên macOS và Vulkan trên Linux.

Về mặt khái niệm, WebGPU khác với WebGL giống như cách Vulkan khác với OpenGL và nó không dựa trên một API đồ họa cụ thể, nói chung nó là một lớp phổ quát, sử dụng cùng các nguyên thủy cấp thấp có sẵn trong Vulkan, Metal và Direct3D.

Trong Firefox, cài đặt "dom.webgpu.enabled" được cung cấp để kích hoạt WebGPU trong about: config. Ngoài việc hiển thị CanvasContext, nó cũng yêu cầu bao gồm hệ thống thành phần WebRender ("gfx.webrender.all" trong about: config).

Việc triển khai WebGPU dựa trên mã dự án wgpu được viết bằng Rust và có thể hoạt động trên các API DX12, Vulkan và Metal trên Linux, Android, Windows và macOS (hỗ trợ DX11 và OpenGL ES 3.0 cũng đang được phát triển).

Giới thiệu về WebGPU

WebGPU cung cấp các ứng dụng JavaScript với các công cụ để kiểm soát cấp thấp hơn về tổ chức, xử lý và truyền các 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 sẽ cho phép các ứng dụng đồ họa hiệu suất cao hơn bằng cách giảm chi phí và tăng hiệu quả làm việc với GPU.

WebGPU giúp bạn có thể tạo các dự án 3D phức tạp hoàn chỉnh cho web không hoạt động kém hơn các chương trình độc lập giao tiếp trực tiếp với Vulkan, Metal hoặc Direct3D, nhưng không bị ràng buộc với các nền tảng cụ thể.

cũng cung cấp các khả năng bổ sung bằng cách chuyển các chương trình đồ họa gốc sang một biểu mẫu có thể hoạt động dựa trên công nghệ dựa trên web bằng cách sử dụng công nghệ WebAssembly.

Ngoài đồ họa 3D, WebGPU cũng bao gồm các khả năng liên quan đến việc loại bỏ tính toán bên cạnh GPU và hỗ trợ phát triển shader. Trình tạo bóng có thể được tạo bằng ngôn ngữ trình tạo bóng WebGPU hoặc được chỉ định ở định dạng trung gian SPIR-V, sau đó được dịch sang ngôn ngữ trình tạo bóng được hỗ trợ bởi trình điều khiển hiện tại.

WebGPU sử dụng quản lý tài nguyên riêng biệt, công việc chuẩn bị và chuyển lệnh cho 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 bối cảnh riêng biệt được cung cấp: GPUDevice để tạo 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 kết xuất và tính toán; GPUCommandBuffer để xếp hàng thực thi trên GPU.

Sự khác biệt thứ hai giữa WebGPU và WebGL là một cách tiếp cận khác nhau để xử lý các trạng thái. Hai đối tượng được đề xuất trong WebGPU: GPURenderPipeline và GPUComputePipeline, cho phép kết hợp một số trạng thái do nhà phát triển xác định trước, cho phép trình duyệt không lãng phí tài nguyên vào các công việc bổ sung, chẳng hạn như biên dịch lại bộ tạo bóng. Các trạng thái được hỗ trợ bao gồm: đổ bóng, bộ đệm đỉnh và bố cục thuộc tính, bố cục nhóm đính kèm, pha trộn, độ sâu và các mẫu, định dạng đầu ra sau khi kết xuất.

Tính năng thứ ba của WebGPU là mô hình liên kết, theo nhiều khía cạnh giống như phương tiện tổng hợp tài nguyên có trong 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 mà bằng cách gõ lệnh, có thể được liên kết với các đối tượng tương tự khác để sử dụng trong trình tạo bóng.

Việc tạo ra các nhóm như vậy cho phép người lái xe thực hiện các hành động chuẩn bị cần thiết trước và trình duyệt cho phép anh ta chuyển các liên kết tài nguyên giữa các cuộc gọi kéo nhanh hơn nhiều.

Fuente: https://hacks.mozilla.org/


Để 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.