i965: Set SWIZZLE_NOOP for unused texture units in the program keys.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 14 Aug 2012 18:05:55 +0000 (11:05 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 25 Aug 2012 19:01:09 +0000 (12:01 -0700)
Previously, we left the swizzle key field as zero for unused texture
units.  The precompile sets all of them to SWIZZLE_NOOP, which meant
that we mismatched almost every time.

Since either works equally well, change it to SWIZZLE_NOOP to match
the precompiles.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_wm.c

index 6e5163b4af33f0b60de1e721ccd902b97bdbb254..ba6f8740e87bfa200b88fc477ef29359c7f17e98 100644 (file)
@@ -437,6 +437,8 @@ brw_populate_sampler_prog_key_data(struct gl_context *ctx,
                                   struct brw_sampler_prog_key_data *key)
 {
    for (int i = 0; i < BRW_MAX_TEX_UNIT; i++) {
+      key->swizzles[i] = SWIZZLE_NOOP;
+
       if (!prog->TexturesUsed[i])
         continue;
 
@@ -512,9 +514,6 @@ brw_populate_sampler_prog_key_data(struct gl_context *ctx,
               key->gl_clamp_mask[2] |= 1 << i;
         }
       }
-      else {
-        key->swizzles[i] = SWIZZLE_NOOP;
-      }
    }
 }