Key identifying a scene-batch bind group by its exact buffer bindings: the shared batch uniform allocation, the geometry slab chunk, and the record span. More...
#include "donner/svg/renderer/geode/GeodeDevice.h"
Friends | |
| bool | operator== (const SceneBatchBindGroupKey &a, const SceneBatchBindGroupKey &b)=default |
| Compare all members for value equality. | |
| bool | operator< (const SceneBatchBindGroupKey &a, const SceneBatchBindGroupKey &b) |
| Order binding keys lexicographically for cache lookup. | |
Key identifying a scene-batch bind group by its exact buffer bindings: the shared batch uniform allocation, the geometry slab chunk, and the record span.
The dummy texture/sampler bindings are device-owned singletons, so they never contribute to the key.
Scene batches bind pooled arena and slab buffers whose identities and offsets are stable across steady-state frames, so a cached bind group keyed this way is reusable frame over frame (keeping the per-frame bind-group create count flat; the GeodePerf ceilings pin this).
Buffers are identified by the process-unique ids handed out by AllocateBufferId(), rather than a backend handle address that may be recycled when a document releases its slab. A device outlives the documents drawn on it, so an address reused by another document must never retrieve the previous document's cached bind group.
|
friend |
Order binding keys lexicographically for cache lookup.
| a | Value to compare. |
| b | Value to compare. |
|
friend |
Compare all members for value equality.
| a | Value to compare. |
| b | Value to compare. |