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)
committerIlia Mirkin <imirkin@alum.mit.edu>
Thu, 24 Aug 2017 12:41:57 +0000 (08:41 -0400)
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
src/gallium/drivers/nouveau/codegen/nv50_ir.cpp

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