OpenGL - Cannot link stereo VTG program with geometry shader. (Edit - LINKED, but NANS in Geometry Shader Output)

here is the dump of the shader programs being input.
There is a Vertex, Geometry, and Fragment shader.
The additional information is added by my shader pre-processor.
Does anyone see anything obvious that I missed ?

//////////////////////////////////
#version 460 core
/*002*/ /// shaderdep<0x564406cd5ac0:vs_streak_stereo> emit
/*003*/ /// shaderdep col<0x7ffd436901b8> adding child<0,0x564407362580,vface_streak_stereo>
/*004*/ /// begin shaderdeps<0x564406cd5ac0>
/*005*/ /// shaderdeps<0x564406cd5ac0> uniblocks
/*006*/ /// shaderdeps<0x564406cd5ac0> unisets
/*007*/ /// shaderdeps<0x564406cd5ac0> interfaces
/*008*/ in vec4 position ;
/*009*/ in vec3 normal ;
/*010*/ in vec3 velocity ;
/*011*/ in vec2 lw ;
/*012*/ in vec2 ra ;
/*013*/ out vec3 geo_pos[1];
/*014*/ out vec3 geo_cnrm[1];
/*015*/ out vec3 geo_vel[1];
/*016*/ out vec2 geo_lw[1];
/*017*/ out vec2 geo_ra[1];
/*018*/ /// shaderdeps<0x564406cd5ac0> libblocks
/*019*/ /// end shaderdeps<0x564406cd5ac0>
/*020*/ ///////////////////////////////////////////////////////////////////
/*021*/ void vs_streak_stereo(){
/*022*/   geo_pos[0] = position . xyz ; 
/*023*/   geo_cnrm[0] = normal ; 
/*024*/   geo_vel[0] = velocity ; 
/*025*/   geo_lw[0] = lw ; 
/*026*/   geo_ra[0] = ra ; 
/*027*/ }
void main() { vs_streak_stereo(); }

