2012-05-31 46 views
2

我有一個片段着色器,超過一些輸入數據和舊硬件迭代,我得到:哪個版本的GLSL支持分片着色器中的索引?

錯誤C6013:只有texcoords的陣列可以在此配置文件進行索引,並且只用一個循環變量

Googling around我看到很多東西,比如「XX之前的硬件不支持片段着色器上的索引」。

我在想這個行爲是否在GLSL版本中是標準化的,例如「glsl version pior to XX does not support indexing on fragment shader」。如果是這樣,哪個版本開始支持它。

+0

索引,究竟是什麼? –

回答

1

這個特殊的錯誤來自nv4x(GeForce 6/7卡)的Nvidia編譯器,並且是硬件的限制。任何解決方法都需要完全禁用硬件並使用純軟件渲染。

GLSL的所有版本都支持使用該語言進行索引編制 - 此錯誤屬於超出硬件資源限制的全部範圍。

+0

你對如何發現,如果我的硬件能夠在片段着色器索引任何sugestion? –

+1

嘗試編譯着色器並檢查是否有錯誤。如果有,硬件不支持它... –

2

什麼是您的確切硬件?

老ATI卡(低於X1600)及其驅動程序有這樣的問題。當然,英特爾的最新卡片也不會因此受到影響。

「你有關於如何檢測任何sugestion如果我的硬件能夠索引的片段着色器?」

唯一可靠的但不那麼華麗的方式是讓渲染引擎的信息:

glGetString(GL_RENDERER) 

,如果在不支持的人的列表中出現此渲染檢查。