The canonical cache key for a resolved sampler state: every field, in a fixed
order, separated by a character no field value contains.
ResolvedSamplerState is small enough that the argument for a string
key looks pedantic, and it is the same argument pipelineKey makes and for
the same §33 reason: a Map keyed by an object misses on structural equality
and iterates in allocation order. Total coverage is what makes a hit mean
something — a field left out of the key is a sampler reused with the wrong
state, which draws a blurred atlas instead of failing.
The canonical cache key for a resolved sampler state: every field, in a fixed order, separated by a character no field value contains.
ResolvedSamplerState is small enough that the argument for a string key looks pedantic, and it is the same argument
pipelineKeymakes and for the same §33 reason: aMapkeyed by an object misses on structural equality and iterates in allocation order. Total coverage is what makes a hit mean something — a field left out of the key is a sampler reused with the wrong state, which draws a blurred atlas instead of failing.