//////////////////////////////////
//////////////////////////////////
#version 460 core
/*002*/ #extension GL_NV_stereo_view_rendering : enable
/*003*/ #extension GL_NV_viewport_array2 : enable
/*004*/ /// shaderdep<0x564406758b30:gs_streak_stereo> emit
/*005*/ /// shaderdep col<0x7ffd43690108> adding child<0,0x564405dcb450,lib_streak_types>
/*006*/ /// shaderdep col<0x7ffd43690108> adding child<1,0x56440633f7c0,lib_streak_stereo>
/*007*/ /// shaderdep col<0x7ffd43690248> adding child<0,0x564404cfa110,uset_geo_stereo>
/*008*/ /// shaderdep col<0x7ffd436901a8> adding child<0,0x564406d114a0,gface_base>
/*009*/ /// shaderdep col<0x7ffd436901a8> adding child<1,0x564406063410,gface_streak_stereo>
/*010*/ /// begin shaderdeps<0x564406758b30>
/*011*/ /// shaderdeps<0x564406758b30> uniblocks
/*012*/ /// shaderdeps<0x564406758b30> unisets
/*013*/ /// begin uniformset<0x564404cfa110>
/*014*/ uniform mat4 MatMVPL;
/*015*/ uniform mat4 MatMVPR;
/*016*/ /// end uniformset<0x564404cfa110>
/*017*/ /// shaderdeps<0x564406758b30> interfaces
/*018*/ layout ( points ) in; // SIF<0x564406d114a0>
/*019*/ layout ( triangle_strip , max_vertices = 4 ) out; // SIF<0x564406d114a0>
/*020*/ in vec3 geo_pos[];
/*021*/ in vec3 geo_cnrm[];
/*022*/ in vec3 geo_vel[];
/*023*/ in vec2 geo_lw[];
/*024*/ in vec2 geo_ra[];
/*025*/ out vec4 frg_clr ;
/*026*/ out vec2 frg_uv0 ;
/*027*/ out vec2 frg_uv1 ;
/*028*/ layout ( secondary_view_offset = 1 ) out int gl_Layer ;
/*029*/ /// shaderdeps<0x564406758b30> libblocks
/*030*/ // begin libblock<lib_streak_types> ///////////////////////////////////
/*031*/ struct StreakOutput {
/*032*/   vec4 pos0;
/*033*/   vec4 pos1;
/*034*/   vec4 pos2;
/*035*/   vec4 pos3;
/*036*/ };
/*037*/ // end libblock<lib_streak_types> ///////////////////////////////////
/*038*/ // begin libblock<lib_streak_stereo> ///////////////////////////////////
/*039*/ StreakOutput computeStreakStereo(
/*040*/   mat4 mvp)
/*041*/   {
/*042*/     vec3 pos = geo_pos[0] . xyz ; 
/*043*/     vec3 vel = geo_vel[0] . xyz ; 
/*044*/     vec3 cnrm = geo_cnrm[0] . xyz ; 
/*045*/     float wid = geo_lw[0] . y ; 
/*046*/     float len = geo_lw[0] . x ; 
/*047*/     vec3 lpos = pos - vel * len ; 
/*048*/     vec3 crs = wid * normalize ( cross ( vel , cnrm ) ) ; 
/*049*/     vec3 p0 = pos + crs ; 
/*050*/     vec3 p1 = pos - crs ; 
/*051*/     vec3 p2 = lpos - crs ; 
/*052*/     vec3 p3 = lpos + crs ; 
/*053*/     StreakOutput outp ; 
/*054*/     outp . pos0 = mvp * vec4 ( p0 , 1.0 ) ; 
/*055*/     outp . pos1 = mvp * vec4 ( p1 , 1.0 ) ; 
/*056*/     outp . pos2 = mvp * vec4 ( p2 , 1.0 ) ; 
/*057*/     outp . pos3 = mvp * vec4 ( p3 , 1.0 ) ; 
/*058*/     return outp ; 
/*059*/   }
/*060*/ // end libblock<lib_streak_stereo> ///////////////////////////////////
/*061*/ /// end shaderdeps<0x564406758b30>
/*062*/ ///////////////////////////////////////////////////////////////////
/*063*/ void gs_streak_stereo(){
/*064*/   gl_Layer = 0 ; 
/*065*/   gl_ViewportMask[0] = 1 ; 
/*066*/   gl_SecondaryViewportMaskNV[0] = 2 ; 
/*067*/   StreakOutput outL = computeStreakStereo ( MatMVPL ) ; 
/*068*/   StreakOutput outR = computeStreakStereo ( MatMVPR ) ; 
/*069*/   frg_uv1 = geo_ra[0] ; 
/*070*/   frg_clr = vec4 ( 0 , 0 , 0 , 0 ) ; 
/*071*/   gl_Position = outL . pos0 ; 
/*072*/   gl_SecondaryPositionNV = outR . pos0 ; 
/*073*/   frg_uv0 = vec2 ( 0 , 0 ) ; 
/*074*/   EmitVertex ( ) ; 
/*075*/   gl_Position = outL . pos1 ; 
/*076*/   gl_SecondaryPositionNV = outR . pos1 ; 
/*077*/   frg_uv0 = vec2 ( 1 , 0 ) ; 
/*078*/   EmitVertex ( ) ; 
/*079*/   gl_Position = outL . pos3 ; 
/*080*/   gl_SecondaryPositionNV = outR . pos3 ; 
/*081*/   frg_uv0 = vec2 ( 0 , 1 ) ; 
/*082*/   EmitVertex ( ) ; 
/*083*/   gl_Position = outL . pos2 ; 
/*084*/   gl_SecondaryPositionNV = outR . pos2 ; 
/*085*/   frg_uv0 = vec2 ( 1 , 1 ) ; 
/*086*/   EmitVertex ( ) ; 
/*087*/   EndPrimitive ( ) ; 
/*088*/ }
void main() { gs_streak_stereo(); }

