Timothy Arceri <tarc...@itsqueeze.com> writes: > nir_compact_varyings() is meant to skip over varyings used by xfb: > > /* We can't repack xfb varyings. */ > if (var->data.always_active_io) > continue; > > Any idea why that isn't working in this case?
Looks like GLSL IR has that flag wrong. points.7 has v_var6,7,8,9 transform feedback output, but the IR says: decl_var shader_out INTERP_MODE_NONE SOMEACT vec4 gl_Position (VARYING_SLOT_POS, 0, 0) decl_var shader_out INTERP_MODE_NONE SOMEACT float gl_PointSize (VARYING_SLOT_PSIZ.x, 0, 0) decl_var shader_out INTERP_MODE_FLAT ALWAYSACT vec4[1] v_var6 (VARYING_SLOT_VAR0, 0, 0) decl_var shader_out INTERP_MODE_FLAT ALWAYSACT ivec3 packed:v_var8 (VARYING_SLOT_VAR7.xyz, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var0 (VARYING_SLOT_VAR3.x, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var0@0 (VARYING_SLOT_VAR3.y, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var0@1 (VARYING_SLOT_VAR3.z, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var1 (VARYING_SLOT_VAR4.x, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var1@2 (VARYING_SLOT_VAR4.y, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var1@3 (VARYING_SLOT_VAR4.z, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var10,v_var9 (VARYING_SLOT_VAR1.x, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var10,v_var9@4 (VARYING_SLOT_VAR1.y, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var10,v_var9@5 (VARYING_SLOT_VAR1.z, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var10,v_var9@6 (VARYING_SLOT_VAR1.w, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var11[0] (VARYING_SLOT_VAR5.x, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var11[0]@7 (VARYING_SLOT_VAR5.y, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var11[0]@8 (VARYING_SLOT_VAR5.z, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var2,v_var5,v_var7[0],v_var7[1] (VARYING_SLOT_VAR2.x, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var2,v_var5,v_var7[0],v_var7[1]@9 (VARYING_SLOT_VAR2.y, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var2,v_var5,v_var7[0],v_var7[1]@10 (VARYING_SLOT_VAR2.z, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var2,v_var5,v_var7[0],v_var7[1]@11 (VARYING_SLOT_VAR2.w, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var3 (VARYING_SLOT_VAR6.x, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var3@12 (VARYING_SLOT_VAR6.y, 0, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var3@13 (VARYING_SLOT_VAR6.z, 0, 0) decl_var centroid shader_out INTERP_MODE_NONE SOMEACT float v_var4 (VARYING_SLOT_VAR8.x, 0, 0) decl_var centroid shader_out INTERP_MODE_NONE SOMEACT float v_var4@14 (VARYING_SLOT_VAR8.y, 0, 0) decl_var centroid shader_out INTERP_MODE_NONE SOMEACT float v_var4@15 (VARYING_SLOT_VAR8.z, 0, 0) decl_var centroid shader_out INTERP_MODE_NONE SOMEACT float v_var4@16 (VARYING_SLOT_VAR8.w, 0, 0) However, even if I make lower_packed_varyings.cpp flag those as always active, I still get my varyings reordered if I revert my change to not call nir_compact_varyings: decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var0 (VARYING_SLOT_VAR12.x, 5, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var0@0 (VARYING_SLOT_VAR12.y, 5, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var0@1 (VARYING_SLOT_VAR12.z, 5, 0) -decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var1 (VARYING_SLOT_VAR13.x, 6, 0) -decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var1@2 (VARYING_SLOT_VAR13.y, 6, 0) +decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var1 (VARYING_SLOT_VAR12.w, 5, 0) +decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var1@2 (VARYING_SLOT_VAR13.x, 6, 0) decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var1@3 (VARYING_SLOT_VAR13.z, 6, 0) -decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var11[0] (VARYING_SLOT_VAR14.x, 7, 0) -decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var11[0]@4 (VARYING_SLOT_VAR14.y, 7, 0) -decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var11[0]@5 (VARYING_SLOT_VAR14.z, 7, 0) -decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var3 (VARYING_SLOT_VAR15.x, 8, 0) -decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var3@6 (VARYING_SLOT_VAR15.y, 8, 0) -decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var3@7 (VARYING_SLOT_VAR15.z, 8, 0) -decl_var shader_out INTERP_MODE_FLAT ALWAYSACT ivec3 packed:v_var8 (VARYING_SLOT_VAR16.xyz, 9, 0) -decl_var centroid shader_out INTERP_MODE_NONE SOMEACT float v_var4 (VARYING_SLOT_VAR17.x, 10, 0) -decl_var centroid shader_out INTERP_MODE_NONE SOMEACT float v_var4@8 (VARYING_SLOT_VAR17.y, 10, 0) -decl_var centroid shader_out INTERP_MODE_NONE SOMEACT float v_var4@9 (VARYING_SLOT_VAR17.z, 10, 0) -decl_var centroid shader_out INTERP_MODE_NONE SOMEACT float v_var4@10 (VARYING_SLOT_VAR17.w, 10, 0) +decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var11[0] (VARYING_SLOT_VAR13.y, 6, 0) +decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var11[0]@4 (VARYING_SLOT_VAR13.w, 6, 0) +decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var11[0]@5 (VARYING_SLOT_VAR14.x, 7, 0) +decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var3 (VARYING_SLOT_VAR14.y, 7, 0) +decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var3@6 (VARYING_SLOT_VAR14.z, 7, 0) +decl_var shader_out INTERP_MODE_FLAT SOMEACT int packed:v_var3@7 (VARYING_SLOT_VAR14.w, 7, 0) +decl_var shader_out INTERP_MODE_FLAT ALWAYSACT ivec3 packed:v_var8 (VARYING_SLOT_VAR16.xyz, 8, 0) +decl_var centroid shader_out INTERP_MODE_NONE SOMEACT float v_var4 (VARYING_SLOT_VAR17.x, 9, 0) +decl_var centroid shader_out INTERP_MODE_NONE SOMEACT float v_var4@8 (VARYING_SLOT_VAR17.y, 9, 0) +decl_var centroid shader_out INTERP_MODE_NONE SOMEACT float v_var4@9 (VARYING_SLOT_VAR17.z, 9, 0) +decl_var centroid shader_out INTERP_MODE_NONE SOMEACT float v_var4@10 (VARYING_SLOT_VAR17.w, 9, 0)
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev