All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] nv50/ir: saturate FRC result to avoid completely bogus values
@ 2014-11-18  4:03 Ilia Mirkin
       [not found] ` <1416283386-28170-1-git-send-email-imirkin-FrUbXkNCsVf2fBVCVOL8/A@public.gmane.org>
  0 siblings, 1 reply; 6+ messages in thread
From: Ilia Mirkin @ 2014-11-18  4:03 UTC (permalink / raw)
  To: mesa-dev-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

For values above integer accuracy in floats, val - floor(val) might
actually produce a value greater than 1. For such large floats, it's
reasonable to be imprecise, but it's unreasonable for FRC to return a
value that is not between 0 and 1.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
---
 src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 3 ++-
 1 file changed, 2 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..e5b767f 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
@@ -2512,7 +2512,8 @@ Converter::handleInstruction(const struct tgsi_full_instruction *insn)
          src0 = fetchSrc(0, c);
          val0 = getScratch();
          mkOp1(OP_FLOOR, TYPE_F32, val0, src0);
-         mkOp2(OP_SUB, TYPE_F32, dst0[c], src0, val0);
+         mkOp2(OP_SUB, TYPE_F32, val0, src0, val0);
+         mkOp1(OP_SAT, TYPE_F32, dst0[c], val0);
       }
       break;
    case TGSI_OPCODE_ROUND:
-- 
2.0.4

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-11-18 15:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-18  4:03 [PATCH] nv50/ir: saturate FRC result to avoid completely bogus values Ilia Mirkin
     [not found] ` <1416283386-28170-1-git-send-email-imirkin-FrUbXkNCsVf2fBVCVOL8/A@public.gmane.org>
2014-11-18 13:54   ` [Mesa-dev] " Roland Scheidegger
2014-11-18 14:05     ` Ilia Mirkin
2014-11-18 14:34       ` Roland Scheidegger
     [not found]         ` <546B58DD.3060202-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2014-11-18 14:53           ` [Mesa-dev] " Jose Fonseca
2014-11-18 15:03             ` Ilia Mirkin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.