//////////////////////////////////
//////////////////////////////////
#version 460 core
/*002*/ /// shaderdep<0x564406cfe8b0:ps_flat_stereo> emit
/*003*/ /// shaderdep col<0x7ffd43690258> adding child<0,0x564404fbce90,uset_frg>
/*004*/ /// shaderdep col<0x7ffd436901b8> adding child<0,0x564406cdd4b0,fface_psys_stereo>
/*005*/ /// begin shaderdeps<0x564406cfe8b0>
/*006*/ /// shaderdeps<0x564406cfe8b0> uniblocks
/*007*/ /// shaderdeps<0x564406cfe8b0> unisets
/*008*/ /// begin uniformset<0x564404fbce90>
/*009*/ uniform vec4 modcolor;
/*010*/ uniform vec4 User0;
/*011*/ uniform sampler2D ColorMap;
/*012*/ uniform sampler2D GradientMap;
/*013*/ uniform sampler3D VolumeMap;
/*014*/ /// end uniformset<0x564404fbce90>
/*015*/ /// shaderdeps<0x564406cfe8b0> interfaces
/*016*/ in vec4 frg_clr ;
/*017*/ in vec2 frg_uv0 ;
/*018*/ in vec2 frg_uv1 ;
/*019*/ layout ( location = 0 ) out vec4 out_clr ;
/*020*/ /// shaderdeps<0x564406cfe8b0> libblocks
/*021*/ /// end shaderdeps<0x564406cfe8b0>
/*022*/ ///////////////////////////////////////////////////////////////////
/*023*/ void ps_flat_stereo(){
/*024*/   float unit_age = frg_uv1 . x ; 
/*025*/   vec3 C = modcolor . xyz * ( 1.0 - unit_age ) ; 
/*026*/   out_clr = vec4 ( C , modcolor . w ) ; 
/*027*/ }
void main() { ps_flat_stereo(); }

//////////////////////////////////


//////////////////////////////////
program VTG InfoLog<Link info
---------
error: "geo_cnrm" not declared as input from previous stage
>
//////////////////////////////////

OK I have it linked - it was the incorrect usage of arrays in the vertex shader.
Now it does not function correctly, however.
There are nans at the GS output

Update (Linked) version of shader

//////////////////////////////////
#version 460 core
/*002*/ #extension GL_NV_stereo_view_rendering : enable
/*003*/ #extension GL_NV_viewport_array2 : enable
/*004*/ /// shaderdep<0x561261c3ea40:vs_streak_stereo> emit
/*005*/ /// shaderdep col<0x7fffc6e06ea8> adding child<0,0x56126a54afa0,vface_streak_stereo>
/*006*/ /// begin shaderdeps<0x561261c3ea40>
/*007*/ /// shaderdeps<0x561261c3ea40> uniblocks
/*008*/ /// shaderdeps<0x561261c3ea40> unisets
/*009*/ /// shaderdeps<0x561261c3ea40> interfaces
/*010*/ in vec4 position ;
/*011*/ in vec3 normal ;
/*012*/ in vec3 velocity ;
/*013*/ in vec2 lw ;
/*014*/ in vec2 ra ;
/*015*/ out vec3 geo_pos ;
/*016*/ out vec3 geo_cnrm ;
/*017*/ out vec3 geo_vel ;
/*018*/ out vec2 geo_lw ;
/*019*/ out vec2 geo_ra ;
/*020*/ /// shaderdeps<0x561261c3ea40> libblocks
/*021*/ /// end shaderdeps<0x561261c3ea40>
/*022*/ ///////////////////////////////////////////////////////////////////
/*023*/ void vs_streak_stereo(){
/*024*/   geo_pos = position . xyz ; 
/*025*/   geo_cnrm = normal ; 
/*026*/   geo_vel = velocity ; 
/*027*/   geo_lw = lw ; 
/*028*/   geo_ra = ra ; 
/*029*/ }
void main() { vs_streak_stereo(); }

