2013-03-06 88 views
0

即時渲染時,我用這都很好,但是進展緩慢顯示列表,所以我切換到VBO,從此以後每次即時渲染與VBO的東西,有奇怪的聲音並從我的電腦發出嘟嘟聲(音量非常低)。聽起來像從我認爲的GPU。奇怪的聲音和蜂鳴使用C#和Opentk呈現體素與VBO

  • 當im切換回顯示列表或直接呼叫時,嗶聲停止。
+0

這是有一個狂歡下來塔爾電子! – user1095108 2013-03-06 14:12:22

+0

我不知道爲什麼它被選中(我反正+1),但它實際上是一個有效的問題。我自己也遇到了同樣的問題 - 我的筆記本電腦剛開始OpenGL過程就開始發出嗶嗶聲。它一點都不響亮,但因爲我無法阻止它,所以非常煩人。我讀過某處將FPS限制爲60的幫助,但不要相信 - 聲音稍低,聽不清,但仍然存在。任何明確的解決方案,任何人? – 2013-04-05 09:56:53

回答

2

你所聽到的是開關穩壓器,它努力保持GPU電源穩定。每次向GPU發送命令時,都會增加電源需求。採用即時模式,高需求和低需求之間的佔空比較低,因此可以通過去耦電容和濾波電容來滿足短時間的功率衝擊。顯示列表保持電源需求,使電壓調節器不得不切換,然後保持「穩定」的高功率輸出,直到列表完成。

現在,當你在渲染維也納各組織的,你可以聽到監管部門的工作,這意味着你使用的GPU的性能約50%,而監管者功率需求之間不斷變化的。您的最佳行動方案是增加使用單個glDraw ...調用處理的基元數量。現在,GPU在下一次glDraw ...進入之前完成繪圖,所以你有點捱餓。

+0

+1有趣的解釋。但是,我已經在每幀顯示〜1M個三角形 - 您確定它是關於捱餓GPU嗎? (順便說一句,我用平面着色,所以片段着色器大多無關) – 2013-04-05 10:05:54

+0

@PiotrJustyna:現代GPU在同一circurity執行所有着色器階段。你也聽不到正在處理的單個三角形/碎片,但是GPU上的負載發生變化的間歇時間間隔。這可能是因爲GPU正在等待V-Sync,或者因爲CPU無法跟上它的饋送或處理數據或類似的情況。每幀1M個三角形也沒有那麼多。在60赫茲幀率下,只有60M三角形,而現代GPU可以輕鬆處理多達500M三角形每幀,如果使用最佳。 – datenwolf 2013-04-05 11:00:08

+0

有趣。 「* circurity *」是什麼意思?它發生在沒有V-Sync的情況下,CPU肯定會保持運行狀態,因爲它只運行給GPU提供不變頂點的主循環。我觀察到的唯一情況是,我使用的三角形越多,噪音越低 - 它表示頻率較低,但頻率恰好是? – 2013-04-05 11:31:32