Note that the GL backend ensures that the data is contiguous. Why check it here? It costs more memory in case `copy=False`