Mesa (10.4): nv50/ir/tgsi: handle TGSI_OPCODE_ARR

Emil Velikov evelikov at kemper.freedesktop.org
Wed Dec 3 23:44:47 UTC 2014


Module: Mesa
Branch: 10.4
Commit: f30fbbdbdd9c4e57b5ddce3d6726490c901b83fe
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f30fbbdbdd9c4e57b5ddce3d6726490c901b83fe

Author: Christoph Bumiller <christoph.bumiller at speed.at>
Date:   Thu Jul  4 14:19:18 2013 +0200

nv50/ir/tgsi: handle TGSI_OPCODE_ARR

This instruction is used by st/nine.

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
Cc: "10.4" <mesa-stable at lists.freedesktop.org>
(cherry picked from commit f3b4b263c2f08f641c42a02bf3c57c3da2fc0414)

---

 src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
index 41b91e8..9d1b16a 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
@@ -2343,9 +2343,12 @@ Converter::handleInstruction(const struct tgsi_full_instruction *insn)
          mkMov(dst0[c], val0);
       break;
    case TGSI_OPCODE_ARL:
+   case TGSI_OPCODE_ARR:
       FOR_EACH_DST_ENABLED_CHANNEL(0, c, tgsi) {
+         const RoundMode rnd =
+            tgsi.getOpcode() == TGSI_OPCODE_ARR ? ROUND_N : ROUND_M;
          src0 = fetchSrc(0, c);
-         mkCvt(OP_CVT, TYPE_S32, dst0[c], TYPE_F32, src0)->rnd = ROUND_M;
+         mkCvt(OP_CVT, TYPE_S32, dst0[c], TYPE_F32, src0)->rnd = rnd;
       }
       break;
    case TGSI_OPCODE_UARL:




More information about the mesa-commit mailing list