Bug 1962738 Comment 4 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

(In reply to Erich Gubler [:ErichDonGubler] from comment #2)
> I wonder what Chrome does to manage its descriptor heap size? 🤔

When they run out of slots in the descriptor heap, they throw it away and allocate a bigger one. Every time they use a bind group, they have to check that the underlying descriptor heap still exists and if not allocate it again in the current heap.
(In reply to Erich Gubler [:ErichDonGubler] from comment #2)
> I wonder what Chrome does to manage its descriptor heap size? 🤔

When they run out of slots in the descriptor heap, they throw it away and allocate a bigger one. Every time they use a bind group, they have to check that the underlying descriptor heap still exists and if not allocate it again in the current heap.

> I also wonder if tactics like our test splitting wouldn't be a better fix for the OOMs with a higher descriptor limit? It seems like a priority conflict to make our defaults fit CI's limitations, but not applications already authored and in the wild.

We also want to keep the per-device overhead in check in general (not just for CI). There is room for increasing the limit, but I suspect that the real issue (beyond a couple of demos that allocate an unreasonable number of bind groups), is that we don't garbage collect when we get close to running out of bindings. If the JS runtime does not think that a GC is useful it won't happen, but it doesn't know about the memory cost of buffers/textures and the limits of the descriptor heaps on windows.

Back to Bug 1962738 Comment 4