r300-gallium: vs: Add SLT, clean up MAX.
This should be all the opcodes for basic TCL.
This commit is contained in:
@@ -137,6 +137,8 @@ static uint32_t r300_vs_op(unsigned op)
|
|||||||
return R300_VE_ADD;
|
return R300_VE_ADD;
|
||||||
case TGSI_OPCODE_MAX:
|
case TGSI_OPCODE_MAX:
|
||||||
return R300_VE_MAXIMUM;
|
return R300_VE_MAXIMUM;
|
||||||
|
case TGSI_OPCODE_SLT:
|
||||||
|
return R300_VE_SET_LESS_THAN;
|
||||||
case TGSI_OPCODE_RSQ:
|
case TGSI_OPCODE_RSQ:
|
||||||
return R300_PVS_DST_MATH_INST | R300_ME_RECIP_DX;
|
return R300_PVS_DST_MATH_INST | R300_ME_RECIP_DX;
|
||||||
case TGSI_OPCODE_MAD:
|
case TGSI_OPCODE_MAD:
|
||||||
@@ -232,6 +234,8 @@ static void r300_vs_instruction(struct r300_vertex_shader* vs,
|
|||||||
break;
|
break;
|
||||||
case TGSI_OPCODE_ADD:
|
case TGSI_OPCODE_ADD:
|
||||||
case TGSI_OPCODE_MUL:
|
case TGSI_OPCODE_MUL:
|
||||||
|
case TGSI_OPCODE_MAX:
|
||||||
|
case TGSI_OPCODE_SLT:
|
||||||
r300_vs_emit_inst(vs, assembler, inst->FullSrcRegisters,
|
r300_vs_emit_inst(vs, assembler, inst->FullSrcRegisters,
|
||||||
&inst->FullDstRegisters[0], inst->Instruction.Opcode,
|
&inst->FullDstRegisters[0], inst->Instruction.Opcode,
|
||||||
2, FALSE);
|
2, FALSE);
|
||||||
@@ -273,11 +277,6 @@ static void r300_vs_instruction(struct r300_vertex_shader* vs,
|
|||||||
&inst->FullDstRegisters[0], inst->Instruction.Opcode,
|
&inst->FullDstRegisters[0], inst->Instruction.Opcode,
|
||||||
2, FALSE);
|
2, FALSE);
|
||||||
break;
|
break;
|
||||||
case TGSI_OPCODE_MAX:
|
|
||||||
r300_vs_emit_inst(vs, assembler, inst->FullSrcRegisters,
|
|
||||||
&inst->FullDstRegisters[0], inst->Instruction.Opcode,
|
|
||||||
2, FALSE);
|
|
||||||
break;
|
|
||||||
case TGSI_OPCODE_MAD:
|
case TGSI_OPCODE_MAD:
|
||||||
r300_vs_emit_inst(vs, assembler, inst->FullSrcRegisters,
|
r300_vs_emit_inst(vs, assembler, inst->FullSrcRegisters,
|
||||||
&inst->FullDstRegisters[0], inst->Instruction.Opcode,
|
&inst->FullDstRegisters[0], inst->Instruction.Opcode,
|
||||||
|
@@ -36,6 +36,7 @@
|
|||||||
# define R300_VE_MULTIPLY 2
|
# define R300_VE_MULTIPLY 2
|
||||||
# define R300_VE_ADD 3
|
# define R300_VE_ADD 3
|
||||||
# define R300_VE_MAXIMUM 7
|
# define R300_VE_MAXIMUM 7
|
||||||
|
# define R300_VE_SET_LESS_THAN 10
|
||||||
#define R300_PVS_DST_MATH_INST (1 << 6)
|
#define R300_PVS_DST_MATH_INST (1 << 6)
|
||||||
# define R300_ME_RECIP_DX 6
|
# define R300_ME_RECIP_DX 6
|
||||||
#define R300_PVS_DST_MACRO_INST (1 << 7)
|
#define R300_PVS_DST_MACRO_INST (1 << 7)
|
||||||
|
Reference in New Issue
Block a user