Mesa (master): cso_cache: Ensure irrelevant state of the blend state is zeroed.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Sat Apr 24 10:41:50 UTC 2010


Module: Mesa
Branch: master
Commit: 53499c64b212c68527f84f5e672cdfc95935f643
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=53499c64b212c68527f84f5e672cdfc95935f643

Author: José Fonseca <jfonseca at vmware.com>
Date:   Sat Apr 24 10:33:44 2010 +0100

cso_cache: Ensure irrelevant state of the blend state is zeroed.

Otherwise drivers that bake the full blend state in a key end up having
uninitialized memory in their key.

Courtesy of valgrind.

---

 src/gallium/auxiliary/cso_cache/cso_context.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/gallium/auxiliary/cso_cache/cso_context.c b/src/gallium/auxiliary/cso_cache/cso_context.c
index 6fd4bd3..6d0b420 100644
--- a/src/gallium/auxiliary/cso_cache/cso_context.c
+++ b/src/gallium/auxiliary/cso_cache/cso_context.c
@@ -349,6 +349,7 @@ enum pipe_error cso_set_blend(struct cso_context *ctx,
       if (!cso)
          return PIPE_ERROR_OUT_OF_MEMORY;
 
+      memset(&cso->state, 0, sizeof cso->state);
       memcpy(&cso->state, templ, key_size);
       cso->data = ctx->pipe->create_blend_state(ctx->pipe, &cso->state);
       cso->delete_state = (cso_state_callback)ctx->pipe->delete_blend_state;




More information about the mesa-commit mailing list