1
Graphique / Re: [VSYNC] Framerate instable
« le: Juin 01, 2018, 02:30:20 pm »
J'ai essayé de ne pas fixer le VSYNC, ça ne pose pas de problèmes de framerate mais avoir une application qui tourne à 1200 FPS c'est ni sympa pour le CPU, ni sympa pour la carte graphique surtout quand c'est sur un PC portable ultra compacte.
Ce que j'ai fait du coup c'est de proposer une alternative permettant d'utiliser setFrameLimit au lieu du VSYNC, après effectivement en terme de fluidité visuelle c'est pas exceptionnel.
Comme sur mes recherches j'ai appris que des personnes désactivaient le VSYNC de leur carte graphique parce que ça provoquerait de l'input LAG (et que je fais un RPG et non un FPS donc inputlag = osef total) j'ai écrit une fonction d'équilibrage qui permet de compenser les instabilités de FPS pour que le jeu ait bien 60 tick par seconde (vu qu'à la base il était codé avec RPG Maker et que toute les animations sont basés sur des tick et non des temps :v).
En gros, si le jeu est lancé sur Chipset Graphique (qui va forcément avoir un problème avec SFML et sortir des frames de 30ms) le jeu exécute plus de tick et si jamais le VSYNC est désactivé par par l'utilisateur, le jeu exécute beaucoup moins de tick. (Si l'option --no-vsync est activée, le jeu essaie de stabiliser les ticks comme le framerate varie entre 58 et 62).
Enfin bref. Mon problème est plus ou moins résolu (ça n'empêche pas que les bugs présentés sont toujours existants, ils ne sont juste plus énormément visible du point de vue de l'utilisateur final).
Note :
J'ai testé avec le jeu qui utilisait les shader etc...
J'ai aussi testé avec une application qui affiche 10000 Sprites, le résultat est le même qu'une application vide.
Je te remercie de ta réponse
Ce que j'ai fait du coup c'est de proposer une alternative permettant d'utiliser setFrameLimit au lieu du VSYNC, après effectivement en terme de fluidité visuelle c'est pas exceptionnel.
Comme sur mes recherches j'ai appris que des personnes désactivaient le VSYNC de leur carte graphique parce que ça provoquerait de l'input LAG (et que je fais un RPG et non un FPS donc inputlag = osef total) j'ai écrit une fonction d'équilibrage qui permet de compenser les instabilités de FPS pour que le jeu ait bien 60 tick par seconde (vu qu'à la base il était codé avec RPG Maker et que toute les animations sont basés sur des tick et non des temps :v).
En gros, si le jeu est lancé sur Chipset Graphique (qui va forcément avoir un problème avec SFML et sortir des frames de 30ms) le jeu exécute plus de tick et si jamais le VSYNC est désactivé par par l'utilisateur, le jeu exécute beaucoup moins de tick. (Si l'option --no-vsync est activée, le jeu essaie de stabiliser les ticks comme le framerate varie entre 58 et 62).
Enfin bref. Mon problème est plus ou moins résolu (ça n'empêche pas que les bugs présentés sont toujours existants, ils ne sont juste plus énormément visible du point de vue de l'utilisateur final).
Note :
J'ai testé avec le jeu qui utilisait les shader etc...
J'ai aussi testé avec une application qui affiche 10000 Sprites, le résultat est le même qu'une application vide.
Je te remercie de ta réponse