每次我使用集成显卡运行我的游戏时,它都能以60 FPS的速度运行。但是,当屏幕上有很多粒子时,它有时会滞后太多。
所以我切换到Nvidia GeForce 640M,但帧率保持在30而不是60.我尝试了Reach和HiDef,但他们都没有能解决帧率问题。我也试过
this.TargetElapsedTime = TimeSpan.FromMilliseconds(15);
但是FPS仍然是30岁。
也尝试了这个,但没有奏效:
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
graphics.PreparingDeviceSettings += new EventHandler<PreparingDeviceSettingsEventArgs>(graphics_PreparingDeviceSettings);
}
private void graphics_PreparingDeviceSettings(object sender, PreparingDeviceSettingsEventArgs e)
{
e.GraphicsDeviceInformation.PresentationParameters.MultiSampleCount = 4;
e.GraphicsDeviceInformation.PresentationParameters.PresentationInterval = PresentInterval.One;
}
如何修复Nvidia显卡的帧速率?
答案 0 :(得分:0)
您是否尝试过更改PresentationParameters.PresentationInterval
?
如果我没记错的话,如果你把它设置为PresentInterval.One
,它会“拉出所有停止点”并尝试匹配最大刷新率。
自从我修改了XNA后,已经有一段时间......
答案 1 :(得分:0)
可能与您的vsync设置有关。请尝试以下
graphics.SynchronizeWithVerticalRetrace = false;