mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-10 22:40:27 +01:00
r300: Corrected a bug with the MAD instruction.
The PVS_VECTOR_OPCODE macro should be modified to support macro instructions, too.
This commit is contained in:
parent
c30cc5904d
commit
e239871d5b
2 changed files with 12 additions and 4 deletions
|
|
@ -2479,6 +2479,12 @@ enum {
|
|||
ME_PRED_SET_RESTORE = 28,
|
||||
};
|
||||
|
||||
enum {
|
||||
/* R3XX */
|
||||
PVS_MACRO_OP_2CLK_MADD = 0,
|
||||
PVS_MACRO_OP_2CLK_M2X_ADD = 1,
|
||||
};
|
||||
|
||||
enum {
|
||||
PVS_SRC_REG_TEMPORARY = 0, /* Intermediate Storage */
|
||||
PVS_SRC_REG_INPUT = 1, /* Input Vertex Storage */
|
||||
|
|
|
|||
|
|
@ -555,10 +555,12 @@ static GLuint *t_opcode_log(struct r300_vertex_program *vp, struct prog_instruct
|
|||
|
||||
static GLuint *t_opcode_mad(struct r300_vertex_program *vp, struct prog_instruction *vpi, GLuint * inst, struct prog_src_register src[3])
|
||||
{
|
||||
inst[0] = PVS_VECTOR_OPCODE(VE_MULTIPLY_ADD,
|
||||
t_dst_index(vp, &vpi->DstReg),
|
||||
t_dst_mask(vpi->DstReg.WriteMask),
|
||||
t_dst_class(vpi->DstReg.File));
|
||||
/* FIXME */
|
||||
inst[0] = (((PVS_MACRO_OP_2CLK_MADD & PVS_DST_OPCODE_MASK) << PVS_DST_OPCODE_SHIFT) |
|
||||
((1 & PVS_DST_MACRO_INST_MASK) << PVS_DST_MACRO_INST_SHIFT) |
|
||||
((t_dst_index(vp, &vpi->DstReg) & PVS_DST_OFFSET_MASK) << PVS_DST_OFFSET_SHIFT) |
|
||||
((t_dst_mask(vpi->DstReg.WriteMask) & 0xf) << PVS_DST_WE_X_SHIFT) |
|
||||
((t_dst_class(vpi->DstReg.File) & PVS_DST_REG_TYPE_MASK) << PVS_DST_REG_TYPE_SHIFT));
|
||||
inst[1] = t_src(vp, &src[0]);
|
||||
inst[2] = t_src(vp, &src[1]);
|
||||
inst[3] = t_src(vp, &src[2]);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue