Pour les API traditionnelles (API de type Buffer non-Command), la seule chose qui compte vraiment est le nombre de tampons que vous utilisez. Le pipeline graphique peut être pipeline, mais le pipeline n'est pas si profond que plusieurs trames entièrement séparées peuvent être en cours de traitement en même temps. Ainsi, la ou les files d'attente du GPU et le GPU lui-même ne traiteront généralement qu'une seule trame. Et comme il n'y a aucun moyen réel dans ces API de construire des données de commande pour plusieurs images entières, le nombre de trames que vous pouvez avoir en vol sera limité par le nombre de tampons réels que vous utilisez. Le nombre de trames de latence serait généralement le nombre de tampons + 1, représentant le cadre que vous construisez.Pour les API de mémoire tampon de commande, le nombre d'images est généralement basé sur la quantité de mémoire CPU dont vous disposez. Le nombre de tampons fournit un minimum, mais rien ne vous empêche techniquement de mettre en mémoire tampon des dizaines ou des centaines d'images à l'avance. En dehors de la mémoire du processeur.
Bien sûr, cela suppose que toutes vos données par image se trouvent dans des disjoncteurs. Si l'une de ces données est dans la mémoire accessible par le GPU (par exemple, des matrices de matrices et ainsi de suite), ou si vous avez besoin de changer les ensembles de descripteurs entre les trames, vous avez maintenant un autre ensemble de choses à tamponner. Cela impose une limitation supplémentaire sur la profondeur des choses.
Merci pour la réponse. Comment savoir combien de tampons j'utilise? (C'est le niveau de connaissance graphique que j'ai: P) Par exemple, dans mes projets, je ne fais qu'un seul framebuffer. – Kay
@ user7226419: En OpenGL, vous ne pouvez pas contrôler directement le nombre de tampons dans le framebuffer par défaut. Donc, cela n'a pas vraiment d'importance si vous pouviez compter ou non; vous ne pouvez rien faire avec cette information. Pour les API de commande-tampon, vous demandez un nombre spécifique de tampons. –
Bien qu'il ne soit pas capable de contrôler le nombre de tampons, y at-il généralement des tampons X? Ex: pour les implémentations OpenGLES 2.0 sur iOS, Android. – Kay