GPUQueue
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
Giao diện GPUQueue của WebGPU API kiểm soát việc thực thi các lệnh đã mã hóa trên GPU.
Hàng đợi chính của thiết bị được truy cập thông qua thuộc tính GPUDevice.queue.
Thuộc tính phiên bản
Phương thức phiên bản
copyExternalImageToTexture()-
Sao chép một ảnh chụp từ ảnh nguồn, video, hoặc canvas vào một
GPUTextuređược chỉ định. onSubmittedWorkDone()-
Trả về một
Promisephân giải khi tất cả công việc được gửi lên GPU thông quaGPUQueuenày tại thời điểm phương thức được gọi đã được xử lý xong. submit()-
Lên lịch thực thi các command buffer được đại diện bởi một hoặc nhiều đối tượng
GPUCommandBuffertrên GPU. writeBuffer()-
Ghi một nguồn dữ liệu được cung cấp vào một
GPUBufferđược chỉ định. writeTexture()-
Ghi một nguồn dữ liệu được cung cấp vào một
GPUTextuređược chỉ định.
Ví dụ
Trong basic render demo, chúng ta định nghĩa dữ liệu đỉnh trong một Float32Array để dùng vẽ một tam giác:
const vertices = new Float32Array([
0.0, 0.6, 0, 1, 1, 0, 0, 1, -0.5, -0.6, 0, 1, 0, 1, 0, 1, 0.5, -0.6, 0, 1, 0,
0, 1, 1,
]);
Để sử dụng dữ liệu này trong render pipeline, ta cần đưa nó vào GPUBuffer. Đầu tiên tạo buffer:
const vertexBuffer = device.createBuffer({
size: vertices.byteLength, // make it big enough to store vertices in
usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
});
Để đưa dữ liệu vào buffer, ta có thể dùng hàm writeBuffer(), cho phép tác nhân người dùng xác định cách sao chép dữ liệu hiệu quả nhất:
device.queue.writeBuffer(vertexBuffer, 0, vertices, 0, vertices.length);
Sau đó, một tập hợp lệnh được mã hóa vào GPUCommandBuffer bằng phương thức GPUCommandEncoder.finish(). Command buffer được truyền vào hàng đợi thông qua lệnh gọi submit(), sẵn sàng để GPU xử lý.
device.queue.submit([commandEncoder.finish()]);
Note: Hãy nghiên cứu WebGPU samples để tìm thêm các ví dụ về hàng đợi.
Thông số kỹ thuật
| Specification |
|---|
| WebGPU> # gpuqueue> |