Fixed efficiency with viewport updates