//////////////////////////////////
//////////////////////////////////
#version 460 core
/*002*/ #extension GL_NV_stereo_view_rendering : enable
/*003*/ #extension GL_NV_viewport_array2 : enable
/*004*/ /// shaderdep<0x561266797ab0:gs_streak_stereo> emit
/*005*/ /// shaderdep col<0x7fffc6e06df8> adding child<0,0x561265d70a70,lib_streak_types>
/*006*/ /// shaderdep col<0x7fffc6e06df8> adding child<1,0x56126a515ca0,lib_streak_stereo>
/*007*/ /// shaderdep col<0x7fffc6e06f38> adding child<0,0x561264ebe330,uset_geo_stereo>
/*008*/ /// shaderdep col<0x7fffc6e06e98> adding child<0,0x561264e869a0,gface_base>
/*009*/ /// shaderdep col<0x7fffc6e06e98> adding child<1,0x561265d8b820,gface_streak_stereo>
/*010*/ /// begin shaderdeps<0x561266797ab0>
/*011*/ /// shaderdeps<0x561266797ab0> uniblocks
/*012*/ /// shaderdeps<0x561266797ab0> unisets
/*013*/ /// begin uniformset<0x561264ebe330>
/*014*/ uniform mat4 MatMVPL;
/*015*/ uniform mat4 MatMVPR;
/*016*/ /// end uniformset<0x561264ebe330>
/*017*/ /// shaderdeps<0x561266797ab0> interfaces
/*018*/ layout ( points ) in; // SIF<0x561264e869a0>
/*019*/ layout ( triangle_strip , max_vertices = 4 ) out; // SIF<0x561264e869a0>
/*020*/ in vec3 geo_pos[];
/*021*/ in vec3 geo_cnrm[];
/*022*/ in vec3 geo_vel[];
/*023*/ in vec2 geo_lw[];
/*024*/ in vec2 geo_ra[];
/*025*/ out vec4 frg_clr ;
/*026*/ out vec2 frg_uv0 ;
/*027*/ out vec2 frg_uv1 ;
/*028*/ out int gl_ViewportMask[];
/*029*/ out int gl_SecondaryViewportMaskNV[];
/*030*/ /// shaderdeps<0x561266797ab0> libblocks
/*031*/ // begin libblock<lib_streak_types> ///////////////////////////////////
/*032*/ struct StreakInput {
/*033*/   vec3 pos;
/*034*/   vec3 vel;
/*035*/   vec3 cnrm;
/*036*/   vec2 lw;
/*037*/ };
/*038*/ struct StreakOutput {
/*039*/   vec4 pos0;
/*040*/   vec4 pos1;
/*041*/   vec4 pos2;
/*042*/   vec4 pos3;
/*043*/ };
/*044*/ // end libblock<lib_streak_types> ///////////////////////////////////
/*045*/ // begin libblock<lib_streak_stereo> ///////////////////////////////////
/*046*/ StreakOutput computeStreakStereo(
/*047*/   mat4 mvp,
/*048*/   StreakInput inp)
/*049*/   {
/*050*/     vec3 pos = inp . pos . xyz ; 
/*051*/     vec3 vel = inp . vel . xyz ; 
/*052*/     vec3 cnrm = inp . cnrm . xyz ; 
/*053*/     float wid = inp . lw . y ; 
/*054*/     float len = inp . lw . x ; 
/*055*/     vec3 lpos = pos - vel * len ; 
/*056*/     vec3 crs = wid * normalize ( cross ( vel , cnrm ) ) ; 
/*057*/     vec3 p0 = pos + crs ; 
/*058*/     vec3 p1 = pos - crs ; 
/*059*/     vec3 p2 = lpos - crs ; 
/*060*/     vec3 p3 = lpos + crs ; 
/*061*/     StreakOutput outp ; 
/*062*/     outp . pos0 = mvp * vec4 ( p0 , 1.0 ) ; 
/*063*/     outp . pos1 = mvp * vec4 ( p1 , 1.0 ) ; 
/*064*/     outp . pos2 = mvp * vec4 ( p2 , 1.0 ) ; 
/*065*/     outp . pos3 = mvp * vec4 ( p3 , 1.0 ) ; 
/*066*/     return outp ; 
/*067*/   }
/*068*/ // end libblock<lib_streak_stereo> ///////////////////////////////////
/*069*/ /// end shaderdeps<0x561266797ab0>
/*070*/ ///////////////////////////////////////////////////////////////////
/*071*/ void gs_streak_stereo(){
/*072*/   StreakInput inp ; 
/*073*/   inp . pos = geo_pos[0] . xyz ; 
/*074*/   inp . vel = geo_vel[0] . xyz ; 
/*075*/   inp . cnrm = geo_cnrm[0] . xyz ; 
/*076*/   inp . lw = geo_lw[0] . xy ; 
/*077*/   frg_uv1 = geo_ra[0] ; 
/*078*/   frg_clr = vec4 ( 0 , 0 , 0 , 0 ) ; 
/*079*/   StreakOutput outL = computeStreakStereo ( MatMVPL , inp ) ; 
/*080*/   gl_ViewportMask[0] = 1 ; 
/*081*/   gl_SecondaryViewportMaskNV[0] = 0 ; 
/*082*/   gl_Position = outL . pos0 ; 
/*083*/   frg_uv0 = vec2 ( 0 , 0 ) ; 
/*084*/   EmitVertex ( ) ; 
/*085*/   gl_Position = outL . pos1 ; 
/*086*/   frg_uv0 = vec2 ( 1 , 0 ) ; 
/*087*/   EmitVertex ( ) ; 
/*088*/   gl_Position = outL . pos3 ; 
/*089*/   frg_uv0 = vec2 ( 0 , 1 ) ; 
/*090*/   EmitVertex ( ) ; 
/*091*/   gl_Position = outL . pos2 ; 
/*092*/   frg_uv0 = vec2 ( 1 , 1 ) ; 
/*093*/   EmitVertex ( ) ; 
/*094*/   StreakOutput outR = computeStreakStereo ( MatMVPR , inp ) ; 
/*095*/   gl_ViewportMask[0] = 0 ; 
/*096*/   gl_SecondaryViewportMaskNV[0] = 1 ; 
/*097*/   gl_Position = outR . pos0 ; 
/*098*/   frg_uv0 = vec2 ( 0 , 0 ) ; 
/*099*/   EmitVertex ( ) ; 
/*100*/   gl_Position = outR . pos1 ; 
/*101*/   frg_uv0 = vec2 ( 1 , 0 ) ; 
/*102*/   EmitVertex ( ) ; 
/*103*/   gl_Position = outR . pos3 ; 
/*104*/   frg_uv0 = vec2 ( 0 , 1 ) ; 
/*105*/   EmitVertex ( ) ; 
/*106*/   gl_Position = outR . pos2 ; 
/*107*/   frg_uv0 = vec2 ( 1 , 1 ) ; 
/*108*/   EmitVertex ( ) ; 
/*109*/   EndPrimitive ( ) ; 
/*110*/ }
void main() { gs_streak_stereo(); }

