Compute offset as we go rather than once every pass().