OSDN Git Service

nv50/ir: properly set sType for TXF ops to U32
authorIlia Mirkin <imirkin@alum.mit.edu>
Thu, 24 Aug 2017 03:15:48 +0000 (23:15 -0400)
committerAndres Gomez <agomez@igalia.com>
Fri, 25 Aug 2017 13:03:37 +0000 (16:03 +0300)
All of the coordinates and LOD args are integers for TXF. This mostly
doesn't matter, except for converting into a levelZero=true operation by
removing an explicit zero LOD. For the comparison against zero to work
properly, the sType of the instruction has to be set correctly.

Fixes: KHR-GL45.robust_buffer_access_behavior.texel_fetch
Reported-by: Karol Herbst <karolherbst@gmail.com>
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
(cherry picked from commit 96be442b7795a6eb3d50f4061f2b98dddc39aa4d)

src/gallium/drivers/nouveau/codegen/nv50_ir.cpp

index b67a1dd..1a6f647 100644 (file)
@@ -905,6 +905,9 @@ TexInstruction::TexInstruction(Function *fn, operation op)
 
    tex.rIndirectSrc = -1;
    tex.sIndirectSrc = -1;
+
+   if (op == OP_TXF)
+      sType = TYPE_U32;
 }
 
 TexInstruction::~TexInstruction()