nv50: hack of a TEX opcode

This commit is contained in:
Ben Skeggs 2008-06-16 18:56:39 +10:00
parent bcbe6baac3
commit 431504b99c
2 changed files with 24 additions and 0 deletions

View file

@ -1134,6 +1134,25 @@ nv50_program_tx_insn(struct nv50_pc *pc, const union tgsi_full_token *tok)
}
break;
case TGSI_OPCODE_TEX:
{
struct nv50_reg *t0, *t1;
struct nv50_program_exec *e;
t0 = alloc_temp(pc, NULL);
t0 = alloc_temp(pc, NULL);
t1 = alloc_temp(pc, NULL);
emit_mov(pc, t0, src[0][0]);
emit_mov(pc, t1, src[0][1]);
e = exec(pc);
e->inst[0] = 0xf0400000;
set_long(pc, e);
e->inst[1] |= 0x0000c004;
set_dst(pc, t0, e);
emit(pc, e);
free_temp(pc, t0);
free_temp(pc, t1);
}
break;
case TGSI_OPCODE_XPD:
temp = alloc_temp(pc, NULL);

View file

@ -289,6 +289,11 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *nvws)
so_data (so, fui(0.0));
so_data (so, fui(1.0));
so_method(so, screen->tesla, 0x1234, 1);
so_data (so, 1);
so_method(so, screen->tesla, 0x1458, 1);
so_data (so, 1);
so_emit(nvws, so);
so_ref(NULL, &so);
nvws->push_flush(nvws, 0, NULL);