This series contains a variety of commits all with the objective of reducing CPU overhead. Looking at perf traces of some rapid bind-and-draw benchmarks, emitting binding tables and push constants is the hottest of hot-paths. It's a bit of a long and winding path but the final patch is the kingpin. With that we can avoid re-emitting binding tables and push constants in several cases when there is a pipeline change that doesn't change everything. For instance, if someone binds a pipeline with the same shaders but different depth/stencil settings, we can now detect that nothing has changed in the bind map or push constant setup and just go ahead with the pipeline.