Disposes pooled buffers (largest-first across all three type pools)
until pooledBytes <= ctx.maxPoolBytes. Does NOT touch active buffers
(they are in use and cannot be disposed).
NOTE: ctx.maxPoolBytes is the pooled-disposal target, which the
caller sets to liveBudget - activeBytes so that TOTAL resident bytes
(active + pooled) stay under the single VRAM budget. When active bytes
already meet/exceed the budget the caller passes 0 here, so every pooled
buffer is reclaimed.
Byte-budget evictor for GPUBufferPool.
Disposes pooled buffers (largest-first across all three type pools) until
pooledBytes <= ctx.maxPoolBytes. Does NOT touch active buffers (they are in use and cannot be disposed).NOTE:
ctx.maxPoolBytesis the pooled-disposal target, which the caller sets toliveBudget - activeBytesso that TOTAL resident bytes (active + pooled) stay under the single VRAM budget. When active bytes already meet/exceed the budget the caller passes 0 here, so every pooled buffer is reclaimed.