GPUBuffer: usage property

Khả dụng hạn chế

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.

Thuộc tính chỉ đọc usage của giao diện GPUBuffer chứa bitwise flags đại diện cho các cách sử dụng cho phép của GPUBuffer.

usage được đặt qua thuộc tính usage trong đối tượng descriptor được truyền vào lệnh gọi GPUDevice.createBuffer() gốc.

Giá trị

Các cờ bitwise đại diện cho các cách sử dụng ban đầu được đặt khi GPUBuffer được tạo lần đầu tiên. Số được trả về là tổng các giá trị thập phân đại diện cho các cờ khác nhau, như được thấy trong bảng dưới đây.

Cờ bitwise Mô tả cách sử dụng Hex tương đương Thập phân tương đương
GPUBufferUsage.COPY_SRC Buffer có thể được sử dụng làm nguồn của thao tác sao chép, ví dụ đối số nguồn của lệnh gọi copyBufferToBuffer(). 0x0004 4
GPUBufferUsage.COPY_DST Buffer có thể được sử dụng làm đích của thao tác sao chép/ghi, ví dụ đối số đích của lệnh gọi copyTextureToBuffer(). 0x0008 8
GPUBufferUsage.INDEX Buffer có thể được sử dụng làm buffer chỉ mục, ví dụ đối số buffer được truyền vào setIndexBuffer(). 0x0010 16
GPUBufferUsage.INDIRECT Buffer có thể được sử dụng để lưu trữ các đối số lệnh gián tiếp, ví dụ đối số indirectBuffer của lệnh gọi drawIndirect() hoặc dispatchWorkgroupsIndirect(). 0x0100 256
GPUBufferUsage.MAP_READ Buffer có thể được ánh xạ để đọc, ví dụ khi gọi mapAsync() với modeGPUMapMode.READ. Cờ này chỉ có thể kết hợp với GPUBufferUsage.COPY_DST. 0x0001 1
GPUBufferUsage.MAP_WRITE Buffer có thể được ánh xạ để ghi, ví dụ khi gọi mapAsync() với modeGPUMapMode.WRITE. Cờ này chỉ có thể kết hợp với GPUBufferUsage.COPY_SRC. 0x0002 2
GPUBufferUsage.QUERY_RESOLVE Buffer có thể được sử dụng để ghi lại kết quả truy vấn, ví dụ đối số đích của lệnh gọi resolveQuerySet(). 0x0200 512
GPUBufferUsage.STORAGE Buffer có thể được sử dụng làm buffer lưu trữ, ví dụ như tài nguyên trong mục nhóm ràng buộc khi tạo GPUBindGroup (qua createBindGroup()), tuân thủ mục GPUBindGroupLayout với kiểu bố cục ràng buộc buffer là "storage" hoặc "read-only-storage". 0x0080 128
GPUBufferUsage.UNIFORM Buffer có thể được sử dụng làm buffer đồng nhất, ví dụ như tài nguyên trong mục nhóm ràng buộc khi tạo GPUBindGroup (qua createBindGroup()), tuân thủ mục GPUBindGroupLayout với kiểu bố cục ràng buộc buffer là "uniform". 0x0040 64
GPUBufferUsage.VERTEX Buffer có thể được sử dụng làm buffer đỉnh, ví dụ đối số buffer được truyền vào setVertexBuffer(). 0x0020 32

Ví dụ

js
const output = device.createBuffer({
  size: BUFFER_SIZE,
  usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC,
});

console.log(output.usage); // 132

const stagingBuffer = device.createBuffer({
  size: BUFFER_SIZE,
  usage: GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST,
});

console.log(stagingBuffer.usage); // 9

Thông số kỹ thuật

Thông số kỹ thuật
WebGPU
# dom-gpubuffer-usage

Tương thích trình duyệt

Xem thêm