I'm not sure that it will, but this could miss L2 a lot, say every draw call.

I know this cache was my idea, but let's brainstorm ways to do this cache lookup when we call `createRenderState`.  With our current command design, it will be easy with MRT, but for multipass, we'll need to rethink the redesign a bit.

Same comment for the shader caches.