Ok j'ai fait des recherches sur ce problème depuis quelques jours maintenant, permettez-moi de passer plus de ce que je sais jusqu'à présent qui m'amène à croire que cela peut être un problème avec NVidia pilote et pas de mon code.
Fondamentalement, mon jeu commence à bégayer après l'exécution de quelques secondes (images aléatoires prendre 70ms au lieu de 16ms, sur un regularish modèle). Cela se produit UNIQUEMENT si un paramètre appelé "Fileté Optimisation" est activé dans le panneau de configuration Nvidia (pilotes les plus récents, windows 10). Malheureusement, ce paramètre est activé par défaut et je préfère ne pas avoir d'avoir les gens à modifier leurs paramètres pour obtenir une expérience agréable.
Le jeu n'est pas CPU ou GPU intensif (2ms un cadre sans vsync sur). Ce n'est pas tout appel de fonctions openGL qui en ont besoin pour synchroniser les données, et il n'est pas en streaming les tampons ou de la lecture des données de la carte graphique ou quoi que ce soit. Le plus simple possible moteur de rendu.
Le problème était toujours là, il a juste commencé à devenir perceptible quand je l'ai ajouté dans fmod pour le son. fmod n'est pas la cause de cette (plus tard dans le post)
Essayez de déboguer le problème avec NVidia Nsight fait le problème. "Commencer à Recueillir des Données" instantanément provoque des interruptions de s'en aller. Pas de dés ici.
Dans le générateur de profils, beaucoup de temps cpu est passé en "nvoglv32.dll". Ce procédé ne génère si Fileté Optimisation est sur. Je soupçonne que c'est un problème de synchronisation, donc je debug avec visual studio Simultanéité de la Visionneuse.
Enquête sur ces blocs de temps CPU sur la carte nvidia fil, la première fonction nommée je peux obtenir dans leur pile des appels est "CreateToolhelp32Snapshot" suivie par un grand nombre de temps passé dans Thread32Next. J'ai remarqué Thread32Next dans le profiler quand on regarde les temps de calcul plus tôt si cela ne semble pas comme je suis sur la bonne voie.
De sorte qu'il ressemble périodiquement le pilote nvidia est d'attraper un aperçu de l'ensemble du processus pour une raison quelconque? Ce que pourrait être la raison, pourquoi est-il en train de faire cela, et comment puis-je l'arrêter?
Aussi ce qui explique pourquoi le problème a commencé à devenir perceptible une fois j'ai ajouté dans fmod, parce que son accaparement des info pour tous les processus fils, et fmod engendre beaucoup de discussions.
Toute aide? Est-ce juste un bug dans la nvidia pilote ou est-il quelque chose que je peux faire pour le réparer d'autres de dire aux gens de désactiver Fileté "Optimisation"?
edit 1: Le même problème se produit avec les actuels pilotes nvidia sur mon pc portable. Donc, je ne suis pas fou
edit 2: le même problème se produit sur la version 362 (version précédente) de nvidia pilote