2009-08-13 38 views
0

我們是一個小型開發團隊,他們與一些GLSL一起工作,這些GLSL對於較舊的顯卡來說可能太大而無法編譯。我們希望向用戶顯示一個明智的錯誤消息(而不是僅僅轉儲信息日誌或輸出一個通用的'此着色器不工作'類型的消息),當這種情況發生時基於錯誤的類型。打破GLSL着色器指令限制的錯誤消息是什麼?

問題是,ATI和nVidia對這些錯誤消息有不同的約定,我發現決定着色器的錯誤類型的唯一方法是解析由glGetShaderInfoLog生成的錯誤字符串。

鑑於此,是否有某處列出或有人知道ATI和nVidia卡的錯誤輸出是什麼樣子?還是有更好的方法來檢測何時超出指令限制?

回答

1

即使您現在知道錯誤消息的樣子,nVidia和ATI也沒有義務在他們的驅動程序的下一個版本中保持相同。除了調試目的外,他們基本上不能依賴任何東西。

我會查看供應商擴展是否能夠爲您提供更具體的診斷信息。

+0

http://petewarden.com/notes/archives/2005/06/fragment_progra_3.html取得了訣竅。 – 2009-08-17 16:03:07