flowchart LR
s["D3D12 sampler"] --> rec["descriptor record:
MinLOD, MipLODBias"]
s --> key["Metal key: filter, address,
anisotropy, comparison, border,
reduction, MaxLOD"]
rec --> sh["translated shader
applies them per sample"]
key --> cache["sampler cache: one MTLSamplerState
per distinct key"]
cache --> fit["2048 D3D12 samplers fit in
Metal's budget of 1024"]