3
我有以下GLSL着色器(被加載到一個OpenGL 3.3前鋒方面,但我得到了相同的行爲2.1):gl_VertexID休息渲染
const GLchar* const glsl_vertex_timeseries = {
"#version 330\n"
"#extension GL_EXT_gpu_shader4 : enable\n"
""
"in vec2 in_Y;"
""
"void main()"
"{"
// " int dummy = gl_VertexID;"
" gl_Position = vec4(in_Y, 0.0, 1.0);"
"}"
};
它以查找問題非常簡單。
如圖所示,它編譯,鏈接和我的幾何顯示。
如果註釋行被激活,它將編譯和鏈接而不發出警告,但沒有任何呈現(glClear
仍然有效,但不是glDrawArrays
)。
需要什麼使gl_VertexID
工作?
該應用程序是在Windows 7 64位上運行的32位C++程序。 視頻卡是ATI Mobility Radeon 5650,Catalyst 8.812
我記得大約2-3個月前在OpenGL板上看到一個關於ATI驅動生成不正確的gl_VertexID和非零_first_參數的線程,所以我打賭會是「bug修復」。 – Damon 2011-02-28 23:58:26
只要確定該問題也出現在另一臺電腦上,Radeon 5770 Catalyst 8.791。現在升級,如果新版本在這裏修復它,我會相信。 – 2011-03-01 00:53:16
近一年前我看到了同樣的行爲。在一個簡單的情況下,gl_VertexID不起作用。當我讓着色器做更多的工作時,它奇蹟般地工作。它看起來像ATI仍然有一些問題... – kvark 2011-03-01 02:12:49