Eu criei um FpsCounter
DrawableGameComponent
(vinculado ao código, é longo) . Funciona muito bem: exibe 60,0 fps normalmente. Se eu desacelerar artificialmente o ciclo do jogo, ele cai.
Meu 'jogo' no momento é um único sprite controlado por teclado, por isso deve ser possível renderizar com mais frequência de 60 quadros por segundo.
Imaginei que desligar a sincronização vertical aumentaria o limite de FPS:
public Game1()
{
_graphics = new GraphicsDeviceManager(this)
{
PreferredBackBufferWidth = WindowWidth,
PreferredBackBufferHeight = WindowHeight,
SynchronizeWithVerticalRetrace = false,
};
_graphics.ApplyChanges();
Content.RootDirectory = "Content";
}
No entanto, mesmo que o código acima pareça desativar o vsync, não parece ser. Há algo errado com meu construtor, ou talvez meus cálculos de FPS? Ou há algo mais que pode estar limitando a contagem de quadros?
fonte
Depende das configurações da sua placa de vídeo (no Windows). Eu tive o mesmo problema e descobri que minha placa nVidia possui suas próprias configurações vsync no painel de controle, onde o vsync pode ser definido no modo forçado (as configurações do aplicativo serão ignoradas neste caso).
fonte