Uniform block arrays, linking error

Hi,

I’m trying to use an array of uniform buffer blocks. Although the shader compiles fine but linking fails.
Please have the error output I get with the example taken from: http://www.opengl.org/wiki/Uniform_Buffer_Object

Example:

Vertex shader:


#version 330

in vec4 position;

void main(void)
{
    gl_Position = position;
}

Fragment shader:


#version 330

uniform BlockName
{
  vec3 blockMember1, blockMember2;
  float blockMember3;
} multiBlocks[3];

out vec4 fragColor;

void main(void)
{
    fragColor = vec4(multiBlocks[0].blockMember1, multiBlocks[0].blockMember3);
}

Error message:


Fragment info
-------------
Internal error: assembly compile error for fragment shader at offset 895:
-- error message --
line 20, column 15:  error: expected '='
line 23, column 22:  error: expected ';'
line 24, column 37:  error: expected ';'
-- internal assembly text --
!!NVfp4.0
OPTION NV_parameter_buffer_object2;
# cgc version 3.0.0001, build date Jul 29 2010
# command line args: 
#vendor NVIDIA Corporation
#version 3.0.0.1
#profile gp4fp
#program main
#semantic BlockName.multiBlocks
#var float3 multiBlocks[0].blockMember1 :  : buffer[0][0] : -1 : 1
#var float3 multiBlocks[0].blockMember2 :  : buffer[0][16] : -1 : 0
#var float multiBlocks[0].blockMember3 :  : buffer[0][28] : -1 : 1
#var float3 multiBlocks[1].blockMember1 :  : buffer[1][0] : -1 : 0
#var float3 multiBlocks[1].blockMember2 :  : buffer[1][16] : -1 : 0
#var float multiBlocks[1].blockMember3 :  : buffer[1][28] : -1 : 0
#var float3 multiBlocks[2].blockMember1 :  : buffer[2][0] : -1 : 0
#var float3 multiBlocks[2].blockMember2 :  : buffer[2][16] : -1 : 0
#var float multiBlocks[2].blockMember3 :  : buffer[2][28] : -1 : 0
#var float4 fragColor : $vout.COL00 : COL0[0] : -1 : 1
CBUFFER buf0[][] = { program.buffer[0..2] };
TEMP R0;
OUTPUT result_color0 = result.color;
LDC.F32 R0.x, buf0[0][28];
LDC.F32X4 result_color0.xyz, buf0[0][0];
MOV.F result_color0.w, R0.x;
END
# 3 instructions, 1 R-regs

I use OpenGL version 3.3.0 and the NVIDIA driver 256.44 on Linux.

Any ideas what the problem is?

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.