哪个版本的GLSL支持片段着色器中的索引?

时间:2012-05-31 17:06:51

标签: opengl glsl

我有一个片段着色器,它迭代一些输入数据和我得到的旧硬件:

  

错误C6013:此配置文件中只能索引texcoords数组,并且只能使用循环索引变量

谷歌搜索我看到很多东西,如“XX之前的硬件不支持片段着色器上的索引”。

我想知道这种行为是否在GLSL版本中是标准化的,例如“glsl version pior to XX不支持对片段着色器进行索引”。如果是这样,哪个版本开始支持它。

2 个答案:

答案 0 :(得分:2)

您的确切硬件是什么?

旧的ATI卡(X1600以下)及其驱动程序存在此类问题。最值得一提的是,并非最新的英特尔卡也受此影响。

  
    

“您对如何检测我的硬件是否能够在片段着色器中建立索引有任何疑问吗?”

  

唯一可靠但不那么漂亮的方法是获取渲染器信息:

glGetString(GL_RENDERER)

并检查此渲染器是否出现在不受支持的列表中。

答案 1 :(得分:1)

该特定错误来自用于nv4x(GeForce 6/7卡)的Nvidia编译器,并且是硬件的限制。任何解决方法都需要完全禁用硬件并使用纯软件渲染。

所有版本的GLSL都支持使用该语言编制索引 - 此错误属于超出硬件资源限制的全部错误。