Lines Matching refs:linkage
773 /* linkage map sorted by order frag shader wants things, so
968 struct ir3_shader_linkage linkage = {
974 ir3_link_shaders(&linkage, last_shader, fs, true);
977 ir3_link_stream_out(&linkage, last_shader);
982 bool primid_passthru = linkage.primid_loc != 0xff;
986 tu_cs_emit(cs, ~linkage.varmask[0]);
987 tu_cs_emit(cs, ~linkage.varmask[1]);
988 tu_cs_emit(cs, ~linkage.varmask[2]);
989 tu_cs_emit(cs, ~linkage.varmask[3]);
1008 layer_loc = linkage.max_loc;
1009 ir3_link_add(&linkage, layer_regid, 0x1, linkage.max_loc);
1013 view_loc = linkage.max_loc;
1014 ir3_link_add(&linkage, view_regid, 0x1, linkage.max_loc);
1024 position_loc = linkage.max_loc;
1026 ir3_link_add(&linkage, last_shader->outputs[i].regid,
1032 pointsize_loc = linkage.max_loc;
1033 ir3_link_add(&linkage, pointsize_regid, 0x1, linkage.max_loc);
1039 uint32_t clip0_loc = linkage.clip0_loc, clip1_loc = linkage.clip1_loc;
1041 clip0_loc = linkage.max_loc;
1042 ir3_link_add(&linkage, clip0_regid, clip_cull_mask & 0xf, linkage.max_loc);
1045 clip1_loc = linkage.max_loc;
1046 ir3_link_add(&linkage, clip1_regid, clip_cull_mask >> 4, linkage.max_loc);
1049 tu6_setup_streamout(cs, last_shader, &linkage);
1056 if (linkage.cnt == 0)
1057 ir3_link_add(&linkage, 0, 0x1, linkage.max_loc);
1060 assert(linkage.cnt <= 32);
1061 const uint32_t sp_out_count = DIV_ROUND_UP(linkage.cnt, 2);
1062 const uint32_t sp_vpc_dst_count = DIV_ROUND_UP(linkage.cnt, 4);
1065 for (uint32_t i = 0; i < linkage.cnt; i++) {
1067 A6XX_SP_VS_OUT_REG_A_REGID(linkage.var[i].regid) |
1068 A6XX_SP_VS_OUT_REG_A_COMPMASK(linkage.var[i].compmask);
1070 A6XX_SP_VS_VPC_DST_REG_OUTLOC0(linkage.var[i].loc);
1082 A6XX_VPC_VS_PACK_STRIDE_IN_VPC(linkage.max_loc) |
1106 tu_cs_emit(cs, A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC(linkage.max_loc) |
1118 tu_cs_emit(cs, A6XX_SP_VS_PRIMITIVE_CNTL_OUT(linkage.cnt) |
1134 A6XX_VPC_CNTL_0_PRIMIDLOC(linkage.primid_loc) |
1135 A6XX_VPC_CNTL_0_VIEWIDLOC(linkage.viewid_loc));