2011-07-13 40 views
0

我一直在使用最新的SDL 1.3和OpenGL開發一款現在處於beta測試階段的遊戲。有些用戶在全屏時報告大幅減速 - 大約18fps - 在窗口模式下可以輕鬆運行200-300fps的東西。這些相同的用戶通常可以通過在窗口模式和全屏模式之間切換一次或兩次來「解決」問題。然後它甚至全屏運行全速。使用SDL在MacOS X上全屏顯示時OpenGL變慢?

我無法在我測試的任何系統上覆制它。而那些正在經歷經濟放緩的三名用戶正在運行不同的顯卡的一系列不同系統(所有這些系統都是英特爾雙核2系統),所以我懷疑這是一個驅動程序問題。

令人鼓舞的是,即使在SDL附帶的SDL非常小的testgl2演示中,也可以證明問題。如果您只是將演示修改爲全屏運行,那麼只要在「受影響」系統上運行該演示,它將在全屏時演示相同的減速。我很好奇,如果有人在這裏有MacOS X系統重複的問題。要看到,只要下載最新的SDL 1.3:

http://www.libsdl.org/tmp/SDL-1.3.zip

,並建立了SDL的框架,然後SDL測試,編譯gltest2演示。打開gltest2.c並輸入:

SDL_SetWindowFullscreen(state-> windows [0],true);

右側前/ *主要呈現循環*/

,如果你能複製系統上的問題[即它在全屏時運行在60fps以下 - 當你退出時,檢查你的控制檯輸出的幀速率),請在這裏發佈。特別是如果你認爲你可能有如何解決它的想法!我一直在努力解決這個問題,現在幾個星期了,並且在互聯網上搜索無濟於事。

+0

什麼版本的OS X受到影響?您是否嘗試過穩定版本的SDL,或嘗試確定早期的SDL 1.3快照是否受到影響? – user57368

+0

是的,我已經證實SDL的舊版快照(SDL-1.3.0-5080從今年1月28日起)顯示了同樣的問題。 –

+0

遇到此問題的一個用戶正在運行OS X 10.6.8。我會與其他兩位看看他們正在運行什麼。 –

回答

2

事實證明,這是SDL 1.3中的一個錯誤(使當前全屏OpenGL上下文重新流動緩慢,所以現在SDL緩存當前上下文以使SDL_GL_MakeCurrent()成爲無操作)。它現在已經修正,位於變更集2a152e7e82f2和7ed38a8ad304之間。