   HLSL behaviour when float4 declared inside main function and outside
  Hi,I am seeing a weird issue. I have this shader:// Vertex shader input structurestruct VS_INPUT{    float4 Position   : POSITION;    float2 Texture    : TEXCOORD0;    float4 DiffuseColor : COLOR0;    float3 Normal  : NORMAL;};// Vertex shader output structurestruct VS_OUTPUT{    float4 Position   : POSITION;    float2 Texture    : TEXCOORD0;    float4 DiffuseColor : COLOR0;};// Global variablesfloat4x4 WorldViewProj;float4 LightColor = {1.0f, 0.0f, 0.0f, 1.0f};VS_OUTPUT vs_main( in VS_INPUT In ){    VS_OUTPUT Out;  //create an output vertex    float4 colorContibutedbyLight = float4(0.0f, 1.0f, 0.0f, 0.0f);   colorContibutedbyLight = LightColor * 0.5f;   Out.Position = mul(In.Position,   WorldViewProj);  //apply vertex transformation    Out.Texture  = In.Texture;//copy original texcoords    Out.DiffuseColor = colorContibutedbyLight;    return Out;//return output vertex}Notice that here LightColor is declared just outside vs_main. If i use this shader i always get black diffuse color. It seems that LightColor is not getting initialized properly.But if I just move the line "float4 LightColor = {1.0f, 0.0f, 0.0f, 1.0f};" inside vs_main, then all works as expected. Is this some HLSL thing I dont know ? or is this a driver bug ?   