Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Investigate support for WebGPU Immediates (push constants)

Đã đóng
#8,917 0 bình luận 2 reaction 1 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@mvaligursky đang làm issue này rồi.

Từ ngày 17/6/2026.

Đánh giá

Issue này chưa được đánh giá.

Mô tả

area: graphics enhancement
Feature

Investigate Immediates (a.k.a. push/root constants), shipped in Chrome 149/150.

Immediates let you pass small, frequently-changing data directly to a shader without creating a GPU buffer or bind group. The values are injected straight into the pass encoder, avoiding a memory write and a bind-group lookup per update.

API surface:

  • WGSL — declare via the immediate address space:
    var<immediate> color: vec4f;
    
  • JS — set before a draw call:
    passEncoder.setImmediates(/*rangeOffset=*/0, new Float32Array([1, 0, 0, 1]));
    passEncoder.draw(3);
    
  • Pipeline layout — layout: 'auto' infers immediateSize from the WGSL module; explicit layouts declare it.
  • Capability detection — navigator.gpu.wgslLanguageFeatures.has('immediate_address_space').
Benefit
  • Reduce CPU overhead for per-draw data that changes every draw call (object IDs, small per-draw transforms/params) by skipping uniform-buffer writes and bind-group rebinds.
  • A potential fast path for the kind of redundant state churn discussed in #7656 / #7880, where WebGPU's per-draw binding cost lags WebGL2.
Notes
  • Chrome 149/150 only at the moment; WebGPU-only with no WebGL2 equivalent, so it requires capability detection and a graceful fallback to uniform buffers.
  • Strictly for small values — large arrays, complex lighting structures, and big matrices should stay in uniform/storage buffers (push-constant size budget is small).
  • Requires plumbing the immediate address space through shader generation and the WebGPU pipeline-layout/draw path.
  • Ref: https://developer.chrome.com/blog/new-in-webgpu-149-150#immediates
Ngôn ngữ chính
JavaScript
Star
17.2k
Fork
2k
Merge trung bình
6 giờ 59 phút
Pull request đã merge (30 ngày)
228

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của playcanvas/engine

Tất cả issue của playcanvas/engine

Issue tương tự

Thêm issue về JavaScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.