2012-01-04 14 views
3

私は、グラフィックカードのドライバにバグがあるのか​​、私のコードだけであるのかを解明しようとしています。次は違法ですか?GLSL 1.2 vec4で変化するジオメトリシェーダは不正ですか?

#version 120 
#extension GL_EXT_gpu_shader4 : enable 
#extension GL_EXT_geometry_shader4 : enable 

varying in vec4 something; // <------- this 

void main() 
{ 
    for(int i = 0; i < gl_VerticesIn; ++i) 
    { 

     gl_Position = gl_PositionIn[i]; 

     EmitVertex(); 
    } 
    EndPrimitive(); 
} 

これはGLSL 1.2で、実際に違法であるか、それはちょうど私のimplemntationです)それは私のOSX 10.7(NVIDIAの9400メートル/ 9600メートル)のラップトップ上でクラッシュだと私はA興味? GLSL 1.2でvec4をジオメトリシェーダに渡すためのフラグがありますか?

レコード:はい、私はこれが1.3a以上で簡単だと知っていますが、現時点では1.2に固執しています。ありがとう!

+0

エラーメッセージを投稿した場合に役立ちます。 –

答えて

4

ジオメトリシェーダへの入力は、の配列であり、単一の値ではありません。これは、GSが複数の頂点で構成できるプリミティブを取り入れるためです。ちょうどgl_PositionInのような配列です、あなたのユーザー定義の入力もそうです。

+0

ありがとう!過度に疲れて1.5から1.2に上がってしまった。 –

関連する問題