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"]