tgsi: pass zero vector to texture sampler for 1D case instead of NULL
authorBrian Paul <brianp@vmware.com>
Thu, 26 Mar 2009 14:40:07 +0000 (08:40 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 26 Mar 2009 14:40:07 +0000 (08:40 -0600)
Fixes segfault when sampling 1D textures.

src/gallium/auxiliary/tgsi/tgsi_exec.c

index ba807e498f18cdf07d44d7a1a634d178fef092c1..259877b500d7fa93d69caebac4edac09c7e6bff5 100644 (file)
 #define UPDATE_EXEC_MASK(MACH) \
       MACH->ExecMask = MACH->CondMask & MACH->LoopMask & MACH->ContMask & MACH->FuncMask
 
+
+static const union tgsi_exec_channel ZeroVec =
+   { { 0.0, 0.0, 0.0, 0.0 } };
+
 /**
  * Initialize machine state by expanding tokens to full instructions,
  * allocating temporary storage, setting up constants, etc.
@@ -1643,7 +1647,7 @@ exec_tex(struct tgsi_exec_machine *mach,
          lodBias = 0.0;
 
       fetch_texel(mach->Samplers[unit],
-                  &r[0], NULL, NULL, lodBias,  /* S, T, P, BIAS */
+                  &r[0], &ZeroVec, &ZeroVec, lodBias,  /* S, T, P, BIAS */
                   &r[0], &r[1], &r[2], &r[3]); /* R, G, B, A */
       break;