[問題] OpenGL 快速交換frame會掉frame 求解

作者: asdiii (好想飛)   2021-08-11 21:20:08
開發平台(Platform): (Ex: Win10, Linux, ...)
Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Visual Studio 2019
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
OpenGL
問題(Question):
1. 餵入兩張圖片 使畫面配合顯示器輸出頻率交換但不知為何約 100 frame左右
會掉 1frame,但程式依然執行想問是我哪裡有問題,導致他沒有辦法穩定?
2. 根據我的理解對framebuffer object進行紋理依附,因為我想先把圖塞到GPU
的記憶體中,我猜想這樣會讓兩張圖片交換速度更快更順暢,而且看顯示卡
記憶體有被我占用 但我還是不確定我是否是圖從CPU送出還是GPU先存好才
交換 請問有方向或者方法讓我進一步確認嗎?
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
https://hackmd.io/@kkbox36930/H1ff2BZxF
補充說明(Supplement):
對這個opengl有點生手 感謝大家的幫忙
程式碼放在markdown中
作者: Schottky (順風相送)   2021-08-12 05:49:00
最近比較忙,星期日再來看你的螢幕更新頻率是 60Hz 還是 120Hz?
作者: pponywong (pony)   2021-08-12 08:43:00
可能跟你的程式沒關係 你要查一下glut跟window display不知道glut跟windows vsync怎麼配合的另外是不是用GPU還是PC記憶體 要看driver怎麼寫電腦獨顯你用texture還是framebuffer都是用GPU memory
作者: Killercat (殺人貓™)   2021-08-12 13:32:00
不是很確定 但是看看是不是Triple Buffer搞的鬼https://tinyurl.com/y5a24bar 關閉試試看 預設是開的
作者: paintlife08   2021-08-13 10:27:00
會不會是 glutTimerFunc()那一行? 它吃unsigned int.16.67 會變成 16.查了一下,glutTimerFunc()好像也不保證一定會在設定的值更新.

Links booklink

Contact Us: admin [ a t ] ucptt.com