Mesa (master): ilo: clean up 3D/media functions

Chia-I Wu olv at kemper.freedesktop.org
Mon Sep 15 02:26:46 UTC 2014


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

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Mon Sep 15 09:09:54 2014 +0800

ilo: clean up 3D/media functions

Mostly style changes to set dw[0] directly.

---

 src/gallium/drivers/ilo/ilo_builder_3d_bottom.h |  191 +++++++++++------------
 src/gallium/drivers/ilo/ilo_builder_3d_top.h    |  176 +++++++++++----------
 src/gallium/drivers/ilo/ilo_builder_media.h     |   26 ++-
 3 files changed, 188 insertions(+), 205 deletions(-)

diff --git a/src/gallium/drivers/ilo/ilo_builder_3d_bottom.h b/src/gallium/drivers/ilo/ilo_builder_3d_bottom.h
index 4d68acd..27279b3 100644
--- a/src/gallium/drivers/ilo/ilo_builder_3d_bottom.h
+++ b/src/gallium/drivers/ilo/ilo_builder_3d_bottom.h
@@ -45,7 +45,6 @@ gen6_3DSTATE_CLIP(struct ilo_builder *builder,
                   int num_viewports)
 {
    const uint8_t cmd_len = 4;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_CLIP) | (cmd_len - 2);
    uint32_t dw1, dw2, dw3, *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
@@ -78,7 +77,8 @@ gen6_3DSTATE_CLIP(struct ilo_builder *builder,
    }
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_CLIP) | (cmd_len - 2);
    dw[1] = dw1;
    dw[2] = dw2;
    dw[3] = dw3;
@@ -213,7 +213,6 @@ gen6_3DSTATE_SF(struct ilo_builder *builder,
                 const struct ilo_shader_state *fs)
 {
    const uint8_t cmd_len = 20;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_SF) | (cmd_len - 2);
    uint32_t payload_raster[6], payload_sbe[13], *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
@@ -224,7 +223,8 @@ gen6_3DSTATE_SF(struct ilo_builder *builder,
          fs, payload_sbe, Elements(payload_sbe));
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_SF) | (cmd_len - 2);
    dw[1] = payload_sbe[0];
    memcpy(&dw[2], payload_raster, sizeof(payload_raster));
    memcpy(&dw[8], &payload_sbe[1], sizeof(payload_sbe) - 4);
@@ -236,7 +236,6 @@ gen7_3DSTATE_SF(struct ilo_builder *builder,
                 enum pipe_format zs_format)
 {
    const uint8_t cmd_len = 7;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_SF) | (cmd_len - 2);
    const int num_samples = 1;
    uint32_t payload[6], *dw;
 
@@ -247,7 +246,8 @@ gen7_3DSTATE_SF(struct ilo_builder *builder,
          payload, Elements(payload));
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_SF) | (cmd_len - 2);
    memcpy(&dw[1], payload, sizeof(payload));
 }
 
@@ -257,7 +257,6 @@ gen7_3DSTATE_SBE(struct ilo_builder *builder,
                  const struct ilo_shader_state *fs)
 {
    const uint8_t cmd_len = 14;
-   const uint32_t dw0 = GEN7_RENDER_CMD(3D, 3DSTATE_SBE) | (cmd_len - 2);
    uint32_t payload[13], *dw;
 
    ILO_DEV_ASSERT(builder->dev, 7, 7.5);
@@ -266,7 +265,8 @@ gen7_3DSTATE_SBE(struct ilo_builder *builder,
          rasterizer, fs, payload, Elements(payload));
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN7_RENDER_CMD(3D, 3DSTATE_SBE) | (cmd_len - 2);
    memcpy(&dw[1], payload, sizeof(payload));
 }
 
@@ -469,7 +469,7 @@ gen6_3DSTATE_CONSTANT_PS(struct ilo_builder *builder,
 {
    const uint8_t cmd_len = 5;
    uint32_t buf_dw[4], buf_enabled;
-   uint32_t dw0, *dw;
+   uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
    assert(num_bufs <= 4);
@@ -483,12 +483,11 @@ gen6_3DSTATE_CONSTANT_PS(struct ilo_builder *builder,
    buf_enabled = gen6_fill_3dstate_constant(builder->dev,
          bufs, sizes, num_bufs, 64, buf_dw, Elements(buf_dw));
 
-   dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_CONSTANT_PS) |
-         buf_enabled << 12 |
-         (cmd_len - 2);
-
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_CONSTANT_PS) |
+           buf_enabled << 12 |
+           (cmd_len - 2);
    memcpy(&dw[1], buf_dw, sizeof(buf_dw));
 }
 
@@ -526,14 +525,12 @@ gen6_3DSTATE_MULTISAMPLE(struct ilo_builder *builder,
                          bool pixel_location_center)
 {
    const uint8_t cmd_len = (ilo_dev_gen(builder->dev) >= ILO_GEN(7)) ? 4 : 3;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_MULTISAMPLE) |
-                        (cmd_len - 2);
    uint32_t dw1, dw2, dw3, *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
 
-   dw1 = (pixel_location_center) ?
-      GEN6_MULTISAMPLE_DW1_PIXLOC_CENTER : GEN6_MULTISAMPLE_DW1_PIXLOC_UL_CORNER;
+   dw1 = (pixel_location_center) ? GEN6_MULTISAMPLE_DW1_PIXLOC_CENTER :
+      GEN6_MULTISAMPLE_DW1_PIXLOC_UL_CORNER;
 
    switch (num_samples) {
    case 0:
@@ -562,7 +559,8 @@ gen6_3DSTATE_MULTISAMPLE(struct ilo_builder *builder,
    }
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_MULTISAMPLE) | (cmd_len - 2);
    dw[1] = dw1;
    dw[2] = dw2;
    if (ilo_dev_gen(builder->dev) >= ILO_GEN(7))
@@ -574,8 +572,6 @@ gen6_3DSTATE_SAMPLE_MASK(struct ilo_builder *builder,
                          unsigned sample_mask)
 {
    const uint8_t cmd_len = 2;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_SAMPLE_MASK) |
-                        (cmd_len - 2);
    const unsigned valid_mask = 0xf;
    uint32_t *dw;
 
@@ -584,7 +580,8 @@ gen6_3DSTATE_SAMPLE_MASK(struct ilo_builder *builder,
    sample_mask &= valid_mask;
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_SAMPLE_MASK) | (cmd_len - 2);
    dw[1] = sample_mask;
 }
 
@@ -595,8 +592,6 @@ gen7_3DSTATE_SAMPLE_MASK(struct ilo_builder *builder,
 {
    const uint8_t cmd_len = 2;
    const unsigned valid_mask = ((1 << num_samples) - 1) | 0x1;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_SAMPLE_MASK) |
-                        (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 7, 7.5);
@@ -613,7 +608,8 @@ gen7_3DSTATE_SAMPLE_MASK(struct ilo_builder *builder,
    sample_mask &= valid_mask;
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_SAMPLE_MASK) | (cmd_len - 2);
    dw[1] = sample_mask;
 }
 
@@ -623,11 +619,9 @@ gen6_3DSTATE_DRAWING_RECTANGLE(struct ilo_builder *builder,
                                unsigned width, unsigned height)
 {
    const uint8_t cmd_len = 4;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_DRAWING_RECTANGLE) |
-                        (cmd_len - 2);
    unsigned xmax = x + width - 1;
    unsigned ymax = y + height - 1;
-   int rect_limit;
+   unsigned rect_limit;
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
@@ -654,10 +648,9 @@ gen6_3DSTATE_DRAWING_RECTANGLE(struct ilo_builder *builder,
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
 
-   dw[0] = dw0;
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_DRAWING_RECTANGLE) | (cmd_len - 2);
    dw[1] = y << 16 | x;
    dw[2] = ymax << 16 | xmax;
-
    /*
     * There is no need to set the origin.  It is intended to support front
     * buffer rendering.
@@ -670,16 +663,16 @@ gen6_3DSTATE_POLY_STIPPLE_OFFSET(struct ilo_builder *builder,
                                  int x_offset, int y_offset)
 {
    const uint8_t cmd_len = 2;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_POLY_STIPPLE_OFFSET) |
-                        (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
+
    assert(x_offset >= 0 && x_offset <= 31);
    assert(y_offset >= 0 && y_offset <= 31);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_POLY_STIPPLE_OFFSET) | (cmd_len - 2);
    dw[1] = x_offset << 8 | y_offset;
 }
 
@@ -688,18 +681,17 @@ gen6_3DSTATE_POLY_STIPPLE_PATTERN(struct ilo_builder *builder,
                                   const struct pipe_poly_stipple *pattern)
 {
    const uint8_t cmd_len = 33;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_POLY_STIPPLE_PATTERN) |
-                        (cmd_len - 2);
    uint32_t *dw;
    int i;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
-   STATIC_ASSERT(Elements(pattern->stipple) == 32);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_POLY_STIPPLE_PATTERN) | (cmd_len - 2);
    dw++;
 
+   STATIC_ASSERT(Elements(pattern->stipple) == 32);
    for (i = 0; i < 32; i++)
       dw[i] = pattern->stipple[i];
 }
@@ -709,28 +701,32 @@ gen6_3DSTATE_LINE_STIPPLE(struct ilo_builder *builder,
                           unsigned pattern, unsigned factor)
 {
    const uint8_t cmd_len = 3;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_LINE_STIPPLE) |
-                        (cmd_len - 2);
-   uint32_t *dw;
    unsigned inverse;
+   uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
+
    assert((pattern & 0xffff) == pattern);
    assert(factor >= 1 && factor <= 256);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_LINE_STIPPLE) | (cmd_len - 2);
    dw[1] = pattern;
 
    if (ilo_dev_gen(builder->dev) >= ILO_GEN(7)) {
       /* in U1.16 */
-      inverse = (unsigned) (65536.0f / factor);
-      dw[2] = inverse << 15 | factor;
+      inverse = 65536 / factor;
+
+      dw[2] = inverse << GEN7_LINE_STIPPLE_DW2_INVERSE_REPEAT_COUNT__SHIFT |
+              factor;
    }
    else {
       /* in U1.13 */
-      inverse = (unsigned) (8192.0f / factor);
-      dw[2] = inverse << 16 | factor;
+      inverse = 8192 / factor;
+
+      dw[2] = inverse << GEN6_LINE_STIPPLE_DW2_INVERSE_REPEAT_COUNT__SHIFT |
+              factor;
    }
 }
 
@@ -738,36 +734,38 @@ static inline void
 gen6_3DSTATE_AA_LINE_PARAMETERS(struct ilo_builder *builder)
 {
    const uint8_t cmd_len = 3;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_AA_LINE_PARAMETERS) |
-                        (cmd_len - 2);
-   uint32_t *dw;
+   const uint32_t dw[3] = {
+      GEN6_RENDER_CMD(3D, 3DSTATE_AA_LINE_PARAMETERS) | (cmd_len - 2),
+      0 << GEN6_AA_LINE_DW1_BIAS__SHIFT | 0,
+      0 << GEN6_AA_LINE_DW2_CAP_BIAS__SHIFT | 0,
+   };
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
 
-   ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
-   dw[1] = 0 << 16 | 0;
-   dw[2] = 0 << 16 | 0;
+   ilo_builder_batch_write(builder, cmd_len, dw);
 }
 
 static inline void
 gen6_3DSTATE_DEPTH_BUFFER(struct ilo_builder *builder,
                           const struct ilo_zs_surface *zs)
 {
+   const uint32_t cmd = (ilo_dev_gen(builder->dev) >= ILO_GEN(7)) ?
+      GEN7_RENDER_CMD(3D, 3DSTATE_DEPTH_BUFFER) :
+      GEN6_RENDER_CMD(3D, 3DSTATE_DEPTH_BUFFER);
    const uint8_t cmd_len = 7;
+   uint32_t *dw;
    unsigned pos;
-   uint32_t dw0, *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
 
-   dw0 = (ilo_dev_gen(builder->dev) >= ILO_GEN(7)) ?
-      GEN7_RENDER_CMD(3D, 3DSTATE_DEPTH_BUFFER) :
-      GEN6_RENDER_CMD(3D, 3DSTATE_DEPTH_BUFFER);
-   dw0 |= (cmd_len - 2);
-
    pos = ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = cmd | (cmd_len - 2);
    dw[1] = zs->payload[0];
+   dw[3] = zs->payload[2];
+   dw[4] = zs->payload[3];
+   dw[5] = zs->payload[4];
+   dw[6] = zs->payload[5];
 
    if (zs->bo) {
       ilo_builder_batch_reloc(builder, pos + 2,
@@ -775,30 +773,24 @@ gen6_3DSTATE_DEPTH_BUFFER(struct ilo_builder *builder,
    } else {
       dw[2] = 0;
    }
-
-   dw[3] = zs->payload[2];
-   dw[4] = zs->payload[3];
-   dw[5] = zs->payload[4];
-   dw[6] = zs->payload[5];
 }
 
 static inline void
 gen6_3DSTATE_STENCIL_BUFFER(struct ilo_builder *builder,
                             const struct ilo_zs_surface *zs)
 {
+   const uint32_t cmd = (ilo_dev_gen(builder->dev) >= ILO_GEN(7)) ?
+      GEN7_RENDER_CMD(3D, 3DSTATE_STENCIL_BUFFER) :
+      GEN6_RENDER_CMD(3D, 3DSTATE_STENCIL_BUFFER);
    const uint8_t cmd_len = 3;
-   uint32_t dw0, *dw;
+   uint32_t *dw;
    unsigned pos;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
 
-   dw0 = (ilo_dev_gen(builder->dev) >= ILO_GEN(7)) ?
-      GEN7_RENDER_CMD(3D, 3DSTATE_STENCIL_BUFFER) :
-      GEN6_RENDER_CMD(3D, 3DSTATE_STENCIL_BUFFER);
-   dw0 |= (cmd_len - 2);
-
    pos = ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = cmd | (cmd_len - 2);
    /* see ilo_gpe_init_zs_surface() */
    dw[1] = zs->payload[6];
 
@@ -814,19 +806,18 @@ static inline void
 gen6_3DSTATE_HIER_DEPTH_BUFFER(struct ilo_builder *builder,
                                const struct ilo_zs_surface *zs)
 {
+   const uint32_t cmd = (ilo_dev_gen(builder->dev) >= ILO_GEN(7)) ?
+      GEN7_RENDER_CMD(3D, 3DSTATE_HIER_DEPTH_BUFFER) :
+      GEN6_RENDER_CMD(3D, 3DSTATE_HIER_DEPTH_BUFFER);
    const uint8_t cmd_len = 3;
-   uint32_t dw0, *dw;
+   uint32_t *dw;
    unsigned pos;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
 
-   dw0 = (ilo_dev_gen(builder->dev) >= ILO_GEN(7)) ?
-      GEN7_RENDER_CMD(3D, 3DSTATE_HIER_DEPTH_BUFFER) :
-      GEN6_RENDER_CMD(3D, 3DSTATE_HIER_DEPTH_BUFFER);
-   dw0 |= (cmd_len - 2);
-
    pos = ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = cmd | (cmd_len - 2);
    /* see ilo_gpe_init_zs_surface() */
    dw[1] = zs->payload[8];
 
@@ -843,15 +834,15 @@ gen6_3DSTATE_CLEAR_PARAMS(struct ilo_builder *builder,
                           uint32_t clear_val)
 {
    const uint8_t cmd_len = 2;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_CLEAR_PARAMS) |
-                        GEN6_CLEAR_PARAMS_DW0_VALID |
-                        (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_CLEAR_PARAMS) |
+           GEN6_CLEAR_PARAMS_DW0_VALID |
+           (cmd_len - 2);
    dw[1] = clear_val;
 }
 
@@ -860,16 +851,15 @@ gen7_3DSTATE_CLEAR_PARAMS(struct ilo_builder *builder,
                           uint32_t clear_val)
 {
    const uint8_t cmd_len = 3;
-   const uint32_t dw0 = GEN7_RENDER_CMD(3D, 3DSTATE_CLEAR_PARAMS) |
-                        (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 7, 7.5);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN7_RENDER_CMD(3D, 3DSTATE_CLEAR_PARAMS) | (cmd_len - 2);
    dw[1] = clear_val;
-   dw[2] = 1;
+   dw[2] = GEN7_CLEAR_PARAMS_DW2_VALID;
 }
 
 static inline void
@@ -879,17 +869,17 @@ gen6_3DSTATE_VIEWPORT_STATE_POINTERS(struct ilo_builder *builder,
                                      uint32_t cc_viewport)
 {
    const uint8_t cmd_len = 4;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_VIEWPORT_STATE_POINTERS) |
-                        GEN6_PTR_VP_DW0_CLIP_CHANGED |
-                        GEN6_PTR_VP_DW0_SF_CHANGED |
-                        GEN6_PTR_VP_DW0_CC_CHANGED |
-                        (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_VIEWPORT_STATE_POINTERS) |
+           GEN6_PTR_VP_DW0_CLIP_CHANGED |
+           GEN6_PTR_VP_DW0_SF_CHANGED |
+           GEN6_PTR_VP_DW0_CC_CHANGED |
+           (cmd_len - 2);
    dw[1] = clip_viewport;
    dw[2] = sf_viewport;
    dw[3] = cc_viewport;
@@ -900,14 +890,14 @@ gen6_3DSTATE_SCISSOR_STATE_POINTERS(struct ilo_builder *builder,
                                     uint32_t scissor_rect)
 {
    const uint8_t cmd_len = 2;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_SCISSOR_STATE_POINTERS) |
-                        (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_SCISSOR_STATE_POINTERS) |
+           (cmd_len - 2);
    dw[1] = scissor_rect;
 }
 
@@ -918,17 +908,16 @@ gen6_3DSTATE_CC_STATE_POINTERS(struct ilo_builder *builder,
                                uint32_t color_calc_state)
 {
    const uint8_t cmd_len = 4;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_CC_STATE_POINTERS) |
-                        (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
-   dw[1] = blend_state | 1;
-   dw[2] = depth_stencil_state | 1;
-   dw[3] = color_calc_state | 1;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_CC_STATE_POINTERS) | (cmd_len - 2);
+   dw[1] = blend_state | GEN6_PTR_CC_DW1_BLEND_CHANGED;
+   dw[2] = depth_stencil_state | GEN6_PTR_CC_DW2_ZS_CHANGED;
+   dw[3] = color_calc_state | GEN6_PTR_CC_DW3_CC_CHANGED;
 }
 
 static inline void
diff --git a/src/gallium/drivers/ilo/ilo_builder_3d_top.h b/src/gallium/drivers/ilo/ilo_builder_3d_top.h
index 4e3dcff..8bce317 100644
--- a/src/gallium/drivers/ilo/ilo_builder_3d_top.h
+++ b/src/gallium/drivers/ilo/ilo_builder_3d_top.h
@@ -43,7 +43,6 @@ gen6_3DSTATE_URB(struct ilo_builder *builder,
                  int vs_entry_size, int gs_entry_size)
 {
    const uint8_t cmd_len = 3;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_URB) | (cmd_len - 2);
    const int row_size = 128; /* 1024 bits */
    int vs_alloc_size, gs_alloc_size;
    int vs_num_entries, gs_num_entries;
@@ -74,7 +73,8 @@ gen6_3DSTATE_URB(struct ilo_builder *builder,
       gs_num_entries = 256;
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_URB) | (cmd_len - 2);
    dw[1] = (vs_alloc_size - 1) << GEN6_URB_DW1_VS_ENTRY_SIZE__SHIFT |
            vs_num_entries << GEN6_URB_DW1_VS_ENTRY_COUNT__SHIFT;
    dw[2] = gs_num_entries << GEN6_URB_DW2_GS_ENTRY_COUNT__SHIFT |
@@ -85,10 +85,10 @@ static inline void
 gen7_3dstate_push_constant_alloc(struct ilo_builder *builder,
                                  int subop, int offset, int size)
 {
-   const uint8_t cmd_len = 2;
-   const uint32_t dw0 = GEN6_RENDER_TYPE_RENDER |
+   const uint32_t cmd = GEN6_RENDER_TYPE_RENDER |
                         GEN6_RENDER_SUBTYPE_3D |
-                        subop | (cmd_len - 2);
+                        subop;
+   const uint8_t cmd_len = 2;
    uint32_t *dw;
    int end;
 
@@ -137,7 +137,8 @@ gen7_3dstate_push_constant_alloc(struct ilo_builder *builder,
    }
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = cmd | (cmd_len - 2);
    dw[1] = offset << GEN7_PCB_ALLOC_ANY_DW1_OFFSET__SHIFT |
            size;
 }
@@ -187,10 +188,10 @@ gen7_3dstate_urb(struct ilo_builder *builder,
                  int subop, int offset, int size,
                  int entry_size)
 {
-   const uint8_t cmd_len = 2;
-   const uint32_t dw0 = GEN6_RENDER_TYPE_RENDER |
+   const uint32_t cmd = GEN6_RENDER_TYPE_RENDER |
                         GEN6_RENDER_SUBTYPE_3D |
-                        subop | (cmd_len - 2);
+                        subop;
+   const uint8_t cmd_len = 2;
    const int row_size = 64; /* 512 bits */
    int alloc_size, num_entries, min_entries, max_entries;
    uint32_t *dw;
@@ -269,7 +270,8 @@ gen7_3dstate_urb(struct ilo_builder *builder,
    }
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = cmd | (cmd_len - 2);
    dw[1] = offset << GEN7_URB_ANY_DW1_OFFSET__SHIFT |
            (alloc_size - 1) << GEN7_URB_ANY_DW1_ENTRY_SIZE__SHIFT |
            num_entries;
@@ -313,16 +315,16 @@ gen7_3DSTATE_VF(struct ilo_builder *builder,
                 uint32_t cut_index)
 {
    const uint8_t cmd_len = 2;
-   uint32_t dw0 = GEN75_RENDER_CMD(3D, 3DSTATE_VF) | (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 7.5, 7.5);
 
+   ilo_builder_batch_pointer(builder, cmd_len, &dw);
+
+   dw[0] = GEN75_RENDER_CMD(3D, 3DSTATE_VF) | (cmd_len - 2);
    if (enable_cut_index)
-      dw0 |= GEN75_VF_DW0_CUT_INDEX_ENABLE;
+      dw[0] |= GEN75_VF_DW0_CUT_INDEX_ENABLE;
 
-   ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
    dw[1] = cut_index;
 }
 
@@ -345,8 +347,8 @@ gen6_3DSTATE_VERTEX_BUFFERS(struct ilo_builder *builder,
                             const struct ilo_vb_state *vb)
 {
    uint8_t cmd_len;
-   uint32_t dw0, *dw;
-   unsigned hw_idx, pos;
+   uint32_t *dw;
+   unsigned pos, hw_idx;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
 
@@ -361,14 +363,12 @@ gen6_3DSTATE_VERTEX_BUFFERS(struct ilo_builder *builder,
       return;
 
    cmd_len = 1 + 4 * ve->vb_count;
-   dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_VERTEX_BUFFERS) |
-         (cmd_len - 2);
-
    pos = ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
 
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_VERTEX_BUFFERS) | (cmd_len - 2);
    dw++;
    pos++;
+
    for (hw_idx = 0; hw_idx < ve->vb_count; hw_idx++) {
       const unsigned instance_divisor = ve->instance_divisors[hw_idx];
       const unsigned pipe_idx = ve->vb_mapping[hw_idx];
@@ -480,7 +480,7 @@ gen6_3DSTATE_VERTEX_ELEMENTS(struct ilo_builder *builder,
                              bool prepend_generated_ids)
 {
    uint8_t cmd_len;
-   uint32_t dw0, *dw;
+   uint32_t *dw;
    unsigned i;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
@@ -505,22 +505,18 @@ gen6_3DSTATE_VERTEX_ELEMENTS(struct ilo_builder *builder,
             &dummy);
 
       cmd_len = 3;
-      dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_VERTEX_ELEMENTS) |
-            (cmd_len - 2);
 
       ilo_builder_batch_pointer(builder, cmd_len, &dw);
-      dw[0] = dw0;
+      dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_VERTEX_ELEMENTS) | (cmd_len - 2);
       memcpy(&dw[1], dummy.payload, sizeof(dummy.payload));
 
       return;
    }
 
    cmd_len = 2 * (ve->count + prepend_generated_ids) + 1;
-   dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_VERTEX_ELEMENTS) |
-         (cmd_len - 2);
-
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_VERTEX_ELEMENTS) | (cmd_len - 2);
    dw++;
 
    if (prepend_generated_ids) {
@@ -561,8 +557,8 @@ gen6_3DSTATE_INDEX_BUFFER(struct ilo_builder *builder,
    struct ilo_buffer *buf = ilo_buffer(ib->hw_resource);
    uint32_t start_offset, end_offset;
    int format;
+   uint32_t *dw;
    unsigned pos;
-   uint32_t dw0, *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 7.5);
 
@@ -600,14 +596,14 @@ gen6_3DSTATE_INDEX_BUFFER(struct ilo_builder *builder,
    end_offset -= (end_offset % ib->hw_index_size);
    end_offset--;
 
-   dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_INDEX_BUFFER) |
-         format |
-         (cmd_len - 2);
+   pos = ilo_builder_batch_pointer(builder, cmd_len, &dw);
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_INDEX_BUFFER) |
+           format |
+           (cmd_len - 2);
    if (enable_cut_index)
-      dw0 |= GEN6_IB_DW0_CUT_INDEX_ENABLE;
+      dw[0] |= GEN6_IB_DW0_CUT_INDEX_ENABLE;
 
-   pos = ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
    ilo_builder_batch_reloc(builder, pos + 1, buf->bo, start_offset, 0);
    ilo_builder_batch_reloc(builder, pos + 2, buf->bo, end_offset, 0);
 }
@@ -658,7 +654,6 @@ gen7_3DSTATE_HS(struct ilo_builder *builder,
                 int num_samplers)
 {
    const uint8_t cmd_len = 7;
-   const uint32_t dw0 = GEN7_RENDER_CMD(3D, 3DSTATE_HS) | (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 7, 7.5);
@@ -666,7 +661,8 @@ gen7_3DSTATE_HS(struct ilo_builder *builder,
    assert(!hs);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN7_RENDER_CMD(3D, 3DSTATE_HS) | (cmd_len - 2);
    dw[1] = 0;
    dw[2] = 0;
    dw[3] = 0;
@@ -679,13 +675,13 @@ static inline void
 gen7_3DSTATE_TE(struct ilo_builder *builder)
 {
    const uint8_t cmd_len = 4;
-   const uint32_t dw0 = GEN7_RENDER_CMD(3D, 3DSTATE_TE) | (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 7, 7.5);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN7_RENDER_CMD(3D, 3DSTATE_TE) | (cmd_len - 2);
    dw[1] = 0;
    dw[2] = 0;
    dw[3] = 0;
@@ -697,7 +693,6 @@ gen7_3DSTATE_DS(struct ilo_builder *builder,
                 int num_samplers)
 {
    const uint8_t cmd_len = 6;
-   const uint32_t dw0 = GEN7_RENDER_CMD(3D, 3DSTATE_DS) | (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 7, 7.5);
@@ -705,7 +700,8 @@ gen7_3DSTATE_DS(struct ilo_builder *builder,
    assert(!ds);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN7_RENDER_CMD(3D, 3DSTATE_DS) | (cmd_len - 2);
    dw[1] = 0;
    dw[2] = 0;
    dw[3] = 0;
@@ -720,7 +716,6 @@ gen6_3DSTATE_GS(struct ilo_builder *builder,
                 int verts_per_prim)
 {
    const uint8_t cmd_len = 7;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_GS) | (cmd_len - 2);
    uint32_t dw1, dw2, dw4, dw5, dw6, *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
@@ -771,7 +766,8 @@ gen6_3DSTATE_GS(struct ilo_builder *builder,
    }
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_GS) | (cmd_len - 2);
    dw[1] = dw1;
    dw[2] = dw2;
    dw[3] = 0;
@@ -787,20 +783,19 @@ gen6_3DSTATE_GS_SVB_INDEX(struct ilo_builder *builder,
                           bool load_vertex_count)
 {
    const uint8_t cmd_len = 4;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_GS_SVB_INDEX) |
-                        (cmd_len - 2);
-   uint32_t dw1, *dw;
+   uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
    assert(index >= 0 && index < 4);
 
-   dw1 = index << GEN6_SVBI_DW1_INDEX__SHIFT;
+   ilo_builder_batch_pointer(builder, cmd_len, &dw);
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_GS_SVB_INDEX) | (cmd_len - 2);
+
+   dw[1] = index << GEN6_SVBI_DW1_INDEX__SHIFT;
    if (load_vertex_count)
-      dw1 |= GEN6_SVBI_DW1_LOAD_INTERNAL_VERTEX_COUNT;
+      dw[1] |= GEN6_SVBI_DW1_LOAD_INTERNAL_VERTEX_COUNT;
 
-   ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
-   dw[1] = dw1;
    dw[2] = svbi;
    dw[3] = max_svbi;
 }
@@ -837,6 +832,7 @@ gen7_3DSTATE_GS(struct ilo_builder *builder,
    dw2 |= ((num_samplers + 3) / 4) << GEN6_THREADDISP_SAMPLER_COUNT__SHIFT;
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
+
    dw[0] = dw0;
    dw[1] = ilo_shader_get_kernel_offset(gs);
    dw[2] = dw2;
@@ -901,6 +897,7 @@ gen7_3DSTATE_STREAMOUT(struct ilo_builder *builder,
          (read_len - 1) << GEN7_SO_DW2_STREAM0_READ_LEN__SHIFT;
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
+
    dw[0] = dw0;
    dw[1] = dw1;
    dw[2] = dw2;
@@ -911,9 +908,9 @@ gen7_3DSTATE_SO_DECL_LIST(struct ilo_builder *builder,
                           const struct pipe_stream_output_info *so_info)
 {
    uint16_t cmd_len;
-   uint32_t dw0, *dw;
    int buffer_selects, num_entries, i;
    uint16_t so_decls[128];
+   uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 7, 7.5);
 
@@ -972,10 +969,10 @@ gen7_3DSTATE_SO_DECL_LIST(struct ilo_builder *builder,
     * of cmd_len is thus uint16_t.
     */
    cmd_len = 2 * 128 + 3;
-   dw0 = GEN7_RENDER_CMD(3D, 3DSTATE_SO_DECL_LIST) | (cmd_len - 2);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN7_RENDER_CMD(3D, 3DSTATE_SO_DECL_LIST) | (cmd_len - 2);
    dw[1] = 0 << GEN7_SO_DECL_DW1_STREAM3_BUFFER_SELECTS__SHIFT |
            0 << GEN7_SO_DECL_DW1_STREAM2_BUFFER_SELECTS__SHIFT |
            0 << GEN7_SO_DECL_DW1_STREAM1_BUFFER_SELECTS__SHIFT |
@@ -1008,8 +1005,8 @@ gen7_3DSTATE_SO_BUFFER(struct ilo_builder *builder,
                         (cmd_len - 2);
    struct ilo_buffer *buf;
    int end;
-   unsigned pos;
    uint32_t *dw;
+   unsigned pos;
 
    ILO_DEV_ASSERT(builder->dev, 7, 7.5);
 
@@ -1034,6 +1031,7 @@ gen7_3DSTATE_SO_BUFFER(struct ilo_builder *builder,
    end = (base + so_target->buffer_size) & ~3;
 
    pos = ilo_builder_batch_pointer(builder, cmd_len, &dw);
+
    dw[0] = dw0;
    dw[1] = index << GEN7_SO_BUF_DW1_INDEX__SHIFT |
            stride;
@@ -1051,17 +1049,17 @@ gen6_3DSTATE_BINDING_TABLE_POINTERS(struct ilo_builder *builder,
                                     uint32_t ps_binding_table)
 {
    const uint8_t cmd_len = 4;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_BINDING_TABLE_POINTERS) |
-                        GEN6_PTR_BINDING_TABLE_DW0_VS_CHANGED |
-                        GEN6_PTR_BINDING_TABLE_DW0_GS_CHANGED |
-                        GEN6_PTR_BINDING_TABLE_DW0_PS_CHANGED |
-                        (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_BINDING_TABLE_POINTERS) |
+           GEN6_PTR_BINDING_TABLE_DW0_VS_CHANGED |
+           GEN6_PTR_BINDING_TABLE_DW0_GS_CHANGED |
+           GEN6_PTR_BINDING_TABLE_DW0_PS_CHANGED |
+           (cmd_len - 2);
    dw[1] = vs_binding_table;
    dw[2] = gs_binding_table;
    dw[3] = ps_binding_table;
@@ -1074,17 +1072,17 @@ gen6_3DSTATE_SAMPLER_STATE_POINTERS(struct ilo_builder *builder,
                                     uint32_t ps_sampler_state)
 {
    const uint8_t cmd_len = 4;
-   const uint32_t dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_SAMPLER_STATE_POINTERS) |
-                        GEN6_PTR_SAMPLER_DW0_VS_CHANGED |
-                        GEN6_PTR_SAMPLER_DW0_GS_CHANGED |
-                        GEN6_PTR_SAMPLER_DW0_PS_CHANGED |
-                        (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_SAMPLER_STATE_POINTERS) |
+           GEN6_PTR_SAMPLER_DW0_VS_CHANGED |
+           GEN6_PTR_SAMPLER_DW0_GS_CHANGED |
+           GEN6_PTR_SAMPLER_DW0_PS_CHANGED |
+           (cmd_len - 2);
    dw[1] = vs_sampler_state;
    dw[2] = gs_sampler_state;
    dw[3] = ps_sampler_state;
@@ -1094,16 +1092,17 @@ static inline void
 gen7_3dstate_pointer(struct ilo_builder *builder,
                      int subop, uint32_t pointer)
 {
-   const uint8_t cmd_len = 2;
-   const uint32_t dw0 = GEN6_RENDER_TYPE_RENDER |
+   const uint32_t cmd = GEN6_RENDER_TYPE_RENDER |
                         GEN6_RENDER_SUBTYPE_3D |
-                        subop | (cmd_len - 2);
+                        subop;
+   const uint8_t cmd_len = 2;
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 7, 7.5);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = cmd | (cmd_len - 2);
    dw[1] = pointer;
 }
 
@@ -1220,10 +1219,10 @@ gen6_3DSTATE_CONSTANT_VS(struct ilo_builder *builder,
                          int num_bufs)
 {
    const uint8_t cmd_len = 5;
-   uint32_t buf_dw[4], buf_enabled;
-   uint32_t dw0, *dw;
+   uint32_t buf_dw[4], buf_enabled, *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
+
    assert(num_bufs <= 4);
 
    /*
@@ -1235,12 +1234,11 @@ gen6_3DSTATE_CONSTANT_VS(struct ilo_builder *builder,
    buf_enabled = gen6_fill_3dstate_constant(builder->dev,
          bufs, sizes, num_bufs, 32, buf_dw, Elements(buf_dw));
 
-   dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_CONSTANT_VS) |
-         buf_enabled << 12 |
-         (cmd_len - 2);
-
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_CONSTANT_VS) |
+           buf_enabled << 12 |
+           (cmd_len - 2);
    memcpy(&dw[1], buf_dw, sizeof(buf_dw));
 }
 
@@ -1250,10 +1248,10 @@ gen6_3DSTATE_CONSTANT_GS(struct ilo_builder *builder,
                          int num_bufs)
 {
    const uint8_t cmd_len = 5;
-   uint32_t buf_dw[4], buf_enabled;
-   uint32_t dw0, *dw;
+   uint32_t buf_dw[4], buf_enabled, *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
+
    assert(num_bufs <= 4);
 
    /*
@@ -1265,12 +1263,11 @@ gen6_3DSTATE_CONSTANT_GS(struct ilo_builder *builder,
    buf_enabled = gen6_fill_3dstate_constant(builder->dev,
          bufs, sizes, num_bufs, 64, buf_dw, Elements(buf_dw));
 
-   dw0 = GEN6_RENDER_CMD(3D, 3DSTATE_CONSTANT_GS) |
-         buf_enabled << 12 |
-         (cmd_len - 2);
-
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(3D, 3DSTATE_CONSTANT_GS) |
+           buf_enabled << 12 |
+           (cmd_len - 2);
    memcpy(&dw[1], buf_dw, sizeof(buf_dw));
 }
 
@@ -1280,10 +1277,10 @@ gen7_3dstate_constant(struct ilo_builder *builder,
                       const uint32_t *bufs, const int *sizes,
                       int num_bufs)
 {
-   const uint8_t cmd_len = 7;
-   const uint32_t dw0 = GEN6_RENDER_TYPE_RENDER |
+   const uint32_t cmd = GEN6_RENDER_TYPE_RENDER |
                         GEN6_RENDER_SUBTYPE_3D |
-                        subop | (cmd_len - 2);
+                        subop;
+   const uint8_t cmd_len = 7;
    uint32_t payload[6], *dw;
    int total_read_length, i;
 
@@ -1340,7 +1337,8 @@ gen7_3dstate_constant(struct ilo_builder *builder,
    assert(total_read_length <= 64);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = cmd | (cmd_len - 2);
    memcpy(&dw[1], payload, sizeof(payload));
 }
 
diff --git a/src/gallium/drivers/ilo/ilo_builder_media.h b/src/gallium/drivers/ilo/ilo_builder_media.h
index 8b29633..3a32631 100644
--- a/src/gallium/drivers/ilo/ilo_builder_media.h
+++ b/src/gallium/drivers/ilo/ilo_builder_media.h
@@ -40,8 +40,6 @@ gen6_MEDIA_VFE_STATE(struct ilo_builder *builder,
                      int urb_entry_size)
 {
    const uint8_t cmd_len = 8;
-   const uint32_t dw0 = GEN6_RENDER_CMD(MEDIA, MEDIA_VFE_STATE) |
-                        (cmd_len - 2);
    uint32_t dw2, dw4, *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
@@ -55,7 +53,8 @@ gen6_MEDIA_VFE_STATE(struct ilo_builder *builder,
          480;                    /* CURBE Allocation Size */
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(MEDIA, MEDIA_VFE_STATE) | (cmd_len - 2);
    dw[1] = 0; /* scratch */
    dw[2] = dw2;
    dw[3] = 0; /* MBZ */
@@ -70,8 +69,6 @@ gen6_MEDIA_CURBE_LOAD(struct ilo_builder *builder,
                      uint32_t buf, int size)
 {
    const uint8_t cmd_len = 4;
-   const uint32_t dw0 = GEN6_RENDER_CMD(MEDIA, MEDIA_CURBE_LOAD) |
-                        (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
@@ -81,7 +78,8 @@ gen6_MEDIA_CURBE_LOAD(struct ilo_builder *builder,
    size = align(size, 32);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(MEDIA, MEDIA_CURBE_LOAD) | (cmd_len - 2);
    dw[1] = 0; /* MBZ */
    dw[2] = size;
    dw[3] = buf;
@@ -92,8 +90,6 @@ gen6_MEDIA_INTERFACE_DESCRIPTOR_LOAD(struct ilo_builder *builder,
                                      uint32_t offset, int num_ids)
 {
    const uint8_t cmd_len = 4;
-   const uint32_t dw0 =
-      GEN6_RENDER_CMD(MEDIA, MEDIA_INTERFACE_DESCRIPTOR_LOAD) | (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
@@ -101,7 +97,9 @@ gen6_MEDIA_INTERFACE_DESCRIPTOR_LOAD(struct ilo_builder *builder,
    assert(offset % 32 == 0);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(MEDIA, MEDIA_INTERFACE_DESCRIPTOR_LOAD) |
+           (cmd_len - 2);
    dw[1] = 0; /* MBZ */
    /* every ID has 8 DWords */
    dw[2] = num_ids * 8 * 4;
@@ -113,14 +111,13 @@ gen6_MEDIA_GATEWAY_STATE(struct ilo_builder *builder,
                          int id, int byte, int thread_count)
 {
    const uint8_t cmd_len = 2;
-   const uint32_t dw0 = GEN6_RENDER_CMD(MEDIA, MEDIA_GATEWAY_STATE) |
-                        (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(MEDIA, MEDIA_GATEWAY_STATE) | (cmd_len - 2);
    dw[1] = id << 16 |
            byte << 8 |
            thread_count;
@@ -132,14 +129,13 @@ gen6_MEDIA_STATE_FLUSH(struct ilo_builder *builder,
                        int barrier_mask)
 {
    const uint8_t cmd_len = 2;
-   const uint32_t dw0 = GEN6_RENDER_CMD(MEDIA, MEDIA_STATE_FLUSH) |
-                        (cmd_len - 2);
    uint32_t *dw;
 
    ILO_DEV_ASSERT(builder->dev, 6, 6);
 
    ilo_builder_batch_pointer(builder, cmd_len, &dw);
-   dw[0] = dw0;
+
+   dw[0] = GEN6_RENDER_CMD(MEDIA, MEDIA_STATE_FLUSH) | (cmd_len - 2);
    dw[1] = thread_count_water_mark << 16 |
            barrier_mask;
 }




More information about the mesa-commit mailing list