Huge commit again - break Linux build a bit, fix the mysterious disappearing screen on 2d input, and get 3d cores to render (mostly) properly.