突然之間(儘管我可能錯過了一些自動更新),flip()
方法pyglet在我的電腦上慢了約100倍(我的腳本從大約20到0.2 FPS,分析表明,flip()
是責怪)。Pyglet在Windows上交換前後緩衝區的方法(`flip()`,用於OpenGL的wglSwapLayerBuffers的包裝)可能是100倍太慢
我不完全理解這一點,但由於我的操作系統是Windows 10,該方法似乎只是一種在python中運行wglSwapLayerBuffers
OpenGL雙緩衝循環的方式。其他一切似乎都有正常的速度,包括使用OpenGL的程序。這是以前發生的,並在重新啓動後自行修復,所以當時我沒有真正考慮它。
現在,重新啓動不會改變任何東西。我更新了我的GPU驅動程序,我嘗試禁用vsync,我查找可能使用大量內存和/或GPU內存的無關進程。我重新安裝了pyglet的最新穩定版本。
現在我不知道如何甚至開始排除此...
下面是我打印0.2秒,而不是20多歲的小例子。
from pyglet.gl import *
def timing(dt):
print(1/dt)
game_window = pyglet.window.Window(1,1)
if __name__ == '__main__':
pyglet.clock.schedule_interval(timing, 1/20.0)
pyglet.app.run()
(在pyglet.app.run()
,分析表明我它是flip()
方法,它基本上所有的時間)。我使用pyglet顯示經常更新的圖像,但不會增加GPU的使用(我還檢查了隨機程序(即Minecraft)的效果,以確保GPU監視工具使用的是作品,它確實會增加)。我認爲這排除了由於一些不相關的問題而導致計算能力不足的可能性。