2014-01-17 136 views
3

有沒有辦法可以調試glsl着色器?包括像斷點和數據跟蹤有沒有一種方法可以調試GLSL着色器?

我看到了一些簡單的人,讓我看看着色器讓我的蔭程序,但沒有什麼我可以把破發點英寸

我需要檢查矩陣的值,只是拋出一個glFragColor將不起作用,因爲有太多的值要比較和檢查。

有沒有一個簡單的方法來做到這一點?除了我只寫下我認爲我可能擁有的價值,並在其他地方做我的數學。

當我試圖瞭解所有的OpenGL並知道如何瀏覽DirectX時,這真的很煩人。我可以看到爲什麼有些人在資源難以找到時會被OpenGL嚇跑。

+0

您定位的是哪個版本的OpenGL?忘記正常着色器中的「斷點」,GPU與CPU異步運行,並且沒有/暴露必要的中斷邏輯來實現斷點,而不使用某種特定於供應商的工具。此外,着色器並行(大量)運行。您可以強制着色器在GL4中阻塞內存障礙,並且您可能能夠使用Shader存儲緩衝區/圖像加載/存儲/轉換反饋/等調查輸出。但是,所有這些都需要特定版本的GL和一般對GLSL有透徹的理解。 –

+0

即時使用3.3及以上版本 –

+0

轉換反饋可能是您最好的選擇。曾經有一個工具'glslDevil'提供了很多你所描述的功能(除了運行時斷點),它是圍繞變換反饋建立的。該工具仍然存在,但尚未更新,很少適用於現代GL實現/着色器。變換反饋可以讓你從3.3中的頂點/幾何階段獲得輸出,如你所知,對於片段着色器調試,你可能將不得不依賴片段數據輸出。 –

回答

0

根據NVIDIA Nsight的開發更新,他們最近添加了GLSL調試功能(https://developer.nvidia.com/nsight-visual-studio-edition-3_0-new-features)。我會先看看那裏。此外glslDevil(http://www.vis.uni-stuttgart.de/glsldevil/index.html)看起來不錯。我自己也沒有嘗試過這兩種方案,所以不能提供關於質量的第一手經驗。 NVIDIA對CUDA調試的支持給我留下了深刻的印象,所以有很高的期望。

+0

glsl惡魔不會支持任何最近的發佈是loooog時間前。 –

相關問題