//////////////////////////////////
//////////////////////////////////
#version 460 core
/*002*/ /// shaderdep<0x561268cd8ad0:ps_flat_stereo> emit
/*003*/ /// shaderdep col<0x7fffc6e06f48> adding child<0,0x56126a5329d0,uset_frg>
/*004*/ /// shaderdep col<0x7fffc6e06ea8> adding child<0,0x5612673110a0,fface_psys_stereo>
/*005*/ /// begin shaderdeps<0x561268cd8ad0>
/*006*/ /// shaderdeps<0x561268cd8ad0> uniblocks
/*007*/ /// shaderdeps<0x561268cd8ad0> unisets
/*008*/ /// begin uniformset<0x56126a5329d0>
/*009*/ uniform vec4 modcolor;
/*010*/ uniform vec4 User0;
/*011*/ uniform sampler2D ColorMap;
/*012*/ uniform sampler2D GradientMap;
/*013*/ uniform sampler3D VolumeMap;
/*014*/ /// end uniformset<0x56126a5329d0>
/*015*/ /// shaderdeps<0x561268cd8ad0> interfaces
/*016*/ in vec4 frg_clr ;
/*017*/ in vec2 frg_uv0 ;
/*018*/ in vec2 frg_uv1 ;
/*019*/ layout ( location = 0 ) out vec4 out_clr ;
/*020*/ /// shaderdeps<0x561268cd8ad0> libblocks
/*021*/ /// end shaderdeps<0x561268cd8ad0>
/*022*/ ///////////////////////////////////////////////////////////////////
/*023*/ void ps_flat_stereo(){
/*024*/   float unit_age = frg_uv1 . x ; 
/*025*/   vec3 C = modcolor . xyz * ( 1.0 - unit_age ) ; 
/*026*/   out_clr = vec4 ( C , modcolor . w ) ; 
/*027*/ }
void main() { ps_flat_stereo(); }

//////////////////////////////////


//////////////////////////////////
program VTG InfoLog<>
//////////////////////////////////

The listed warnings at the bottom of renderdoc are performance warnings and infos. nothing seems to be related to the shader itself. I also tried in nvidia gfx-debugger - but it did not seem to know anything different about the situtation.