Lines Matching defs:src
94 #define NINE_APPLY_SWIZZLE(src, s) \
95 ureg_swizzle(src, NINE_SWIZZLE4(s, s, s, s))
370 struct sm1_src_param src[4];
415 for (i = 0; i < insn->nsrc && i < ARRAY_SIZE(insn->src); ++i) {
416 sm1_dump_src_param(&insn->src[i]);
422 sm1_dump_immediate(&insn->src[0]);
560 struct ureg_src src;
571 src = ureg_src_register(TGSI_FILE_CONSTANT, idx - 4096);
572 src = ureg_src_dimension(src, 1);
574 src = ureg_src_register(TGSI_FILE_CONSTANT, idx);
575 src = ureg_src_dimension(src, 0);
585 return src;
590 struct ureg_src src;
593 src = ureg_src_register(TGSI_FILE_CONSTANT, idx);
594 src = ureg_src_dimension(src, 2);
599 src = ureg_src_register(TGSI_FILE_CONSTANT, slot_idx);
600 src = ureg_src_dimension(src, 0);
610 return src;
615 struct ureg_src src;
621 src = ureg_src_register(TGSI_FILE_CONSTANT, r);
622 src = ureg_src_dimension(src, 3);
627 src = ureg_src_register(TGSI_FILE_CONSTANT, slot_idx);
628 src = ureg_src_dimension(src, 0);
634 src = ureg_swizzle(src, s, s, s, s);
639 return src;
643 tx_lconstf(struct shader_translator *tx, struct ureg_src *src, INT index)
653 *src = tx->lconstf[i].reg;
660 tx_lconsti(struct shader_translator *tx, struct ureg_src *src, INT index)
670 *src = tx->lconsti[i].reg;
677 tx_lconstb(struct shader_translator *tx, struct ureg_src *src, INT index)
687 *src = tx->lconstb[i].reg;
790 struct ureg_src src = ureg_src(dst);
793 src = ureg_scalar(src, c);
794 return src;
855 struct ureg_src src, INT idx)
862 ureg_MOV(tx->ureg, dst, src);
865 ureg_RCP(tx->ureg, tmp, ureg_scalar(src, dim-1));
866 ureg_MUL(tx->ureg, dst, tx_src_scalar(tmp), src);
1009 struct ureg_src src;
1019 src = ureg_src(tx->regs.r[param->idx]);
1034 src = ureg_src(tx->regs.address);
1038 src = ureg_src(tx->regs.tS[param->idx]);
1041 src = tx->regs.vT[param->idx];
1047 src = ureg_src_register(TGSI_FILE_INPUT, param->idx);
1050 src = ureg_DECL_fs_input_centroid(
1078 src = ureg_src_array_offset(tx->regs.v_consecutive, param->idx);
1081 src = tx->regs.v[param->idx];
1086 src = ureg_src_indirect(src, tx_src_param(tx, param->rel));
1094 src = ureg_src(tx->regs.predicate);
1099 src = ureg_DECL_sampler(ureg, param->idx);
1102 if (param->rel || !tx_lconstf(tx, &src, param->idx)) {
1103 src = nine_float_constant_src(tx, param->idx);
1106 src = ureg_src_indirect(src, tx_src_param(tx, param->rel));
1112 ureg_MIN(ureg, tmp, src, ureg_imm1f(ureg, 1.0f));
1114 src = ureg_src(tmp);
1122 src = ureg_imm1f(ureg, 0.0f);
1126 if (!tx_lconsti(tx, &src, param->idx))
1127 src = nine_integer_constant_src(tx, param->idx);
1130 if (!tx_lconstb(tx, &src, param->idx))
1131 src = nine_boolean_constant_src(tx, param->idx);
1140 src = ureg_src(tx->regs.address);
1152 src = ureg_src(wpos);
1154 src = tx->regs.vPos;
1175 src = tx->regs.vFace;
1178 assert(!"invalid src D3DSMO");
1185 assert(!"invalid src D3DSPR");
1192 ureg_RCP(ureg, ureg_writemask(tmp, NINED3DSP_WRITEMASK_3), ureg_scalar(src, TGSI_SWIZZLE_W));
1193 ureg_MUL(ureg, tmp, src, ureg_swizzle(ureg_src(tmp), NINE_SWIZZLE4(W,W,W,W)));
1194 src = ureg_src(tmp);
1199 ureg_RCP(ureg, ureg_writemask(tmp, NINED3DSP_WRITEMASK_2), ureg_scalar(src, TGSI_SWIZZLE_Z));
1200 ureg_MUL(ureg, tmp, src, ureg_swizzle(ureg_src(tmp), NINE_SWIZZLE4(Z,Z,Z,Z)));
1201 src = ureg_src(tmp);
1208 src = ureg_swizzle(src,
1216 src = ureg_abs(src);
1219 src = ureg_negate(ureg_abs(src));
1222 src = ureg_negate(src);
1226 ureg_ADD(ureg, tmp, src, ureg_imm1f(ureg, -0.5f));
1227 src = ureg_src(tmp);
1231 ureg_ADD(ureg, tmp, ureg_imm1f(ureg, 0.5f), ureg_negate(src));
1232 src = ureg_src(tmp);
1237 ureg_NOT(ureg, tmp, src);
1238 src = ureg_src(tmp);
1242 ureg_ADD(ureg, tmp, ureg_imm1f(ureg, 1.0f), ureg_negate(src));
1243 src = ureg_src(tmp);
1248 ureg_ADD(ureg, tmp, ureg_imm1f(ureg, 1.0f), ureg_negate(src));
1249 src = ureg_src(tmp);
1257 ureg_MAD(ureg, tmp, src, ureg_imm1f(ureg, 2.0f), ureg_imm1f(ureg, -1.0f));
1258 src = ureg_src(tmp);
1262 ureg_MAD(ureg, tmp, src, ureg_imm1f(ureg, -2.0f), ureg_imm1f(ureg, 1.0f));
1263 src = ureg_src(tmp);
1267 ureg_ADD(ureg, tmp, src, src);
1268 src = ureg_src(tmp);
1272 ureg_ADD(ureg, tmp, src, src);
1273 src = ureg_negate(ureg_src(tmp));
1280 return src;
1434 struct ureg_src src;
1442 src = ureg_src_register(TGSI_FILE_INPUT, param->idx);
1446 src = tx->regs.v[param->idx];
1450 src = ureg_src(tx_dst_param(tx, param));
1454 src = ureg_src_indirect(src, tx_src_param(tx, param->rel));
1469 src = ureg_swizzle(src, s[0], s[1], s[2], s[3]);
1471 return src;
1479 struct ureg_src src[2];
1480 struct sm1_src_param *src_mat = &tx->insn.src[1];
1484 src[0] = tx_src_param(tx, &tx->insn.src[0]);
1490 src[1] = tx_src_param(tx, src_mat);
1496 /* XXX: src == dst case ? */
1500 ureg_DP3(ureg, ureg_writemask(dst, m), src[0], src[1]);
1503 ureg_DP4(ureg, ureg_writemask(dst, m), src[0], src[1]);
1658 struct ureg_src src0 = tx_src_param(tx, &tx->insn.src[0]);
1659 struct ureg_src src1 = tx_src_param(tx, &tx->insn.src[1]);
1669 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]);
1671 ureg_MOV(ureg, dst, ureg_abs(src));
1679 struct ureg_src src0 = tx_src_param(tx, &tx->insn.src[0]);
1680 struct ureg_src src1 = tx_src_param(tx, &tx->insn.src[1]);
1726 tx_src_param(tx, &tx->insn.src[0]),
1727 tx_src_param(tx, &tx->insn.src[2]),
1728 tx_src_param(tx, &tx->insn.src[1]));
1746 dst, tx_src_param(tx, &tx->insn.src[1]));
1750 cnd = tx_src_param(tx, &tx->insn.src[0]);
1759 tx_src_param(tx, &tx->insn.src[1]),
1760 tx_src_param(tx, &tx->insn.src[2]));
1766 assert(tx->insn.src[0].idx < tx->num_inst_labels);
1767 ureg_CAL(tx->ureg, &tx->inst_labels[tx->insn.src[0].idx]);
1774 struct ureg_src src = tx_src_param(tx, &tx->insn.src[1]);
1777 ureg_IF(ureg, src, tx_cond(tx));
1779 ureg_UIF(ureg, src, tx_cond(tx));
1780 ureg_CAL(ureg, &tx->inst_labels[tx->insn.src[0].idx]);
1790 struct ureg_src src = tx_src_param(tx, &tx->insn.src[1]);
1799 /* src: num_iterations - start_value of al - step for al - 0 */
1800 ureg_MOV(ureg, ctr, src);
1809 /* case src and ctr contain floats */
1814 /* case src and ctr contain integers */
1864 unsigned n = tx->insn.src[0].idx;
1879 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]);
1884 /* Copying to a temporary register avoids src/dst aliasing.
1885 * src is supposed to have replicated swizzle. */
1886 ureg_MOV(ureg, tmp, src);
1900 tx_src_param(tx, &tx->insn.src[0]));
1908 struct ureg_src rep = tx_src_param(tx, &tx->insn.src[0]);
1929 /* case src and ctr contain floats */
1934 /* case src and ctr contain integers */
1971 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]);
1973 if (tx->native_integers && tx->insn.src[0].file == D3DSPR_CONSTBOOL)
1974 ureg_UIF(tx->ureg, src, tx_cond(tx));
1976 ureg_IF(tx->ureg, src, tx_cond(tx));
2000 struct ureg_src src[2];
2002 src[0] = tx_src_param(tx, &tx->insn.src[0]);
2003 src[1] = tx_src_param(tx, &tx->insn.src[1]);
2004 ureg_insn(tx->ureg, cmp_op, &tmp, 1, src, 2, 0);
2018 struct ureg_src src[2];
2020 src[0] = tx_src_param(tx, &tx->insn.src[0]);
2021 src[1] = tx_src_param(tx, &tx->insn.src[1]);
2022 ureg_insn(tx->ureg, cmp_op, &tmp, 1, src, 2, 0);
2347 tx_set_lconstf(tx, tx->insn.dst[0].idx, tx->insn.src[0].imm.f);
2353 tx_set_lconstb(tx, tx->insn.dst[0].idx, tx->insn.src[0].imm.b);
2359 tx_set_lconsti(tx, tx->insn.dst[0].idx, tx->insn.src[0].imm.i);
2366 struct ureg_src src[2] = {
2367 tx_src_param(tx, &tx->insn.src[0]),
2368 tx_src_param(tx, &tx->insn.src[1])
2370 ureg_POW(tx->ureg, dst, ureg_abs(src[0]), src[1]);
2407 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]);
2409 ureg_RCP(ureg, tmp, src);
2422 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]);
2424 ureg_RSQ(ureg, tmp, ureg_abs(src));
2435 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]);
2436 ureg_LG2(ureg, tmp, ureg_abs(src));
2450 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]);
2451 ureg_LIT(ureg, tmp, src);
2453 * states that dst.z is 0 when src.y <= 0. Gallium definition can assign
2454 * it 0^0 if src.w=0, which value is driver dependent. */
2456 ureg_negate(ureg_scalar(src, TGSI_SWIZZLE_Y)),
2468 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]);
2469 ureg_DP3(ureg, tmp, src, src);
2473 ureg_MUL(ureg, dst, src, nrm);
2482 struct ureg_src src[3];
2485 src[i] = tx_src_param(tx, &tx->insn.src[i]);
2486 assert_replicate_swizzle(&src[2]);
2488 ureg_DP2(tx->ureg, tmp, src[0], src[1]);
2489 ureg_ADD(tx->ureg, dst, src[2], dp2);
2510 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]);
2513 assert(tx->insn.src[0].file == D3DSPR_TEXTURE);
2515 ureg_MOV(ureg, dst, src);
2541 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]); /* t[n] */
2585 NINE_APPLY_SWIZZLE(src, X), ureg_src(texcoord));
2588 NINE_APPLY_SWIZZLE(src, Y),
2593 NINE_APPLY_SWIZZLE(src, X), ureg_src(texcoord));
2596 NINE_APPLY_SWIZZLE(src, Y),
2606 ureg_MAD(ureg, tmp2, NINE_APPLY_SWIZZLE(src, Z),
2620 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]); /* t[n] */
2623 ASSERTED const int n = tx->insn.src[0].idx;
2628 ureg_TEX(ureg, dst, ps1x_sampler_type(tx->info, m), ureg_swizzle(src, NINE_SWIZZLE4(W,X,X,X)), sample);
2637 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]); /* t[n] */
2640 ASSERTED const int n = tx->insn.src[0].idx;
2645 ureg_TEX(ureg, dst, ps1x_sampler_type(tx->info, m), ureg_swizzle(src, NINE_SWIZZLE4(Y,Z,Z,Z)), sample);
2659 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]); /* t[n] */
2662 ASSERTED const int n = tx->insn.src[0].idx;
2669 ureg_DP3(ureg, ureg_writemask(dst, TGSI_WRITEMASK_X), tx->regs.vT[m], src);
2670 ureg_DP3(ureg, ureg_writemask(dst, TGSI_WRITEMASK_Y), tx->regs.vT[m+1], src);
2688 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]); /* t[n] */
2689 struct ureg_src E = tx_src_param(tx, &tx->insn.src[1]);
2693 ASSERTED const int n = tx->insn.src[0].idx;
2700 ureg_DP3(ureg, ureg_writemask(dst, TGSI_WRITEMASK_X), tx->regs.vT[m], src);
2701 ureg_DP3(ureg, ureg_writemask(dst, TGSI_WRITEMASK_Y), tx->regs.vT[m+1], src);
2702 ureg_DP3(ureg, ureg_writemask(dst, TGSI_WRITEMASK_Z), tx->regs.vT[m+2], src);
2731 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]); /* t[n] */
2734 ASSERTED const int n = tx->insn.src[0].idx;
2739 ureg_TEX(ureg, dst, ps1x_sampler_type(tx->info, m), src, sample);
2748 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]); /* t[n] */
2752 ASSERTED const int n = tx->insn.src[0].idx;
2758 ureg_DP3(ureg, ureg_writemask(tmp, TGSI_WRITEMASK_X), tx->regs.vT[m], src);
2771 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]); /* t[n] */
2774 ASSERTED const int n = tx->insn.src[0].idx;
2783 ureg_DP3(ureg, ureg_writemask(tmp, TGSI_WRITEMASK_X), tx->regs.vT[m], src);
2784 ureg_DP3(ureg, ureg_writemask(tmp, TGSI_WRITEMASK_Y), tx->regs.vT[m+1], src);
2804 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]); /* t[n] */
2806 ASSERTED const int n = tx->insn.src[0].idx;
2811 ureg_DP3(ureg, dst, tx->regs.vT[m], src);
2820 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]); /* t[n] */
2824 ASSERTED const int n = tx->insn.src[0].idx;
2831 ureg_DP3(ureg, ureg_writemask(dst, TGSI_WRITEMASK_X), tx->regs.vT[m], src);
2832 ureg_DP3(ureg, ureg_writemask(dst, TGSI_WRITEMASK_Y), tx->regs.vT[m+1], src);
2833 ureg_DP3(ureg, ureg_writemask(dst, TGSI_WRITEMASK_Z), tx->regs.vT[m+2], src);
2905 struct ureg_src src0 = tx_src_param(tx, &tx->insn.src[0]);
2906 struct ureg_src src1 = tx_src_param(tx, &tx->insn.src[1]);
2947 struct ureg_src src[2] = {
2948 tx_src_param(tx, &tx->insn.src[0]),
2949 tx_src_param(tx, &tx->insn.src[1])
2951 assert(tx->insn.src[1].idx >= 0 &&
2952 tx->insn.src[1].idx < ARRAY_SIZE(tx->sampler_targets));
2953 target = tx->sampler_targets[tx->insn.src[1].idx];
2955 if (TEX_if_fetch4(tx, dst, target, src[0], src[1], tx->insn.src[1].idx))
2960 ureg_TEX(ureg, dst, target, src[0], src[1]);
2963 ureg_TXP(ureg, dst, target, src[0], src[1]);
2966 ureg_TXB(ureg, dst, target, src[0], src[1]);
2979 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]);
2984 ureg_TEX(ureg, dst, t, src, ureg_DECL_sampler(ureg, s));
2995 struct ureg_src src[2];
2999 src[0] = tx->regs.vT[s];
3000 src[1] = ureg_DECL_sampler(ureg, s);
3003 TEX_with_ps1x_projection(tx, dst, t, src[0], src[1], s);
3012 struct ureg_src src[4] = {
3013 tx_src_param(tx, &tx->insn.src[0]),
3014 tx_src_param(tx, &tx->insn.src[1]),
3015 tx_src_param(tx, &tx->insn.src[2]),
3016 tx_src_param(tx, &tx->insn.src[3])
3018 assert(tx->insn.src[1].idx >= 0 &&
3019 tx->insn.src[1].idx < ARRAY_SIZE(tx->sampler_targets));
3020 target = tx->sampler_targets[tx->insn.src[1].idx];
3022 if (TEX_if_fetch4(tx, dst, target, src[0], src[1], tx->insn.src[1].idx))
3025 ureg_TXD(tx->ureg, dst, target, src[0], src[2], src[3], src[1]);
3033 struct ureg_src src[2] = {
3034 tx_src_param(tx, &tx->insn.src[0]),
3035 tx_src_param(tx, &tx->insn.src[1])
3037 assert(tx->insn.src[1].idx >= 0 &&
3038 tx->insn.src[1].idx < ARRAY_SIZE(tx->sampler_targets));
3039 target = tx->sampler_targets[tx->insn.src[1].idx];
3041 if (TEX_if_fetch4(tx, dst, target, src[0], src[1], tx->insn.src[1].idx))
3044 ureg_TXL(tx->ureg, dst, target, src[0], src[1]);
3052 struct ureg_src src[2] = {
3053 tx_src_param(tx, &tx->insn.src[0]),
3054 tx_src_param(tx, &tx->insn.src[1])
3056 ureg_insn(tx->ureg, cmp_op, &dst, 1, src, 2, 0);
3062 struct ureg_src src = tx_src_param(tx, &tx->insn.src[0]);
3063 ureg_IF(tx->ureg, src, tx_cond(tx));
3227 struct ureg_src src[4];
3232 for (i = 0; i < tx->insn.nsrc && i < ARRAY_SIZE(src); ++i)
3233 src[i] = tx_src_param(tx, &tx->insn.src[i]);
3237 src, tx->insn.nsrc, 0);
3360 sm1_parse_src_param(struct sm1_src_param *src, DWORD tok)
3362 src->file =
3365 src->type = TGSI_RETURN_TYPE_FLOAT;
3366 src->idx = tok & D3DSP_REGNUM_MASK;
3367 src->rel = NULL;
3368 src->swizzle = (tok & D3DSP_SWIZZLE_MASK) >> D3DSP_SWIZZLE_SHIFT;
3369 src->mod = (tok & D3DSP_SRCMOD_MASK) >> D3DSP_SRCMOD_SHIFT;
3371 switch (src->file) {
3372 case D3DSPR_CONST2: src->file = D3DSPR_CONST; src->idx += 2048; break;
3373 case D3DSPR_CONST3: src->file = D3DSPR_CONST; src->idx += 4096; break;
3374 case D3DSPR_CONST4: src->file = D3DSPR_CONST; src->idx += 6144; break;
3428 struct sm1_src_param *src,
3434 sm1_parse_src_param(src, tok_src);
3438 src->rel = rel;
3511 sm1_read_src_param(tx, &insn->src[i], &insn->src_rel[i]);
3517 sm1_parse_immediate(tx, &tx->insn.src[0]);
3539 * which cannot be src. Workaround it. */