i915g: software fallbacks?
If we wanted to get feature parity with i915c, then we need to tackle software fallbacks for when we can't compile the user's shaders. This would reduce the pressure on fixing things like NPOT 3D textures to get regression-free (right now i915c falls back on 3D all the time).
I think we'd need to create basically a shadow llvmpipe context, and when it's time to fall back then we create/bind a bunch of shadow llvmpipe CSO state to it, map the textures/VBOs into that context, pass the draw call along, and flush/copy back when we're done with the fallback.