2013-01-03 39 views
0

每次使用集成顯卡運行我的遊戲時,它都能在60 FPS下正常工作。但是當屏幕上有很多微粒時,它有時候會滯後很多。XNA 4.0在GF 640M下運行速度爲30 fps,但在集成英特爾顯卡上運行良好

因此,我切換到Nvidia GeForce 640M,但framerate保持在30而不是60.我試了Reach和HiDef,但他們都不能解決framerate問題。我也試過

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

您是否試過更改PresentationParameters.PresentationInterval

如果我記得沒錯,如果將其設置爲PresentInterval.One,它會「拉出所有停靠點」並嘗試匹配最大刷新率。

已經有一段時間,因爲我用XNA壽修修補補......

+0

不,它對於獨立顯卡仍然有影響 – LibertyLocked

+0

對不起,這是否意味着您已嘗試更改顯示間隔? – JerKimball

+0

是的。我認爲這可能不是我的代碼的問題。 – LibertyLocked

0

可能有一些跟你的垂直同步設置。請嘗試以下方法

graphics.SynchronizeWithVerticalRetrace = false; 
+0

試過但仍然沒有工作。 – LibertyLocked

相關問題