You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dispatch() now takes a PipelineState argument and binds it before
issuing the dispatch, the same shape as RenderEncoder::drawInstanced().
Making the PSO a required parameter of dispatch() enforces at the
type level that callers cannot forget to bind a pipeline (an invalid
dispatch on every backend), and keeps the bind adjacent to the
command it applies to instead of relying on a separate "last bound"
state on the command list. It also hides per-API requirements behind
the encoder: on Metal the threadgroup-size lookup from PSO reflection
now lives inside dispatch() instead of leaking out as a
setThreadGroupSize() call every caller had to remember, letting us
drop the encoder-state helpers ThreadsPerGroup / setThreadGroupSize()
entirely. With the bind moved, the per-backend PSO bind in
createComputeCommands() (DX, VK, MTL) is removed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments