PSO Caching

Modern 3D APIs use pipeline state objects to reflect the state of the pipeline at a shader invocation. Managing these is a core part of reducing hitches in gameplay. I hadn't intended to make this a series, but it's unsolved, and I'm in a position to discuss how I've tried to deal with it.