Fill the padding between entrys in the sampler key
authorPierre Willenbrock <pierre@pirsoft.de>
Tue, 27 Apr 2010 21:16:47 +0000 (23:16 +0200)
committerEric Anholt <eric@anholt.net>
Wed, 28 Apr 2010 00:12:39 +0000 (17:12 -0700)
This struct is used to generate a hash, ignoring the entry boundaries.

Signed-off-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_wm_sampler_state.c

index d7650af3d9da634f68f1fb150a421a269b3c817b..1582ff1ab6593532e107bf51ce5ebdd7aa365733 100644 (file)
@@ -228,6 +228,8 @@ brw_wm_sampler_populate_key(struct brw_context *brw,
 {
    GLcontext *ctx = &brw->intel.ctx;
    int unit;
+   char *last_entry_end = ((char*)&key->sampler_count) + 
+      sizeof(key->sampler_count);
 
    key->sampler_count = 0;
 
@@ -240,7 +242,9 @@ brw_wm_sampler_populate_key(struct brw_context *brw,
         struct gl_texture_image *firstImage =
            texObj->Image[0][intelObj->firstLevel];
 
-        memset(entry, 0, sizeof(*entry));
+        memset(last_entry_end, 0, 
+               (char*)entry - last_entry_end + sizeof(*entry));
+        last_entry_end = ((char*)entry) + sizeof(*entry);
 
          entry->tex_target = texObj->Target;
 
@@ -280,6 +284,8 @@ brw_wm_sampler_populate_key(struct brw_context *brw,
         key->sampler_count = unit + 1;
       }
    }
+   struct wm_sampler_entry *entry = &key->sampler[key->sampler_count];
+   memset(last_entry_end, 0, (char*)entry - last_entry_end);
 }
 
 /* All samplers must be uploaded in a single contiguous array, which