Je traduis une réponse claire trouvée sur reddit:
Si le paramètre data
de la fonction n’est pas un buffer object, alors glTextSubImage2D
doit bloquer pendant que le pilote OpenGL copie les données dans la mémoire du GPU (à la manière d’un memcpy
). C'est nécessaire car OpenGL n’a aucun moyen de vous forcer à conserver les données en mémoire en attendant que la fonction se termine.
Les buffer objects permettent un transfert asynchrone (à la discrétion du pilote), car le pilote peut les conserver jusqu’à ce que les données soient transférés.
Réponse claire et efficace! :hehe: