i965g: make sure blend color packet header is initialized
authorKeith Whitwell <keithw@vmware.com>
Fri, 6 Nov 2009 08:54:01 +0000 (08:54 +0000)
committerKeith Whitwell <keithw@vmware.com>
Fri, 6 Nov 2009 08:54:01 +0000 (08:54 +0000)
We will emit this packet at startup (dirty == ~0), even if we haven't
had the state tracker call into brw_set_blend_color() yet.

This way is a little more efficient also.

src/gallium/drivers/i965/brw_pipe_blend.c

index 872151222d598792207bbbd268d1bf5455036eea..b759a910b638bd08bebcc3103b1d1322ccd7e7b9 100644 (file)
@@ -177,9 +177,6 @@ static void brw_set_blend_color(struct pipe_context *pipe,
    struct brw_context *brw = brw_context(pipe);
    struct brw_blend_constant_color *bcc = &brw->curr.bcc;
 
-   memset(bcc, 0, sizeof(*bcc));      
-   bcc->header.opcode = CMD_BLEND_CONSTANT_COLOR;
-   bcc->header.length = sizeof(*bcc)/4-2;
    bcc->blend_constant_color[0] = blend_color->color[0];
    bcc->blend_constant_color[1] = blend_color->color[1];
    bcc->blend_constant_color[2] = blend_color->color[2];
@@ -195,6 +192,15 @@ void brw_pipe_blend_init( struct brw_context *brw )
    brw->base.create_blend_state = brw_create_blend_state;
    brw->base.bind_blend_state = brw_bind_blend_state;
    brw->base.delete_blend_state = brw_delete_blend_state;
+
+   {
+      struct brw_blend_constant_color *bcc = &brw->curr.bcc;
+
+      memset(bcc, 0, sizeof(*bcc));      
+      bcc->header.opcode = CMD_BLEND_CONSTANT_COLOR;
+      bcc->header.length = sizeof(*bcc)/4-2;
+   }
+
 }
 
 void brw_pipe_blend_cleanup( struct brw_context *brw )