From 5ad17215405700accc2a2cde04a0023725633c57 Mon Sep 17 00:00:00 2001 From: Corbin Simpson Date: Mon, 16 Mar 2009 06:48:05 -0700 Subject: [PATCH] r300-gallium: r500-fs: Add ABS. --- src/gallium/drivers/r300/r300_state_shader.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/gallium/drivers/r300/r300_state_shader.c b/src/gallium/drivers/r300/r300_state_shader.c index 0a4f7c8d7e9..564acad83b3 100644 --- a/src/gallium/drivers/r300/r300_state_shader.c +++ b/src/gallium/drivers/r300/r300_state_shader.c @@ -398,6 +398,19 @@ static void r500_fs_instruction(struct r500_fragment_shader* fs, &inst->FullDstRegisters[0], inst->Instruction.Opcode, 3, false); break; + case TGSI_OPCODE_ABS: + r500_emit_maths(fs, assembler, inst->FullSrcRegisters, + &inst->FullDstRegisters[0], inst->Instruction.Opcode, 3, + false); + /* Set absolute value modifiers. */ + i = fs->instruction_count - 1; + fs->instructions[i].inst3 |= + R500_ALU_RGB_MOD_A_ABS | + R500_ALU_RGB_MOD_B_ABS; + fs->instructions[i].inst4 |= + R500_ALPHA_MOD_A_ABS | + R500_ALPHA_MOD_B_ABS; + break; case TGSI_OPCODE_MAD: r500_emit_maths(fs, assembler, inst->FullSrcRegisters, &inst->FullDstRegisters[0], inst->Instruction.Opcode, 3, -- 2.30.2