Lines Matching defs:param
256 sm1_dump_immediate(const struct sm1_src_param *param)
258 switch (param->type) {
261 param->imm.f[0], param->imm.f[1],
262 param->imm.f[2], param->imm.f[3]);
266 param->imm.i[0], param->imm.i[1],
267 param->imm.i[2], param->imm.i[3]);
270 DUMP("%s", param->imm.b ? "TRUE" : "FALSE");
279 sm1_dump_src_param(const struct sm1_src_param *param)
281 if (param->file == NINED3DSPR_IMMEDIATE) {
282 assert(!param->mod &&
283 !param->rel &&
284 param->swizzle == NINED3DSP_NOSWIZZLE);
285 sm1_dump_immediate(param);
289 if (param->mod)
290 DUMP("%s(", sm1_mod_str[param->mod]);
291 if (param->rel) {
292 DUMP("%c[", sm1_file_char[param->file]);
293 sm1_dump_src_param(param->rel);
294 DUMP("+%i]", param->idx);
296 sm1_dump_reg(param->file, param->idx);
298 if (param->mod)
300 if (param->swizzle != NINED3DSP_NOSWIZZLE) {
302 sm1_dump_swizzle(param->swizzle);
307 sm1_dump_dst_param(const struct sm1_dst_param *param)
309 if (param->mod & NINED3DSPDM_SATURATE)
311 if (param->mod & NINED3DSPDM_PARTIALP)
313 if (param->mod & NINED3DSPDM_CENTROID)
315 if (param->shift < 0)
316 DUMP("/%u ", 1 << -param->shift);
317 if (param->shift > 0)
318 DUMP("*%u ", 1 << param->shift);
320 if (param->rel) {
321 DUMP("%c[", sm1_file_char[param->file]);
322 sm1_dump_src_param(param->rel);
323 DUMP("+%i]", param->idx);
325 sm1_dump_reg(param->file, param->idx);
327 if (param->mask != NINED3DSP_WRITEMASK_ALL) {
329 sm1_dump_writemask(param->mask);
1006 tx_src_param(struct shader_translator *tx, const struct sm1_src_param *param)
1012 assert(!param->rel || (IS_VS && param->file == D3DSPR_CONST) ||
1013 (param->file == D3DSPR_INPUT && tx->version.major == 3));
1015 switch (param->file)
1018 tx_temp_alloc(tx, param->idx);
1019 src = ureg_src(tx->regs.r[param->idx]);
1024 assert(param->idx == 0);
1038 src = ureg_src(tx->regs.tS[param->idx]);
1040 tx_texcoord_alloc(tx, param->idx);
1041 src = tx->regs.vT[param->idx];
1047 src = ureg_src_register(TGSI_FILE_INPUT, param->idx);
1051 ureg, TGSI_SEMANTIC_COLOR, param->idx,
1057 if(param->rel) {
1078 src = ureg_src_array_offset(tx->regs.v_consecutive, param->idx);
1080 assert(param->idx < ARRAY_SIZE(tx->regs.v));
1081 src = tx->regs.v[param->idx];
1085 if (param->rel)
1086 src = ureg_src_indirect(src, tx_src_param(tx, param->rel));
1097 assert(param->mod == NINED3DSPSM_NONE);
1098 /* assert(param->swizzle == NINED3DSP_NOSWIZZLE); Passed by wine tests */
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);
1104 if (param->rel) {
1106 src = ureg_src_indirect(src, tx_src_param(tx, param->rel));
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);
1143 switch (param->idx) {
1188 switch (param->mod) {
1207 if (param->swizzle != NINED3DSP_NOSWIZZLE && param->file != D3DSPR_SAMPLER)
1209 (param->swizzle >> 0) & 0x3,
1210 (param->swizzle >> 2) & 0x3,
1211 (param->swizzle >> 4) & 0x3,
1212 (param->swizzle >> 6) & 0x3);
1214 switch (param->mod) {
1235 if (tx->native_integers && param->file == D3DSPR_CONSTBOOL) {
1276 assert(param->mod == NINED3DSPSM_NONE);
1284 _tx_dst_param(struct shader_translator *tx, const struct sm1_dst_param *param)
1288 switch (param->file)
1291 assert(!param->rel);
1292 tx_temp_alloc(tx, param->idx);
1293 dst = tx->regs.r[param->idx];
1297 assert(!param->rel);
1299 if (ureg_dst_is_undef(tx->regs.tS[param->idx]))
1300 tx->regs.tS[param->idx] = ureg_DECL_temporary(tx->ureg);
1301 dst = tx->regs.tS[param->idx];
1304 tx_texcoord_alloc(tx, param->idx);
1305 dst = ureg_dst(tx->regs.vT[param->idx]);
1307 tx_addr_alloc(tx, param->idx);
1312 assert(!param->rel);
1313 switch (param->idx) {
1339 assert(!param->rel);
1340 dst = ureg_DECL_output(tx->ureg, tx->texcoord_sn, param->idx);
1342 assert(!param->rel); /* TODO */
1343 assert(param->idx < ARRAY_SIZE(tx->regs.o));
1344 dst = tx->regs.o[param->idx];
1349 assert(param->idx >= 0 && param->idx < 4);
1350 assert(!param->rel);
1351 tx->info->rt_mask |= 1 << param->idx;
1352 if (ureg_dst_is_undef(tx->regs.oCol[param->idx])) {
1354 if (!IS_VS && tx->version.major < 3 && param->idx == 0) {
1357 tx->regs.oCol[param->idx] =
1358 ureg_DECL_output(tx->ureg, TGSI_SEMANTIC_COLOR, param->idx);
1361 dst = tx->regs.oCol[param->idx];
1366 assert(!param->rel);
1379 DBG("unhandled D3DSPR: %u\n", param->file);
1385 if (param->rel)
1386 dst = ureg_dst_indirect(dst, tx_src_param(tx, param->rel));
1388 if (param->mask != NINED3DSP_WRITEMASK_ALL)
1389 dst = ureg_writemask(dst, param->mask);
1390 if (param->mod & NINED3DSPDM_SATURATE)
1402 tx_dst_param(struct shader_translator *tx, const struct sm1_dst_param *param)
1404 if (param->shift) {
1405 tx->regs.tdst = ureg_writemask(tx_scratch(tx), param->mask);
1408 return _tx_dst_param(tx, param);
1432 tx_dst_param_as_src(struct shader_translator *tx, const struct sm1_dst_param *param)
1436 assert(!param->shift);
1437 assert(!(param->mod & NINED3DSPDM_SATURATE));
1439 switch (param->file) {
1442 src = ureg_src_register(TGSI_FILE_INPUT, param->idx);
1444 assert(!param->rel);
1445 assert(param->idx < ARRAY_SIZE(tx->regs.v));
1446 src = tx->regs.v[param->idx];
1450 src = ureg_src(tx_dst_param(tx, param));
1453 if (param->rel)
1454 src = ureg_src_indirect(src, tx_src_param(tx, param->rel));
1456 if (!param->mask)
1459 if (param->mask && param->mask != NINED3DSP_WRITEMASK_ALL) {
1464 if (param->mask & (1 << c))
3296 tx->parse_next = NULL; /* TODO: determine from param count */