actually use cached context, and don't log every frame.