vk/0.210.0: Rework texture view component mapping
[mesa.git] / src / vulkan / gen7_pack.h
index 34203d1d8201fb2893c0dc00a2f63e3b4f5dcebd..5f2dbc470ec406015efd6f0d89c4e85c888119ca 100644 (file)
 #include <stdio.h>
 #include <assert.h>
 
+#ifndef __gen_validate_value
+#define __gen_validate_value(x)
+#endif
+
 #ifndef __gen_field_functions
 #define __gen_field_functions
 
@@ -40,9 +44,16 @@ union __gen_value {
    uint32_t dw;
 };
 
+static inline uint64_t
+__gen_mbo(uint32_t start, uint32_t end)
+{
+   return (~0ul >> (64 - (end - start + 1))) << start;
+}
+
 static inline uint64_t
 __gen_field(uint64_t v, uint32_t start, uint32_t end)
 {
+   __gen_validate_value(v);
 #if DEBUG
    if (end - start + 1 < 64)
       assert(v < 1ul << (end - start + 1));
@@ -54,6 +65,7 @@ __gen_field(uint64_t v, uint32_t start, uint32_t end)
 static inline uint64_t
 __gen_offset(uint64_t v, uint32_t start, uint32_t end)
 {
+   __gen_validate_value(v);
 #if DEBUG
    uint64_t mask = (~0ul >> (64 - (end - start + 1))) << start;
 
@@ -66,6 +78,7 @@ __gen_offset(uint64_t v, uint32_t start, uint32_t end)
 static inline uint32_t
 __gen_float(float v)
 {
+   __gen_validate_value(v);
    return ((union __gen_value) { .f = (v) }).dw;
 }
 
@@ -79,7 +92,6 @@ __gen_float(float v)
 
 #endif
 
-#define GEN7_3DSTATE_URB_VS_length 0x00000002
 #define GEN7_3DSTATE_URB_VS_length_bias 0x00000002
 #define GEN7_3DSTATE_URB_VS_header              \
    .CommandType          =  3,                  \
@@ -88,6 +100,8 @@ __gen_float(float v)
    ._3DCommandSubOpcode  = 48,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_URB_VS_length 0x00000002
+
 struct GEN7_3DSTATE_URB_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -101,7 +115,7 @@ struct GEN7_3DSTATE_URB_VS {
 
 static inline void
 GEN7_3DSTATE_URB_VS_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN7_3DSTATE_URB_VS * restrict values)
+                         const struct GEN7_3DSTATE_URB_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -121,17 +135,18 @@ GEN7_3DSTATE_URB_VS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_STORE_REGISTER_MEM_length 0x00000003
 #define GEN7_MI_STORE_REGISTER_MEM_length_bias 0x00000002
 #define GEN7_MI_STORE_REGISTER_MEM_header       \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 36,                  \
    .DwordLength          =  1
 
+#define GEN7_MI_STORE_REGISTER_MEM_length 0x00000003
+
 struct GEN7_MI_STORE_REGISTER_MEM {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     UseGlobalGTT;
+   bool                                         UseGlobalGTT;
    uint32_t                                     DwordLength;
    uint32_t                                     RegisterAddress;
    __gen_address_type                           MemoryAddress;
@@ -139,7 +154,7 @@ struct GEN7_MI_STORE_REGISTER_MEM {
 
 static inline void
 GEN7_MI_STORE_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst,
-                               const struct GEN7_MI_STORE_REGISTER_MEM * restrict values)
+                                const struct GEN7_MI_STORE_REGISTER_MEM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -162,7 +177,6 @@ GEN7_MI_STORE_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_PIPELINE_SELECT_length 0x00000001
 #define GEN7_PIPELINE_SELECT_length_bias 0x00000001
 #define GEN7_PIPELINE_SELECT_header             \
    .CommandType          =  3,                  \
@@ -170,6 +184,8 @@ GEN7_MI_STORE_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  1,                  \
    ._3DCommandSubOpcode  =  4
 
+#define GEN7_PIPELINE_SELECT_length 0x00000001
+
 struct GEN7_PIPELINE_SELECT {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -183,7 +199,7 @@ struct GEN7_PIPELINE_SELECT {
 
 static inline void
 GEN7_PIPELINE_SELECT_pack(__gen_user_data *data, void * restrict dst,
-                         const struct GEN7_PIPELINE_SELECT * restrict values)
+                          const struct GEN7_PIPELINE_SELECT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -197,7 +213,6 @@ GEN7_PIPELINE_SELECT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_STATE_BASE_ADDRESS_length 0x0000000a
 #define GEN7_STATE_BASE_ADDRESS_length_bias 0x00000002
 #define GEN7_STATE_BASE_ADDRESS_header          \
    .CommandType          =  3,                  \
@@ -206,6 +221,10 @@ GEN7_PIPELINE_SELECT_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  1,                  \
    .DwordLength          =  8
 
+#define GEN7_STATE_BASE_ADDRESS_length 0x0000000a
+
+#define GEN7_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
+
 struct GEN7_MEMORY_OBJECT_CONTROL_STATE {
    uint32_t                                     GraphicsDataTypeGFDT;
    uint32_t                                     LLCCacheabilityControlLLCCC;
@@ -214,7 +233,7 @@ struct GEN7_MEMORY_OBJECT_CONTROL_STATE {
 
 static inline void
 GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data *data, void * restrict dst,
-                                     const struct GEN7_MEMORY_OBJECT_CONTROL_STATE * restrict values)
+                                      const struct GEN7_MEMORY_OBJECT_CONTROL_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -236,32 +255,32 @@ struct GEN7_STATE_BASE_ADDRESS {
    struct GEN7_MEMORY_OBJECT_CONTROL_STATE      GeneralStateMemoryObjectControlState;
    struct GEN7_MEMORY_OBJECT_CONTROL_STATE      StatelessDataPortAccessMemoryObjectControlState;
    uint32_t                                     StatelessDataPortAccessForceWriteThru;
-   uint32_t                                     GeneralStateBaseAddressModifyEnable;
+   bool                                         GeneralStateBaseAddressModifyEnable;
    __gen_address_type                           SurfaceStateBaseAddress;
    struct GEN7_MEMORY_OBJECT_CONTROL_STATE      SurfaceStateMemoryObjectControlState;
-   uint32_t                                     SurfaceStateBaseAddressModifyEnable;
+   bool                                         SurfaceStateBaseAddressModifyEnable;
    __gen_address_type                           DynamicStateBaseAddress;
    struct GEN7_MEMORY_OBJECT_CONTROL_STATE      DynamicStateMemoryObjectControlState;
-   uint32_t                                     DynamicStateBaseAddressModifyEnable;
+   bool                                         DynamicStateBaseAddressModifyEnable;
    __gen_address_type                           IndirectObjectBaseAddress;
    struct GEN7_MEMORY_OBJECT_CONTROL_STATE      IndirectObjectMemoryObjectControlState;
-   uint32_t                                     IndirectObjectBaseAddressModifyEnable;
+   bool                                         IndirectObjectBaseAddressModifyEnable;
    __gen_address_type                           InstructionBaseAddress;
    struct GEN7_MEMORY_OBJECT_CONTROL_STATE      InstructionMemoryObjectControlState;
-   uint32_t                                     InstructionBaseAddressModifyEnable;
+   bool                                         InstructionBaseAddressModifyEnable;
    __gen_address_type                           GeneralStateAccessUpperBound;
-   uint32_t                                     GeneralStateAccessUpperBoundModifyEnable;
+   bool                                         GeneralStateAccessUpperBoundModifyEnable;
    __gen_address_type                           DynamicStateAccessUpperBound;
-   uint32_t                                     DynamicStateAccessUpperBoundModifyEnable;
+   bool                                         DynamicStateAccessUpperBoundModifyEnable;
    __gen_address_type                           IndirectObjectAccessUpperBound;
-   uint32_t                                     IndirectObjectAccessUpperBoundModifyEnable;
+   bool                                         IndirectObjectAccessUpperBoundModifyEnable;
    __gen_address_type                           InstructionAccessUpperBound;
-   uint32_t                                     InstructionAccessUpperBoundModifyEnable;
+   bool                                         InstructionAccessUpperBoundModifyEnable;
 };
 
 static inline void
 GEN7_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
-                            const struct GEN7_STATE_BASE_ADDRESS * restrict values)
+                             const struct GEN7_STATE_BASE_ADDRESS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -278,9 +297,7 @@ GEN7_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
    uint32_t dw_StatelessDataPortAccessMemoryObjectControlState;
    GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_StatelessDataPortAccessMemoryObjectControlState, &values->StatelessDataPortAccessMemoryObjectControlState);
    uint32_t dw1 =
-      /* Struct  GeneralStateMemoryObjectControlState (8..11): */
       __gen_field(dw_GeneralStateMemoryObjectControlState, 8, 11) |
-      /* Struct  StatelessDataPortAccessMemoryObjectControlState (4..7): */
       __gen_field(dw_StatelessDataPortAccessMemoryObjectControlState, 4, 7) |
       __gen_field(values->StatelessDataPortAccessForceWriteThru, 3, 3) |
       __gen_field(values->GeneralStateBaseAddressModifyEnable, 0, 0) |
@@ -292,7 +309,6 @@ GEN7_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
    uint32_t dw_SurfaceStateMemoryObjectControlState;
    GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SurfaceStateMemoryObjectControlState, &values->SurfaceStateMemoryObjectControlState);
    uint32_t dw2 =
-      /* Struct  SurfaceStateMemoryObjectControlState (8..11): */
       __gen_field(dw_SurfaceStateMemoryObjectControlState, 8, 11) |
       __gen_field(values->SurfaceStateBaseAddressModifyEnable, 0, 0) |
       0;
@@ -303,7 +319,6 @@ GEN7_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
    uint32_t dw_DynamicStateMemoryObjectControlState;
    GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_DynamicStateMemoryObjectControlState, &values->DynamicStateMemoryObjectControlState);
    uint32_t dw3 =
-      /* Struct  DynamicStateMemoryObjectControlState (8..11): */
       __gen_field(dw_DynamicStateMemoryObjectControlState, 8, 11) |
       __gen_field(values->DynamicStateBaseAddressModifyEnable, 0, 0) |
       0;
@@ -314,7 +329,6 @@ GEN7_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
    uint32_t dw_IndirectObjectMemoryObjectControlState;
    GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_IndirectObjectMemoryObjectControlState, &values->IndirectObjectMemoryObjectControlState);
    uint32_t dw4 =
-      /* Struct  IndirectObjectMemoryObjectControlState (8..11): */
       __gen_field(dw_IndirectObjectMemoryObjectControlState, 8, 11) |
       __gen_field(values->IndirectObjectBaseAddressModifyEnable, 0, 0) |
       0;
@@ -325,7 +339,6 @@ GEN7_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
    uint32_t dw_InstructionMemoryObjectControlState;
    GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_InstructionMemoryObjectControlState, &values->InstructionMemoryObjectControlState);
    uint32_t dw5 =
-      /* Struct  InstructionMemoryObjectControlState (8..11): */
       __gen_field(dw_InstructionMemoryObjectControlState, 8, 11) |
       __gen_field(values->InstructionBaseAddressModifyEnable, 0, 0) |
       0;
@@ -363,7 +376,6 @@ GEN7_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_STATE_PREFETCH_length 0x00000002
 #define GEN7_STATE_PREFETCH_length_bias 0x00000002
 #define GEN7_STATE_PREFETCH_header              \
    .CommandType          =  3,                  \
@@ -372,6 +384,8 @@ GEN7_STATE_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  3,                  \
    .DwordLength          =  0
 
+#define GEN7_STATE_PREFETCH_length 0x00000002
+
 struct GEN7_STATE_PREFETCH {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -384,7 +398,7 @@ struct GEN7_STATE_PREFETCH {
 
 static inline void
 GEN7_STATE_PREFETCH_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN7_STATE_PREFETCH * restrict values)
+                         const struct GEN7_STATE_PREFETCH * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -405,7 +419,6 @@ GEN7_STATE_PREFETCH_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_STATE_SIP_length 0x00000002
 #define GEN7_STATE_SIP_length_bias 0x00000002
 #define GEN7_STATE_SIP_header                   \
    .CommandType          =  3,                  \
@@ -414,6 +427,8 @@ GEN7_STATE_PREFETCH_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  2,                  \
    .DwordLength          =  0
 
+#define GEN7_STATE_SIP_length 0x00000002
+
 struct GEN7_STATE_SIP {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -425,7 +440,7 @@ struct GEN7_STATE_SIP {
 
 static inline void
 GEN7_STATE_SIP_pack(__gen_user_data *data, void * restrict dst,
-                   const struct GEN7_STATE_SIP * restrict values)
+                    const struct GEN7_STATE_SIP * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -443,7 +458,6 @@ GEN7_STATE_SIP_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_SWTESS_BASE_ADDRESS_length 0x00000002
 #define GEN7_SWTESS_BASE_ADDRESS_length_bias 0x00000002
 #define GEN7_SWTESS_BASE_ADDRESS_header         \
    .CommandType          =  3,                  \
@@ -452,6 +466,8 @@ GEN7_STATE_SIP_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  3,                  \
    .DwordLength          =  0
 
+#define GEN7_SWTESS_BASE_ADDRESS_length 0x00000002
+
 struct GEN7_SWTESS_BASE_ADDRESS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -464,7 +480,7 @@ struct GEN7_SWTESS_BASE_ADDRESS {
 
 static inline void
 GEN7_SWTESS_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_SWTESS_BASE_ADDRESS * restrict values)
+                              const struct GEN7_SWTESS_BASE_ADDRESS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -479,7 +495,6 @@ GEN7_SWTESS_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
    uint32_t dw_SWTessellationMemoryObjectControlState;
    GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SWTessellationMemoryObjectControlState, &values->SWTessellationMemoryObjectControlState);
    uint32_t dw1 =
-      /* Struct  SWTessellationMemoryObjectControlState (8..11): */
       __gen_field(dw_SWTessellationMemoryObjectControlState, 8, 11) |
       0;
 
@@ -488,7 +503,6 @@ GEN7_SWTESS_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DPRIMITIVE_length 0x00000007
 #define GEN7_3DPRIMITIVE_length_bias 0x00000002
 #define GEN7_3DPRIMITIVE_header                 \
    .CommandType          =  3,                  \
@@ -497,15 +511,17 @@ GEN7_SWTESS_BASE_ADDRESS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  0,                  \
    .DwordLength          =  5
 
+#define GEN7_3DPRIMITIVE_length 0x00000007
+
 struct GEN7_3DPRIMITIVE {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
-   uint32_t                                     IndirectParameterEnable;
-   uint32_t                                     PredicateEnable;
+   bool                                         IndirectParameterEnable;
+   bool                                         PredicateEnable;
    uint32_t                                     DwordLength;
-   uint32_t                                     EndOffsetEnable;
+   bool                                         EndOffsetEnable;
 #define     SEQUENTIAL                                         0
 #define     RANDOM                                             1
    uint32_t                                     VertexAccessType;
@@ -519,7 +535,7 @@ struct GEN7_3DPRIMITIVE {
 
 static inline void
 GEN7_3DPRIMITIVE_pack(__gen_user_data *data, void * restrict dst,
-                     const struct GEN7_3DPRIMITIVE * restrict values)
+                      const struct GEN7_3DPRIMITIVE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -561,7 +577,6 @@ GEN7_3DPRIMITIVE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_length_bias 0x00000002
 #define GEN7_3DSTATE_AA_LINE_PARAMETERS_header  \
    .CommandType          =  3,                  \
@@ -570,21 +585,23 @@ GEN7_3DPRIMITIVE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 10,                  \
    .DwordLength          =  1
 
+#define GEN7_3DSTATE_AA_LINE_PARAMETERS_length 0x00000003
+
 struct GEN7_3DSTATE_AA_LINE_PARAMETERS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     AACoverageBias;
-   uint32_t                                     AACoverageSlope;
-   uint32_t                                     AACoverageEndCapBias;
-   uint32_t                                     AACoverageEndCapSlope;
+   float                                        AACoverageBias;
+   float                                        AACoverageSlope;
+   float                                        AACoverageEndCapBias;
+   float                                        AACoverageEndCapSlope;
 };
 
 static inline void
 GEN7_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data *data, void * restrict dst,
-                                    const struct GEN7_3DSTATE_AA_LINE_PARAMETERS * restrict values)
+                                     const struct GEN7_3DSTATE_AA_LINE_PARAMETERS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -597,18 +614,17 @@ GEN7_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data *data, void * restrict dst,
       0;
 
    dw[1] =
-      __gen_field(values->AACoverageBias, 16, 23) |
-      __gen_field(values->AACoverageSlope, 0, 7) |
+      __gen_field(values->AACoverageBias * (1 << 8), 16, 23) |
+      __gen_field(values->AACoverageSlope * (1 << 8), 0, 7) |
       0;
 
    dw[2] =
-      __gen_field(values->AACoverageEndCapBias, 16, 23) |
-      __gen_field(values->AACoverageEndCapSlope, 0, 7) |
+      __gen_field(values->AACoverageEndCapBias * (1 << 8), 16, 23) |
+      __gen_field(values->AACoverageEndCapSlope * (1 << 8), 0, 7) |
       0;
 
 }
 
-#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_length_bias 0x00000002
 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_header\
    .CommandType          =  3,                  \
@@ -617,6 +633,8 @@ GEN7_3DSTATE_AA_LINE_PARAMETERS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 40,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_length 0x00000002
+
 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -628,7 +646,7 @@ struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS {
 
 static inline void
 GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS * restrict values)
+                                            const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -646,7 +664,6 @@ GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_length_bias 0x00000002
 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_header\
    .CommandType          =  3,                  \
@@ -655,6 +672,8 @@ GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 41,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_length 0x00000002
+
 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -666,7 +685,7 @@ struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS {
 
 static inline void
 GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS * restrict values)
+                                            const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -684,7 +703,6 @@ GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_length_bias 0x00000002
 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_header\
    .CommandType          =  3,                  \
@@ -693,6 +711,8 @@ GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 39,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_length 0x00000002
+
 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -704,7 +724,7 @@ struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS {
 
 static inline void
 GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS * restrict values)
+                                            const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -722,7 +742,6 @@ GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_length_bias 0x00000002
 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_header\
    .CommandType          =  3,                  \
@@ -731,6 +750,8 @@ GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 42,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_length 0x00000002
+
 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -742,7 +763,7 @@ struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS {
 
 static inline void
 GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS * restrict values)
+                                            const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -760,7 +781,6 @@ GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_length_bias 0x00000002
 #define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_header\
    .CommandType          =  3,                  \
@@ -769,6 +789,8 @@ GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 38,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_length 0x00000002
+
 struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -780,7 +802,7 @@ struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS {
 
 static inline void
 GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS * restrict values)
+                                            const struct GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -798,7 +820,6 @@ GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN7_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_length_bias 0x00000002
 #define GEN7_3DSTATE_BLEND_STATE_POINTERS_header\
    .CommandType          =  3,                  \
@@ -807,6 +828,8 @@ GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 36,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_BLEND_STATE_POINTERS_length 0x00000002
+
 struct GEN7_3DSTATE_BLEND_STATE_POINTERS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -818,7 +841,7 @@ struct GEN7_3DSTATE_BLEND_STATE_POINTERS {
 
 static inline void
 GEN7_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst,
-                                      const struct GEN7_3DSTATE_BLEND_STATE_POINTERS * restrict values)
+                                       const struct GEN7_3DSTATE_BLEND_STATE_POINTERS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -832,11 +855,11 @@ GEN7_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data *data, void * restrict ds
 
    dw[1] =
       __gen_offset(values->BlendStatePointer, 6, 31) |
+      __gen_mbo(0, 0) |
       0;
 
 }
 
-#define GEN7_3DSTATE_CC_STATE_POINTERS_length 0x00000002
 #define GEN7_3DSTATE_CC_STATE_POINTERS_length_bias 0x00000002
 #define GEN7_3DSTATE_CC_STATE_POINTERS_header   \
    .CommandType          =  3,                  \
@@ -845,6 +868,8 @@ GEN7_3DSTATE_BLEND_STATE_POINTERS_pack(__gen_user_data *data, void * restrict ds
    ._3DCommandSubOpcode  = 14,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_CC_STATE_POINTERS_length 0x00000002
+
 struct GEN7_3DSTATE_CC_STATE_POINTERS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -856,7 +881,7 @@ struct GEN7_3DSTATE_CC_STATE_POINTERS {
 
 static inline void
 GEN7_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst,
-                                   const struct GEN7_3DSTATE_CC_STATE_POINTERS * restrict values)
+                                    const struct GEN7_3DSTATE_CC_STATE_POINTERS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -870,11 +895,11 @@ GEN7_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst,
 
    dw[1] =
       __gen_offset(values->ColorCalcStatePointer, 6, 31) |
+      __gen_mbo(0, 0) |
       0;
 
 }
 
-#define GEN7_3DSTATE_CHROMA_KEY_length 0x00000004
 #define GEN7_3DSTATE_CHROMA_KEY_length_bias 0x00000002
 #define GEN7_3DSTATE_CHROMA_KEY_header          \
    .CommandType          =  3,                  \
@@ -883,6 +908,8 @@ GEN7_3DSTATE_CC_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  4,                  \
    .DwordLength          =  2
 
+#define GEN7_3DSTATE_CHROMA_KEY_length 0x00000004
+
 struct GEN7_3DSTATE_CHROMA_KEY {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -896,7 +923,7 @@ struct GEN7_3DSTATE_CHROMA_KEY {
 
 static inline void
 GEN7_3DSTATE_CHROMA_KEY_pack(__gen_user_data *data, void * restrict dst,
-                            const struct GEN7_3DSTATE_CHROMA_KEY * restrict values)
+                             const struct GEN7_3DSTATE_CHROMA_KEY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -922,7 +949,6 @@ GEN7_3DSTATE_CHROMA_KEY_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_CLEAR_PARAMS_length 0x00000003
 #define GEN7_3DSTATE_CLEAR_PARAMS_length_bias 0x00000002
 #define GEN7_3DSTATE_CLEAR_PARAMS_header        \
    .CommandType          =  3,                  \
@@ -931,6 +957,8 @@ GEN7_3DSTATE_CHROMA_KEY_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  4,                  \
    .DwordLength          =  1
 
+#define GEN7_3DSTATE_CLEAR_PARAMS_length 0x00000003
+
 struct GEN7_3DSTATE_CLEAR_PARAMS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -938,12 +966,12 @@ struct GEN7_3DSTATE_CLEAR_PARAMS {
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
    uint32_t                                     DepthClearValue;
-   uint32_t                                     DepthClearValueValid;
+   bool                                         DepthClearValueValid;
 };
 
 static inline void
 GEN7_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN7_3DSTATE_CLEAR_PARAMS * restrict values)
+                               const struct GEN7_3DSTATE_CLEAR_PARAMS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -965,7 +993,6 @@ GEN7_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_CLIP_length 0x00000004
 #define GEN7_3DSTATE_CLIP_length_bias 0x00000002
 #define GEN7_3DSTATE_CLIP_header                \
    .CommandType          =  3,                  \
@@ -974,6 +1001,8 @@ GEN7_3DSTATE_CLEAR_PARAMS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 18,                  \
    .DwordLength          =  2
 
+#define GEN7_3DSTATE_CLIP_length 0x00000004
+
 struct GEN7_3DSTATE_CLIP {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -982,27 +1011,27 @@ struct GEN7_3DSTATE_CLIP {
    uint32_t                                     DwordLength;
    uint32_t                                     FrontWinding;
    uint32_t                                     VertexSubPixelPrecisionSelect;
-   uint32_t                                     EarlyCullEnable;
+   bool                                         EarlyCullEnable;
 #define     CULLMODE_BOTH                                      0
 #define     CULLMODE_NONE                                      1
 #define     CULLMODE_FRONT                                     2
 #define     CULLMODE_BACK                                      3
    uint32_t                                     CullMode;
-   uint32_t                                     ClipperStatisticsEnable;
+   bool                                         ClipperStatisticsEnable;
    uint32_t                                     UserClipDistanceCullTestEnableBitmask;
-   uint32_t                                     ClipEnable;
+   bool                                         ClipEnable;
 #define     APIMODE_OGL                                        0
    uint32_t                                     APIMode;
-   uint32_t                                     ViewportXYClipTestEnable;
-   uint32_t                                     ViewportZClipTestEnable;
-   uint32_t                                     GuardbandClipTestEnable;
+   bool                                         ViewportXYClipTestEnable;
+   bool                                         ViewportZClipTestEnable;
+   bool                                         GuardbandClipTestEnable;
    uint32_t                                     UserClipDistanceClipTestEnableBitmask;
 #define     CLIPMODE_NORMAL                                    0
 #define     CLIPMODE_REJECT_ALL                                3
 #define     CLIPMODE_ACCEPT_ALL                                4
    uint32_t                                     ClipMode;
-   uint32_t                                     PerspectiveDivideDisable;
-   uint32_t                                     NonPerspectiveBarycentricEnable;
+   bool                                         PerspectiveDivideDisable;
+   bool                                         NonPerspectiveBarycentricEnable;
 #define     Vertex0                                            0
 #define     Vertex1                                            1
 #define     Vertex2                                            2
@@ -1014,15 +1043,15 @@ struct GEN7_3DSTATE_CLIP {
 #define     Vertex1                                            1
 #define     Vertex2                                            2
    uint32_t                                     TriangleFanProvokingVertexSelect;
-   uint32_t                                     MinimumPointWidth;
-   uint32_t                                     MaximumPointWidth;
-   uint32_t                                     ForceZeroRTAIndexEnable;
+   float                                        MinimumPointWidth;
+   float                                        MaximumPointWidth;
+   bool                                         ForceZeroRTAIndexEnable;
    uint32_t                                     MaximumVPIndex;
 };
 
 static inline void
 GEN7_3DSTATE_CLIP_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN7_3DSTATE_CLIP * restrict values)
+                       const struct GEN7_3DSTATE_CLIP * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1059,15 +1088,14 @@ GEN7_3DSTATE_CLIP_pack(__gen_user_data *data, void * restrict dst,
       0;
 
    dw[3] =
-      __gen_field(values->MinimumPointWidth, 17, 27) |
-      __gen_field(values->MaximumPointWidth, 6, 16) |
+      __gen_field(values->MinimumPointWidth * (1 << 3), 17, 27) |
+      __gen_field(values->MaximumPointWidth * (1 << 3), 6, 16) |
       __gen_field(values->ForceZeroRTAIndexEnable, 5, 5) |
       __gen_field(values->MaximumVPIndex, 0, 3) |
       0;
 
 }
 
-#define GEN7_3DSTATE_CONSTANT_DS_length 0x00000007
 #define GEN7_3DSTATE_CONSTANT_DS_length_bias 0x00000002
 #define GEN7_3DSTATE_CONSTANT_DS_header         \
    .CommandType          =  3,                  \
@@ -1076,6 +1104,10 @@ GEN7_3DSTATE_CLIP_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 26,                  \
    .DwordLength          =  5
 
+#define GEN7_3DSTATE_CONSTANT_DS_length 0x00000007
+
+#define GEN7_3DSTATE_CONSTANT_BODY_length 0x00000006
+
 struct GEN7_3DSTATE_CONSTANT_BODY {
    uint32_t                                     ConstantBuffer1ReadLength;
    uint32_t                                     ConstantBuffer0ReadLength;
@@ -1090,7 +1122,7 @@ struct GEN7_3DSTATE_CONSTANT_BODY {
 
 static inline void
 GEN7_3DSTATE_CONSTANT_BODY_pack(__gen_user_data *data, void * restrict dst,
-                               const struct GEN7_3DSTATE_CONSTANT_BODY * restrict values)
+                                const struct GEN7_3DSTATE_CONSTANT_BODY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1107,7 +1139,6 @@ GEN7_3DSTATE_CONSTANT_BODY_pack(__gen_user_data *data, void * restrict dst,
    uint32_t dw_ConstantBufferObjectControlState;
    GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_ConstantBufferObjectControlState, &values->ConstantBufferObjectControlState);
    uint32_t dw2 =
-      /* Struct  ConstantBufferObjectControlState (0..4): */
       __gen_field(dw_ConstantBufferObjectControlState, 0, 4) |
       0;
 
@@ -1145,7 +1176,7 @@ struct GEN7_3DSTATE_CONSTANT_DS {
 
 static inline void
 GEN7_3DSTATE_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_3DSTATE_CONSTANT_DS * restrict values)
+                              const struct GEN7_3DSTATE_CONSTANT_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1160,7 +1191,6 @@ GEN7_3DSTATE_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst,
    GEN7_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
 }
 
-#define GEN7_3DSTATE_CONSTANT_GS_length 0x00000007
 #define GEN7_3DSTATE_CONSTANT_GS_length_bias 0x00000002
 #define GEN7_3DSTATE_CONSTANT_GS_header         \
    .CommandType          =  3,                  \
@@ -1169,6 +1199,8 @@ GEN7_3DSTATE_CONSTANT_DS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 22,                  \
    .DwordLength          =  5
 
+#define GEN7_3DSTATE_CONSTANT_GS_length 0x00000007
+
 struct GEN7_3DSTATE_CONSTANT_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1180,7 +1212,7 @@ struct GEN7_3DSTATE_CONSTANT_GS {
 
 static inline void
 GEN7_3DSTATE_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_3DSTATE_CONSTANT_GS * restrict values)
+                              const struct GEN7_3DSTATE_CONSTANT_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1195,7 +1227,6 @@ GEN7_3DSTATE_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst,
    GEN7_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
 }
 
-#define GEN7_3DSTATE_CONSTANT_HS_length 0x00000007
 #define GEN7_3DSTATE_CONSTANT_HS_length_bias 0x00000002
 #define GEN7_3DSTATE_CONSTANT_HS_header         \
    .CommandType          =  3,                  \
@@ -1204,6 +1235,8 @@ GEN7_3DSTATE_CONSTANT_GS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 25,                  \
    .DwordLength          =  5
 
+#define GEN7_3DSTATE_CONSTANT_HS_length 0x00000007
+
 struct GEN7_3DSTATE_CONSTANT_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1215,7 +1248,7 @@ struct GEN7_3DSTATE_CONSTANT_HS {
 
 static inline void
 GEN7_3DSTATE_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_3DSTATE_CONSTANT_HS * restrict values)
+                              const struct GEN7_3DSTATE_CONSTANT_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1230,7 +1263,6 @@ GEN7_3DSTATE_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst,
    GEN7_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
 }
 
-#define GEN7_3DSTATE_CONSTANT_PS_length 0x00000007
 #define GEN7_3DSTATE_CONSTANT_PS_length_bias 0x00000002
 #define GEN7_3DSTATE_CONSTANT_PS_header         \
    .CommandType          =  3,                  \
@@ -1239,6 +1271,8 @@ GEN7_3DSTATE_CONSTANT_HS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 23,                  \
    .DwordLength          =  5
 
+#define GEN7_3DSTATE_CONSTANT_PS_length 0x00000007
+
 struct GEN7_3DSTATE_CONSTANT_PS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1250,7 +1284,7 @@ struct GEN7_3DSTATE_CONSTANT_PS {
 
 static inline void
 GEN7_3DSTATE_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_3DSTATE_CONSTANT_PS * restrict values)
+                              const struct GEN7_3DSTATE_CONSTANT_PS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1265,7 +1299,6 @@ GEN7_3DSTATE_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst,
    GEN7_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
 }
 
-#define GEN7_3DSTATE_CONSTANT_VS_length 0x00000007
 #define GEN7_3DSTATE_CONSTANT_VS_length_bias 0x00000002
 #define GEN7_3DSTATE_CONSTANT_VS_header         \
    .CommandType          =  3,                  \
@@ -1274,6 +1307,8 @@ GEN7_3DSTATE_CONSTANT_PS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 21,                  \
    .DwordLength          =  5
 
+#define GEN7_3DSTATE_CONSTANT_VS_length 0x00000007
+
 struct GEN7_3DSTATE_CONSTANT_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1285,7 +1320,7 @@ struct GEN7_3DSTATE_CONSTANT_VS {
 
 static inline void
 GEN7_3DSTATE_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_3DSTATE_CONSTANT_VS * restrict values)
+                              const struct GEN7_3DSTATE_CONSTANT_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1300,7 +1335,6 @@ GEN7_3DSTATE_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst,
    GEN7_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
 }
 
-#define GEN7_3DSTATE_DEPTH_BUFFER_length 0x00000007
 #define GEN7_3DSTATE_DEPTH_BUFFER_length_bias 0x00000002
 #define GEN7_3DSTATE_DEPTH_BUFFER_header        \
    .CommandType          =  3,                  \
@@ -1309,6 +1343,8 @@ GEN7_3DSTATE_CONSTANT_VS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  5,                  \
    .DwordLength          =  5
 
+#define GEN7_3DSTATE_DEPTH_BUFFER_length 0x00000007
+
 struct GEN7_3DSTATE_DEPTH_BUFFER {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1321,9 +1357,9 @@ struct GEN7_3DSTATE_DEPTH_BUFFER {
 #define     SURFTYPE_CUBE                                      3
 #define     SURFTYPE_NULL                                      7
    uint32_t                                     SurfaceType;
-   uint32_t                                     DepthWriteEnable;
-   uint32_t                                     StencilWriteEnable;
-   uint32_t                                     HierarchicalDepthBufferEnable;
+   bool                                         DepthWriteEnable;
+   bool                                         StencilWriteEnable;
+   bool                                         HierarchicalDepthBufferEnable;
 #define     D32_FLOAT                                          1
 #define     D24_UNORM_X8_UINT                                  3
 #define     D16_UNORM                                          5
@@ -1344,7 +1380,7 @@ struct GEN7_3DSTATE_DEPTH_BUFFER {
 
 static inline void
 GEN7_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN7_3DSTATE_DEPTH_BUFFER * restrict values)
+                               const struct GEN7_3DSTATE_DEPTH_BUFFER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1382,7 +1418,6 @@ GEN7_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    dw[4] =
       __gen_field(values->Depth, 21, 31) |
       __gen_field(values->MinimumArrayElement, 10, 20) |
-      /* Struct  DepthBufferObjectControlState (0..3): */
       __gen_field(dw_DepthBufferObjectControlState, 0, 3) |
       0;
 
@@ -1397,7 +1432,6 @@ GEN7_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length 0x00000002
 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length_bias 0x00000002
 #define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_header\
    .CommandType          =  3,                  \
@@ -1406,6 +1440,8 @@ GEN7_3DSTATE_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 37,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_length 0x00000002
+
 struct GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1417,7 +1453,7 @@ struct GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS {
 
 static inline void
 GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst,
-                                              const struct GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS * restrict values)
+                                               const struct GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1431,11 +1467,11 @@ GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_pack(__gen_user_data *data, void * res
 
    dw[1] =
       __gen_offset(values->PointertoDEPTH_STENCIL_STATE, 6, 31) |
+      __gen_mbo(0, 0) |
       0;
 
 }
 
-#define GEN7_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
 #define GEN7_3DSTATE_DRAWING_RECTANGLE_length_bias 0x00000002
 #define GEN7_3DSTATE_DRAWING_RECTANGLE_header   \
    .CommandType          =  3,                  \
@@ -1444,6 +1480,8 @@ GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS_pack(__gen_user_data *data, void * res
    ._3DCommandSubOpcode  =  0,                  \
    .DwordLength          =  2
 
+#define GEN7_3DSTATE_DRAWING_RECTANGLE_length 0x00000004
+
 struct GEN7_3DSTATE_DRAWING_RECTANGLE {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1460,7 +1498,7 @@ struct GEN7_3DSTATE_DRAWING_RECTANGLE {
 
 static inline void
 GEN7_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data *data, void * restrict dst,
-                                   const struct GEN7_3DSTATE_DRAWING_RECTANGLE * restrict values)
+                                    const struct GEN7_3DSTATE_DRAWING_RECTANGLE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1489,7 +1527,6 @@ GEN7_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_DS_length 0x00000006
 #define GEN7_3DSTATE_DS_length_bias 0x00000002
 #define GEN7_3DSTATE_DS_header                  \
    .CommandType          =  3,                  \
@@ -1498,6 +1535,8 @@ GEN7_3DSTATE_DRAWING_RECTANGLE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 29,                  \
    .DwordLength          =  4
 
+#define GEN7_3DSTATE_DS_length 0x00000006
+
 struct GEN7_3DSTATE_DS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1521,23 +1560,23 @@ struct GEN7_3DSTATE_DS {
 #define     IEEE754                                            0
 #define     Alternate                                          1
    uint32_t                                     FloatingPointMode;
-   uint32_t                                     IllegalOpcodeExceptionEnable;
-   uint32_t                                     SoftwareExceptionEnable;
+   bool                                         IllegalOpcodeExceptionEnable;
+   bool                                         SoftwareExceptionEnable;
    uint32_t                                     ScratchSpaceBasePointer;
    uint32_t                                     PerThreadScratchSpace;
    uint32_t                                     DispatchGRFStartRegisterForURBData;
    uint32_t                                     PatchURBEntryReadLength;
    uint32_t                                     PatchURBEntryReadOffset;
    uint32_t                                     MaximumNumberofThreads;
-   uint32_t                                     StatisticsEnable;
-   uint32_t                                     ComputeWCoordinateEnable;
-   uint32_t                                     DSCacheDisable;
-   uint32_t                                     DSFunctionEnable;
+   bool                                         StatisticsEnable;
+   bool                                         ComputeWCoordinateEnable;
+   bool                                         DSCacheDisable;
+   bool                                         DSFunctionEnable;
 };
 
 static inline void
 GEN7_3DSTATE_DS_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN7_3DSTATE_DS * restrict values)
+                     const struct GEN7_3DSTATE_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1584,7 +1623,6 @@ GEN7_3DSTATE_DS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_GS_length 0x00000007
 #define GEN7_3DSTATE_GS_length_bias 0x00000002
 #define GEN7_3DSTATE_GS_header                  \
    .CommandType          =  3,                  \
@@ -1593,6 +1631,8 @@ GEN7_3DSTATE_DS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 17,                  \
    .DwordLength          =  5
 
+#define GEN7_3DSTATE_GS_length 0x00000007
+
 struct GEN7_3DSTATE_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1617,15 +1657,15 @@ struct GEN7_3DSTATE_GS {
 #define     IEEE754                                            0
 #define     alternate                                          1
    uint32_t                                     FloatingPointMode;
-   uint32_t                                     IllegalOpcodeExceptionEnable;
-   uint32_t                                     MaskStackExceptionEnable;
-   uint32_t                                     SoftwareExceptionEnable;
+   bool                                         IllegalOpcodeExceptionEnable;
+   bool                                         MaskStackExceptionEnable;
+   bool                                         SoftwareExceptionEnable;
    uint32_t                                     ScratchSpaceBasePointer;
    uint32_t                                     PerThreadScratchSpace;
    uint32_t                                     OutputVertexSize;
    uint32_t                                     OutputTopology;
    uint32_t                                     VertexURBEntryReadLength;
-   uint32_t                                     IncludeVertexHandles;
+   bool                                         IncludeVertexHandles;
    uint32_t                                     VertexURBEntryReadOffset;
    uint32_t                                     DispatchGRFStartRegisterforURBData;
    uint32_t                                     MaximumNumberofThreads;
@@ -1641,17 +1681,17 @@ struct GEN7_3DSTATE_GS {
    uint32_t                                     DispatchMode;
    uint32_t                                     GSStatisticsEnable;
    uint32_t                                     GSInvocationsIncrementValue;
-   uint32_t                                     IncludePrimitiveID;
+   bool                                         IncludePrimitiveID;
    uint32_t                                     Hint;
-   uint32_t                                     ReorderEnable;
-   uint32_t                                     DiscardAdjacency;
-   uint32_t                                     GSEnable;
+   bool                                         ReorderEnable;
+   bool                                         DiscardAdjacency;
+   bool                                         GSEnable;
    uint32_t                                     SemaphoreHandle;
 };
 
 static inline void
 GEN7_3DSTATE_GS_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN7_3DSTATE_GS * restrict values)
+                     const struct GEN7_3DSTATE_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1715,7 +1755,6 @@ GEN7_3DSTATE_GS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000003
 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_length_bias 0x00000002
 #define GEN7_3DSTATE_HIER_DEPTH_BUFFER_header   \
    .CommandType          =  3,                  \
@@ -1724,6 +1763,8 @@ GEN7_3DSTATE_GS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  7,                  \
    .DwordLength          =  1
 
+#define GEN7_3DSTATE_HIER_DEPTH_BUFFER_length 0x00000003
+
 struct GEN7_3DSTATE_HIER_DEPTH_BUFFER {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1737,7 +1778,7 @@ struct GEN7_3DSTATE_HIER_DEPTH_BUFFER {
 
 static inline void
 GEN7_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
-                                   const struct GEN7_3DSTATE_HIER_DEPTH_BUFFER * restrict values)
+                                    const struct GEN7_3DSTATE_HIER_DEPTH_BUFFER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1752,7 +1793,6 @@ GEN7_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    uint32_t dw_HierarchicalDepthBufferObjectControlState;
    GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_HierarchicalDepthBufferObjectControlState, &values->HierarchicalDepthBufferObjectControlState);
    dw[1] =
-      /* Struct  HierarchicalDepthBufferObjectControlState (25..28): */
       __gen_field(dw_HierarchicalDepthBufferObjectControlState, 25, 28) |
       __gen_field(values->SurfacePitch, 0, 16) |
       0;
@@ -1765,7 +1805,6 @@ GEN7_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_HS_length 0x00000007
 #define GEN7_3DSTATE_HS_length_bias 0x00000002
 #define GEN7_3DSTATE_HS_header                  \
    .CommandType          =  3,                  \
@@ -1774,6 +1813,8 @@ GEN7_3DSTATE_HIER_DEPTH_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 27,                  \
    .DwordLength          =  5
 
+#define GEN7_3DSTATE_HS_length 0x00000007
+
 struct GEN7_3DSTATE_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1790,11 +1831,11 @@ struct GEN7_3DSTATE_HS {
 #define     IEEE754                                            0
 #define     alternate                                          1
    uint32_t                                     FloatingPointMode;
-   uint32_t                                     IllegalOpcodeExceptionEnable;
-   uint32_t                                     SoftwareExceptionEnable;
+   bool                                         IllegalOpcodeExceptionEnable;
+   bool                                         SoftwareExceptionEnable;
    uint32_t                                     MaximumNumberofThreads;
-   uint32_t                                     Enable;
-   uint32_t                                     StatisticsEnable;
+   bool                                         Enable;
+   bool                                         StatisticsEnable;
    uint32_t                                     InstanceCount;
    uint32_t                                     KernelStartPointer;
    uint32_t                                     ScratchSpaceBasePointer;
@@ -1803,7 +1844,7 @@ struct GEN7_3DSTATE_HS {
 #define     Dmask                                              0
 #define     Vmask                                              1
    uint32_t                                     VectorMaskEnable;
-   uint32_t                                     IncludeVertexHandles;
+   bool                                         IncludeVertexHandles;
    uint32_t                                     DispatchGRFStartRegisterForURBData;
    uint32_t                                     VertexURBEntryReadLength;
    uint32_t                                     VertexURBEntryReadOffset;
@@ -1812,7 +1853,7 @@ struct GEN7_3DSTATE_HS {
 
 static inline void
 GEN7_3DSTATE_HS_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN7_3DSTATE_HS * restrict values)
+                     const struct GEN7_3DSTATE_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1863,7 +1904,6 @@ GEN7_3DSTATE_HS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_INDEX_BUFFER_length 0x00000003
 #define GEN7_3DSTATE_INDEX_BUFFER_length_bias 0x00000002
 #define GEN7_3DSTATE_INDEX_BUFFER_header        \
    .CommandType          =  3,                  \
@@ -1872,13 +1912,15 @@ GEN7_3DSTATE_HS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 10,                  \
    .DwordLength          =  1
 
+#define GEN7_3DSTATE_INDEX_BUFFER_length 0x00000003
+
 struct GEN7_3DSTATE_INDEX_BUFFER {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    struct GEN7_MEMORY_OBJECT_CONTROL_STATE      MemoryObjectControlState;
-   uint32_t                                     CutIndexEnable;
+   bool                                         CutIndexEnable;
 #define     INDEX_BYTE                                         0
 #define     INDEX_WORD                                         1
 #define     INDEX_DWORD                                        2
@@ -1890,7 +1932,7 @@ struct GEN7_3DSTATE_INDEX_BUFFER {
 
 static inline void
 GEN7_3DSTATE_INDEX_BUFFER_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN7_3DSTATE_INDEX_BUFFER * restrict values)
+                               const struct GEN7_3DSTATE_INDEX_BUFFER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1901,7 +1943,6 @@ GEN7_3DSTATE_INDEX_BUFFER_pack(__gen_user_data *data, void * restrict dst,
       __gen_field(values->CommandSubType, 27, 28) |
       __gen_field(values->_3DCommandOpcode, 24, 26) |
       __gen_field(values->_3DCommandSubOpcode, 16, 23) |
-      /* Struct  MemoryObjectControlState (12..15): */
       __gen_field(dw_MemoryObjectControlState, 12, 15) |
       __gen_field(values->CutIndexEnable, 10, 10) |
       __gen_field(values->IndexFormat, 8, 9) |
@@ -1922,7 +1963,6 @@ GEN7_3DSTATE_INDEX_BUFFER_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_LINE_STIPPLE_length 0x00000003
 #define GEN7_3DSTATE_LINE_STIPPLE_length_bias 0x00000002
 #define GEN7_3DSTATE_LINE_STIPPLE_header        \
    .CommandType          =  3,                  \
@@ -1931,23 +1971,25 @@ GEN7_3DSTATE_INDEX_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  8,                  \
    .DwordLength          =  1
 
+#define GEN7_3DSTATE_LINE_STIPPLE_length 0x00000003
+
 struct GEN7_3DSTATE_LINE_STIPPLE {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     ModifyEnableCurrentRepeatCounterCurrentStippleIndex;
+   bool                                         ModifyEnableCurrentRepeatCounterCurrentStippleIndex;
    uint32_t                                     CurrentRepeatCounter;
    uint32_t                                     CurrentStippleIndex;
    uint32_t                                     LineStipplePattern;
-   uint32_t                                     LineStippleInverseRepeatCount;
+   float                                        LineStippleInverseRepeatCount;
    uint32_t                                     LineStippleRepeatCount;
 };
 
 static inline void
 GEN7_3DSTATE_LINE_STIPPLE_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN7_3DSTATE_LINE_STIPPLE * restrict values)
+                               const struct GEN7_3DSTATE_LINE_STIPPLE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -1967,13 +2009,12 @@ GEN7_3DSTATE_LINE_STIPPLE_pack(__gen_user_data *data, void * restrict dst,
       0;
 
    dw[2] =
-      __gen_field(values->LineStippleInverseRepeatCount, 15, 31) |
+      __gen_field(values->LineStippleInverseRepeatCount * (1 << 16), 15, 31) |
       __gen_field(values->LineStippleRepeatCount, 0, 8) |
       0;
 
 }
 
-#define GEN7_3DSTATE_MONOFILTER_SIZE_length 0x00000002
 #define GEN7_3DSTATE_MONOFILTER_SIZE_length_bias 0x00000002
 #define GEN7_3DSTATE_MONOFILTER_SIZE_header     \
    .CommandType          =  3,                  \
@@ -1982,6 +2023,8 @@ GEN7_3DSTATE_LINE_STIPPLE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 17,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_MONOFILTER_SIZE_length 0x00000002
+
 struct GEN7_3DSTATE_MONOFILTER_SIZE {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -1994,7 +2037,7 @@ struct GEN7_3DSTATE_MONOFILTER_SIZE {
 
 static inline void
 GEN7_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data *data, void * restrict dst,
-                                 const struct GEN7_3DSTATE_MONOFILTER_SIZE * restrict values)
+                                  const struct GEN7_3DSTATE_MONOFILTER_SIZE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2013,7 +2056,6 @@ GEN7_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_MULTISAMPLE_length 0x00000004
 #define GEN7_3DSTATE_MULTISAMPLE_length_bias 0x00000002
 #define GEN7_3DSTATE_MULTISAMPLE_header         \
    .CommandType          =  3,                  \
@@ -2022,6 +2064,8 @@ GEN7_3DSTATE_MONOFILTER_SIZE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 13,                  \
    .DwordLength          =  2
 
+#define GEN7_3DSTATE_MULTISAMPLE_length 0x00000004
+
 struct GEN7_3DSTATE_MULTISAMPLE {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2035,27 +2079,27 @@ struct GEN7_3DSTATE_MULTISAMPLE {
 #define     NUMSAMPLES_4                                       2
 #define     NUMSAMPLES_8                                       3
    uint32_t                                     NumberofMultisamples;
-   uint32_t                                     Sample3XOffset;
-   uint32_t                                     Sample3YOffset;
-   uint32_t                                     Sample2XOffset;
-   uint32_t                                     Sample2YOffset;
-   uint32_t                                     Sample1XOffset;
-   uint32_t                                     Sample1YOffset;
-   uint32_t                                     Sample0XOffset;
-   uint32_t                                     Sample0YOffset;
-   uint32_t                                     Sample7XOffset;
-   uint32_t                                     Sample7YOffset;
-   uint32_t                                     Sample6XOffset;
-   uint32_t                                     Sample6YOffset;
-   uint32_t                                     Sample5XOffset;
-   uint32_t                                     Sample5YOffset;
-   uint32_t                                     Sample4XOffset;
-   uint32_t                                     Sample4YOffset;
+   float                                        Sample3XOffset;
+   float                                        Sample3YOffset;
+   float                                        Sample2XOffset;
+   float                                        Sample2YOffset;
+   float                                        Sample1XOffset;
+   float                                        Sample1YOffset;
+   float                                        Sample0XOffset;
+   float                                        Sample0YOffset;
+   float                                        Sample7XOffset;
+   float                                        Sample7YOffset;
+   float                                        Sample6XOffset;
+   float                                        Sample6YOffset;
+   float                                        Sample5XOffset;
+   float                                        Sample5YOffset;
+   float                                        Sample4XOffset;
+   float                                        Sample4YOffset;
 };
 
 static inline void
 GEN7_3DSTATE_MULTISAMPLE_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_3DSTATE_MULTISAMPLE * restrict values)
+                              const struct GEN7_3DSTATE_MULTISAMPLE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2073,30 +2117,29 @@ GEN7_3DSTATE_MULTISAMPLE_pack(__gen_user_data *data, void * restrict dst,
       0;
 
    dw[2] =
-      __gen_field(values->Sample3XOffset, 28, 31) |
-      __gen_field(values->Sample3YOffset, 24, 27) |
-      __gen_field(values->Sample2XOffset, 20, 23) |
-      __gen_field(values->Sample2YOffset, 16, 19) |
-      __gen_field(values->Sample1XOffset, 12, 15) |
-      __gen_field(values->Sample1YOffset, 8, 11) |
-      __gen_field(values->Sample0XOffset, 4, 7) |
-      __gen_field(values->Sample0YOffset, 0, 3) |
+      __gen_field(values->Sample3XOffset * (1 << 4), 28, 31) |
+      __gen_field(values->Sample3YOffset * (1 << 4), 24, 27) |
+      __gen_field(values->Sample2XOffset * (1 << 4), 20, 23) |
+      __gen_field(values->Sample2YOffset * (1 << 4), 16, 19) |
+      __gen_field(values->Sample1XOffset * (1 << 4), 12, 15) |
+      __gen_field(values->Sample1YOffset * (1 << 4), 8, 11) |
+      __gen_field(values->Sample0XOffset * (1 << 4), 4, 7) |
+      __gen_field(values->Sample0YOffset * (1 << 4), 0, 3) |
       0;
 
    dw[3] =
-      __gen_field(values->Sample7XOffset, 28, 31) |
-      __gen_field(values->Sample7YOffset, 24, 27) |
-      __gen_field(values->Sample6XOffset, 20, 23) |
-      __gen_field(values->Sample6YOffset, 16, 19) |
-      __gen_field(values->Sample5XOffset, 12, 15) |
-      __gen_field(values->Sample5YOffset, 8, 11) |
-      __gen_field(values->Sample4XOffset, 4, 7) |
-      __gen_field(values->Sample4YOffset, 0, 3) |
+      __gen_field(values->Sample7XOffset * (1 << 4), 28, 31) |
+      __gen_field(values->Sample7YOffset * (1 << 4), 24, 27) |
+      __gen_field(values->Sample6XOffset * (1 << 4), 20, 23) |
+      __gen_field(values->Sample6YOffset * (1 << 4), 16, 19) |
+      __gen_field(values->Sample5XOffset * (1 << 4), 12, 15) |
+      __gen_field(values->Sample5YOffset * (1 << 4), 8, 11) |
+      __gen_field(values->Sample4XOffset * (1 << 4), 4, 7) |
+      __gen_field(values->Sample4YOffset * (1 << 4), 0, 3) |
       0;
 
 }
 
-#define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_length_bias 0x00000002
 #define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_header \
    .CommandType          =  3,                  \
@@ -2105,6 +2148,8 @@ GEN7_3DSTATE_MULTISAMPLE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  6,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_POLY_STIPPLE_OFFSET_length 0x00000002
+
 struct GEN7_3DSTATE_POLY_STIPPLE_OFFSET {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2117,7 +2162,7 @@ struct GEN7_3DSTATE_POLY_STIPPLE_OFFSET {
 
 static inline void
 GEN7_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data *data, void * restrict dst,
-                                     const struct GEN7_3DSTATE_POLY_STIPPLE_OFFSET * restrict values)
+                                      const struct GEN7_3DSTATE_POLY_STIPPLE_OFFSET * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2136,7 +2181,6 @@ GEN7_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data *data, void * restrict dst
 
 }
 
-#define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_length_bias 0x00000002
 #define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_header\
    .CommandType          =  3,                  \
@@ -2145,18 +2189,20 @@ GEN7_3DSTATE_POLY_STIPPLE_OFFSET_pack(__gen_user_data *data, void * restrict dst
    ._3DCommandSubOpcode  =  7,                  \
    .DwordLength          = 31
 
+#define GEN7_3DSTATE_POLY_STIPPLE_PATTERN_length 0x00000021
+
 struct GEN7_3DSTATE_POLY_STIPPLE_PATTERN {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     PatternRow;
+   uint32_t                                     PatternRow[32];
 };
 
 static inline void
 GEN7_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data *data, void * restrict dst,
-                                      const struct GEN7_3DSTATE_POLY_STIPPLE_PATTERN * restrict values)
+                                       const struct GEN7_3DSTATE_POLY_STIPPLE_PATTERN * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2168,13 +2214,14 @@ GEN7_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data *data, void * restrict ds
       __gen_field(values->DwordLength, 0, 7) |
       0;
 
-   dw[1] =
-      __gen_field(values->PatternRow, 0, 31) |
-      0;
+   for (uint32_t i = 0, j = 1; i < 32; i += 1, j++) {
+      dw[j] =
+         __gen_field(values->PatternRow[i + 0], 0, 31) |
+         0;
+   }
 
 }
 
-#define GEN7_3DSTATE_PS_length 0x00000008
 #define GEN7_3DSTATE_PS_length_bias 0x00000002
 #define GEN7_3DSTATE_PS_header                  \
    .CommandType          =  3,                  \
@@ -2183,6 +2230,8 @@ GEN7_3DSTATE_POLY_STIPPLE_PATTERN_pack(__gen_user_data *data, void * restrict ds
    ._3DCommandSubOpcode  = 32,                  \
    .DwordLength          =  6
 
+#define GEN7_3DSTATE_PS_length 0x00000008
+
 struct GEN7_3DSTATE_PS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2209,25 +2258,25 @@ struct GEN7_3DSTATE_PS {
 #define     RD                                                 2
 #define     RTZ                                                3
    uint32_t                                     RoundingMode;
-   uint32_t                                     IllegalOpcodeExceptionEnable;
-   uint32_t                                     MaskStackExceptionEnable;
-   uint32_t                                     SoftwareExceptionEnable;
+   bool                                         IllegalOpcodeExceptionEnable;
+   bool                                         MaskStackExceptionEnable;
+   bool                                         SoftwareExceptionEnable;
    uint32_t                                     ScratchSpaceBasePointer;
    uint32_t                                     PerThreadScratchSpace;
    uint32_t                                     MaximumNumberofThreads;
-   uint32_t                                     PushConstantEnable;
-   uint32_t                                     AttributeEnable;
-   uint32_t                                     oMaskPresenttoRenderTarget;
-   uint32_t                                     RenderTargetFastClearEnable;
-   uint32_t                                     DualSourceBlendEnable;
-   uint32_t                                     RenderTargetResolveEnable;
+   bool                                         PushConstantEnable;
+   bool                                         AttributeEnable;
+   bool                                         oMaskPresenttoRenderTarget;
+   bool                                         RenderTargetFastClearEnable;
+   bool                                         DualSourceBlendEnable;
+   bool                                         RenderTargetResolveEnable;
 #define     POSOFFSET_NONE                                     0
 #define     POSOFFSET_CENTROID                                 2
 #define     POSOFFSET_SAMPLE                                   3
    uint32_t                                     PositionXYOffsetSelect;
-   uint32_t                                     _32PixelDispatchEnable;
-   uint32_t                                     _16PixelDispatchEnable;
-   uint32_t                                     _8PixelDispatchEnable;
+   bool                                         _32PixelDispatchEnable;
+   bool                                         _16PixelDispatchEnable;
+   bool                                         _8PixelDispatchEnable;
    uint32_t                                     DispatchGRFStartRegisterforConstantSetupData0;
    uint32_t                                     DispatchGRFStartRegisterforConstantSetupData1;
    uint32_t                                     DispatchGRFStartRegisterforConstantSetupData2;
@@ -2237,7 +2286,7 @@ struct GEN7_3DSTATE_PS {
 
 static inline void
 GEN7_3DSTATE_PS_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN7_3DSTATE_PS * restrict values)
+                     const struct GEN7_3DSTATE_PS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2301,7 +2350,6 @@ GEN7_3DSTATE_PS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length_bias 0x00000002
 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_header\
    .CommandType          =  3,                  \
@@ -2310,6 +2358,8 @@ GEN7_3DSTATE_PS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 20,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_length 0x00000002
+
 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2324,7 +2374,7 @@ struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS {
 
 static inline void
 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data *data, void * restrict dst,
-                                        const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS * restrict values)
+                                         const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2343,7 +2393,6 @@ GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data *data, void * restrict
 
 }
 
-#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002
 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length_bias 0x00000002
 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_header\
    .CommandType          =  3,                  \
@@ -2352,6 +2401,8 @@ GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS_pack(__gen_user_data *data, void * restrict
    ._3DCommandSubOpcode  = 21,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_length 0x00000002
+
 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2366,7 +2417,7 @@ struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS {
 
 static inline void
 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data *data, void * restrict dst,
-                                        const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS * restrict values)
+                                         const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2385,7 +2436,6 @@ GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data *data, void * restrict
 
 }
 
-#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002
 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length_bias 0x00000002
 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_header\
    .CommandType          =  3,                  \
@@ -2394,6 +2444,8 @@ GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS_pack(__gen_user_data *data, void * restrict
    ._3DCommandSubOpcode  = 19,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_length 0x00000002
+
 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2408,7 +2460,7 @@ struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS {
 
 static inline void
 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data *data, void * restrict dst,
-                                        const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS * restrict values)
+                                         const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2427,7 +2479,6 @@ GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data *data, void * restrict
 
 }
 
-#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length_bias 0x00000002
 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_header\
    .CommandType          =  3,                  \
@@ -2436,6 +2487,8 @@ GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS_pack(__gen_user_data *data, void * restrict
    ._3DCommandSubOpcode  = 22,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_length 0x00000002
+
 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2450,7 +2503,7 @@ struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS {
 
 static inline void
 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data *data, void * restrict dst,
-                                        const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS * restrict values)
+                                         const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2469,7 +2522,6 @@ GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data *data, void * restrict
 
 }
 
-#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length_bias 0x00000002
 #define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_header\
    .CommandType          =  3,                  \
@@ -2478,6 +2530,8 @@ GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS_pack(__gen_user_data *data, void * restrict
    ._3DCommandSubOpcode  = 18,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_length 0x00000002
+
 struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2492,7 +2546,7 @@ struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS {
 
 static inline void
 GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data *data, void * restrict dst,
-                                        const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS * restrict values)
+                                         const struct GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2518,6 +2572,10 @@ GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS_pack(__gen_user_data *data, void * restrict
    ._3DCommandOpcode     =  1,                  \
    ._3DCommandSubOpcode  =  2
 
+#define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_length 0x00000000
+
+#define GEN7_PALETTE_ENTRY_length 0x00000001
+
 struct GEN7_PALETTE_ENTRY {
    uint32_t                                     Alpha;
    uint32_t                                     Red;
@@ -2527,7 +2585,7 @@ struct GEN7_PALETTE_ENTRY {
 
 static inline void
 GEN7_PALETTE_ENTRY_pack(__gen_user_data *data, void * restrict dst,
-                       const struct GEN7_PALETTE_ENTRY * restrict values)
+                        const struct GEN7_PALETTE_ENTRY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2551,7 +2609,7 @@ struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0 {
 
 static inline void
 GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data *data, void * restrict dst,
-                                       const struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0 * restrict values)
+                                        const struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0 * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2573,6 +2631,8 @@ GEN7_3DSTATE_SAMPLER_PALETTE_LOAD0_pack(__gen_user_data *data, void * restrict d
    ._3DCommandOpcode     =  1,                  \
    ._3DCommandSubOpcode  = 12
 
+#define GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_length 0x00000000
+
 struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1 {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2584,7 +2644,7 @@ struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1 {
 
 static inline void
 GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data *data, void * restrict dst,
-                                       const struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1 * restrict values)
+                                        const struct GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1 * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2599,7 +2659,6 @@ GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data *data, void * restrict d
    /* variable length fields follow */
 }
 
-#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_length_bias 0x00000002
 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_header\
    .CommandType          =  3,                  \
@@ -2608,6 +2667,8 @@ GEN7_3DSTATE_SAMPLER_PALETTE_LOAD1_pack(__gen_user_data *data, void * restrict d
    ._3DCommandSubOpcode  = 45,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_length 0x00000002
+
 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2619,7 +2680,7 @@ struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS {
 
 static inline void
 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS * restrict values)
+                                            const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2637,7 +2698,6 @@ GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_length_bias 0x00000002
 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_header\
    .CommandType          =  3,                  \
@@ -2646,6 +2706,8 @@ GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 46,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_length 0x00000002
+
 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2657,7 +2719,7 @@ struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS {
 
 static inline void
 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS * restrict values)
+                                            const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2675,7 +2737,6 @@ GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_length_bias 0x00000002
 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_header\
    .CommandType          =  3,                  \
@@ -2684,6 +2745,8 @@ GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 44,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_length 0x00000002
+
 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2695,7 +2758,7 @@ struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS {
 
 static inline void
 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS * restrict values)
+                                            const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2713,7 +2776,6 @@ GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_length_bias 0x00000002
 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_header\
    .CommandType          =  3,                  \
@@ -2722,6 +2784,8 @@ GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 47,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_length 0x00000002
+
 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2733,7 +2797,7 @@ struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS {
 
 static inline void
 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS * restrict values)
+                                            const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2751,7 +2815,6 @@ GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_length_bias 0x00000002
 #define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_header\
    .CommandType          =  3,                  \
@@ -2760,6 +2823,8 @@ GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 43,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_length 0x00000002
+
 struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2771,7 +2836,7 @@ struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS {
 
 static inline void
 GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data *data, void * restrict dst,
-                                           const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS * restrict values)
+                                            const struct GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2789,7 +2854,6 @@ GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data *data, void * restri
 
 }
 
-#define GEN7_3DSTATE_SAMPLE_MASK_length 0x00000002
 #define GEN7_3DSTATE_SAMPLE_MASK_length_bias 0x00000002
 #define GEN7_3DSTATE_SAMPLE_MASK_header         \
    .CommandType          =  3,                  \
@@ -2798,6 +2862,8 @@ GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS_pack(__gen_user_data *data, void * restri
    ._3DCommandSubOpcode  = 24,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_SAMPLE_MASK_length 0x00000002
+
 struct GEN7_3DSTATE_SAMPLE_MASK {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2809,7 +2875,7 @@ struct GEN7_3DSTATE_SAMPLE_MASK {
 
 static inline void
 GEN7_3DSTATE_SAMPLE_MASK_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_3DSTATE_SAMPLE_MASK * restrict values)
+                              const struct GEN7_3DSTATE_SAMPLE_MASK * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2827,7 +2893,6 @@ GEN7_3DSTATE_SAMPLE_MASK_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_SBE_length 0x0000000e
 #define GEN7_3DSTATE_SBE_length_bias 0x00000002
 #define GEN7_3DSTATE_SBE_header                 \
    .CommandType          =  3,                  \
@@ -2836,6 +2901,8 @@ GEN7_3DSTATE_SAMPLE_MASK_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 31,                  \
    .DwordLength          = 12
 
+#define GEN7_3DSTATE_SBE_length 0x0000000e
+
 struct GEN7_3DSTATE_SBE {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2846,16 +2913,16 @@ struct GEN7_3DSTATE_SBE {
 #define     SWIZ_16_31                                         1
    uint32_t                                     AttributeSwizzleControlMode;
    uint32_t                                     NumberofSFOutputAttributes;
-   uint32_t                                     AttributeSwizzleEnable;
+   bool                                         AttributeSwizzleEnable;
 #define     UPPERLEFT                                          0
 #define     LOWERLEFT                                          1
    uint32_t                                     PointSpriteTextureCoordinateOrigin;
    uint32_t                                     VertexURBEntryReadLength;
    uint32_t                                     VertexURBEntryReadOffset;
-   uint32_t                                     Attribute2n1ComponentOverrideW;
-   uint32_t                                     Attribute2n1ComponentOverrideZ;
-   uint32_t                                     Attribute2n1ComponentOverrideY;
-   uint32_t                                     Attribute2n1ComponentOverrideX;
+   bool                                         Attribute2n1ComponentOverrideW;
+   bool                                         Attribute2n1ComponentOverrideZ;
+   bool                                         Attribute2n1ComponentOverrideY;
+   bool                                         Attribute2n1ComponentOverrideX;
 #define     CONST_0000                                         0
 #define     CONST_0001_FLOAT                                   1
 #define     CONST_1111_FLOAT                                   2
@@ -2867,10 +2934,10 @@ struct GEN7_3DSTATE_SBE {
 #define     INPUTATTR_FACING_W                                 3
    uint32_t                                     Attribute2n1SwizzleSelect;
    uint32_t                                     Attribute2n1SourceAttribute;
-   uint32_t                                     Attribute2nComponentOverrideW;
-   uint32_t                                     Attribute2nComponentOverrideZ;
-   uint32_t                                     Attribute2nComponentOverrideY;
-   uint32_t                                     Attribute2nComponentOverrideX;
+   bool                                         Attribute2nComponentOverrideW;
+   bool                                         Attribute2nComponentOverrideZ;
+   bool                                         Attribute2nComponentOverrideY;
+   bool                                         Attribute2nComponentOverrideX;
 #define     CONST_0000                                         0
 #define     CONST_0001_FLOAT                                   1
 #define     CONST_1111_FLOAT                                   2
@@ -2904,7 +2971,7 @@ struct GEN7_3DSTATE_SBE {
 
 static inline void
 GEN7_3DSTATE_SBE_pack(__gen_user_data *data, void * restrict dst,
-                     const struct GEN7_3DSTATE_SBE * restrict values)
+                      const struct GEN7_3DSTATE_SBE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -2974,7 +3041,6 @@ GEN7_3DSTATE_SBE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_length_bias 0x00000002
 #define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_header\
    .CommandType          =  3,                  \
@@ -2983,6 +3049,8 @@ GEN7_3DSTATE_SBE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 15,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_SCISSOR_STATE_POINTERS_length 0x00000002
+
 struct GEN7_3DSTATE_SCISSOR_STATE_POINTERS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -2994,7 +3062,7 @@ struct GEN7_3DSTATE_SCISSOR_STATE_POINTERS {
 
 static inline void
 GEN7_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data *data, void * restrict dst,
-                                        const struct GEN7_3DSTATE_SCISSOR_STATE_POINTERS * restrict values)
+                                         const struct GEN7_3DSTATE_SCISSOR_STATE_POINTERS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3012,7 +3080,6 @@ GEN7_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data *data, void * restrict
 
 }
 
-#define GEN7_3DSTATE_SF_length 0x00000007
 #define GEN7_3DSTATE_SF_length_bias 0x00000002
 #define GEN7_3DSTATE_SF_header                  \
    .CommandType          =  3,                  \
@@ -3021,6 +3088,8 @@ GEN7_3DSTATE_SCISSOR_STATE_POINTERS_pack(__gen_user_data *data, void * restrict
    ._3DCommandSubOpcode  = 19,                  \
    .DwordLength          =  5
 
+#define GEN7_3DSTATE_SF_length 0x00000007
+
 struct GEN7_3DSTATE_SF {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3033,11 +3102,11 @@ struct GEN7_3DSTATE_SF {
 #define     D24_UNORM_X8_UINT                                  3
 #define     D16_UNORM                                          5
    uint32_t                                     DepthBufferSurfaceFormat;
-   uint32_t                                     LegacyGlobalDepthBiasEnable;
-   uint32_t                                     StatisticsEnable;
-   uint32_t                                     GlobalDepthOffsetEnableSolid;
-   uint32_t                                     GlobalDepthOffsetEnableWireframe;
-   uint32_t                                     GlobalDepthOffsetEnablePoint;
+   bool                                         LegacyGlobalDepthBiasEnable;
+   bool                                         StatisticsEnable;
+   bool                                         GlobalDepthOffsetEnableSolid;
+   bool                                         GlobalDepthOffsetEnableWireframe;
+   bool                                         GlobalDepthOffsetEnablePoint;
 #define     RASTER_SOLID                                       0
 #define     RASTER_WIREFRAME                                   1
 #define     RASTER_POINT                                       2
@@ -3046,19 +3115,19 @@ struct GEN7_3DSTATE_SF {
 #define     RASTER_WIREFRAME                                   1
 #define     RASTER_POINT                                       2
    uint32_t                                     BackFaceFillMode;
-   uint32_t                                     ViewTransformEnable;
+   bool                                         ViewTransformEnable;
    uint32_t                                     FrontWinding;
-   uint32_t                                     AntiAliasingEnable;
+   bool                                         AntiAliasingEnable;
 #define     CULLMODE_BOTH                                      0
 #define     CULLMODE_NONE                                      1
 #define     CULLMODE_FRONT                                     2
 #define     CULLMODE_BACK                                      3
    uint32_t                                     CullMode;
-   uint32_t                                     LineWidth;
+   float                                        LineWidth;
    uint32_t                                     LineEndCapAntialiasingRegionWidth;
-   uint32_t                                     ScissorRectangleEnable;
+   bool                                         ScissorRectangleEnable;
    uint32_t                                     MultisampleRasterizationMode;
-   uint32_t                                     LastPixelEnable;
+   bool                                         LastPixelEnable;
 #define     Vertex0                                            0
 #define     Vertex1                                            1
 #define     Vertex2                                            2
@@ -3072,15 +3141,15 @@ struct GEN7_3DSTATE_SF {
    uint32_t                                     AALineDistanceMode;
    uint32_t                                     VertexSubPixelPrecisionSelect;
    uint32_t                                     UsePointWidthState;
-   uint32_t                                     PointWidth;
-   uint32_t                                     GlobalDepthOffsetConstant;
-   uint32_t                                     GlobalDepthOffsetScale;
-   uint32_t                                     GlobalDepthOffsetClamp;
+   float                                        PointWidth;
+   float                                        GlobalDepthOffsetConstant;
+   float                                        GlobalDepthOffsetScale;
+   float                                        GlobalDepthOffsetClamp;
 };
 
 static inline void
 GEN7_3DSTATE_SF_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN7_3DSTATE_SF * restrict values)
+                     const struct GEN7_3DSTATE_SF * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3108,7 +3177,7 @@ GEN7_3DSTATE_SF_pack(__gen_user_data *data, void * restrict dst,
    dw[2] =
       __gen_field(values->AntiAliasingEnable, 31, 31) |
       __gen_field(values->CullMode, 29, 30) |
-      __gen_field(values->LineWidth, 18, 27) |
+      __gen_field(values->LineWidth * (1 << 7), 18, 27) |
       __gen_field(values->LineEndCapAntialiasingRegionWidth, 16, 17) |
       __gen_field(values->ScissorRectangleEnable, 11, 11) |
       __gen_field(values->MultisampleRasterizationMode, 8, 9) |
@@ -3122,24 +3191,23 @@ GEN7_3DSTATE_SF_pack(__gen_user_data *data, void * restrict dst,
       __gen_field(values->AALineDistanceMode, 14, 14) |
       __gen_field(values->VertexSubPixelPrecisionSelect, 12, 12) |
       __gen_field(values->UsePointWidthState, 11, 11) |
-      __gen_field(values->PointWidth, 0, 10) |
+      __gen_field(values->PointWidth * (1 << 3), 0, 10) |
       0;
 
    dw[4] =
-      __gen_field(values->GlobalDepthOffsetConstant, 0, 31) |
+      __gen_float(values->GlobalDepthOffsetConstant) |
       0;
 
    dw[5] =
-      __gen_field(values->GlobalDepthOffsetScale, 0, 31) |
+      __gen_float(values->GlobalDepthOffsetScale) |
       0;
 
    dw[6] =
-      __gen_field(values->GlobalDepthOffsetClamp, 0, 31) |
+      __gen_float(values->GlobalDepthOffsetClamp) |
       0;
 
 }
 
-#define GEN7_3DSTATE_SO_BUFFER_length 0x00000004
 #define GEN7_3DSTATE_SO_BUFFER_length_bias 0x00000002
 #define GEN7_3DSTATE_SO_BUFFER_header           \
    .CommandType          =  3,                  \
@@ -3148,6 +3216,8 @@ GEN7_3DSTATE_SF_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 24,                  \
    .DwordLength          =  2
 
+#define GEN7_3DSTATE_SO_BUFFER_length 0x00000004
+
 struct GEN7_3DSTATE_SO_BUFFER {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3163,7 +3233,7 @@ struct GEN7_3DSTATE_SO_BUFFER {
 
 static inline void
 GEN7_3DSTATE_SO_BUFFER_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN7_3DSTATE_SO_BUFFER * restrict values)
+                            const struct GEN7_3DSTATE_SO_BUFFER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3179,7 +3249,6 @@ GEN7_3DSTATE_SO_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SOBufferObjectControlState, &values->SOBufferObjectControlState);
    dw[1] =
       __gen_field(values->SOBufferIndex, 29, 30) |
-      /* Struct  SOBufferObjectControlState (25..28): */
       __gen_field(dw_SOBufferObjectControlState, 25, 28) |
       __gen_field(values->SurfacePitch, 0, 11) |
       0;
@@ -3205,6 +3274,12 @@ GEN7_3DSTATE_SO_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  1,                  \
    ._3DCommandSubOpcode  = 23
 
+#define GEN7_3DSTATE_SO_DECL_LIST_length 0x00000000
+
+#define GEN7_SO_DECL_ENTRY_length 0x00000002
+
+#define GEN7_SO_DECL_length 0x00000001
+
 struct GEN7_SO_DECL {
    uint32_t                                     OutputBufferSlot;
    uint32_t                                     HoleFlag;
@@ -3214,7 +3289,7 @@ struct GEN7_SO_DECL {
 
 static inline void
 GEN7_SO_DECL_pack(__gen_user_data *data, void * restrict dst,
-                 const struct GEN7_SO_DECL * restrict values)
+                  const struct GEN7_SO_DECL * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3236,7 +3311,7 @@ struct GEN7_SO_DECL_ENTRY {
 
 static inline void
 GEN7_SO_DECL_ENTRY_pack(__gen_user_data *data, void * restrict dst,
-                       const struct GEN7_SO_DECL_ENTRY * restrict values)
+                        const struct GEN7_SO_DECL_ENTRY * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3248,18 +3323,16 @@ GEN7_SO_DECL_ENTRY_pack(__gen_user_data *data, void * restrict dst,
    GEN7_SO_DECL_pack(data, &dw_Stream1Decl, &values->Stream1Decl);
    uint32_t dw_Stream0Decl;
    GEN7_SO_DECL_pack(data, &dw_Stream0Decl, &values->Stream0Decl);
-   dw[0] =
-      /* Struct  Stream3Decl (48..63): */
+   uint64_t qw0 =
       __gen_field(dw_Stream3Decl, 48, 63) |
-      /* Struct  Stream2Decl (32..47): */
       __gen_field(dw_Stream2Decl, 32, 47) |
-      /* Struct  Stream1Decl (16..31): */
       __gen_field(dw_Stream1Decl, 16, 31) |
-      /* Struct  Stream0Decl (0..15): */
       __gen_field(dw_Stream0Decl, 0, 15) |
       0;
 
-   GEN7_SO_DECL_pack(data, &dw[0], &values->Stream0Decl);
+   dw[0] = qw0;
+   dw[1] = qw0 >> 32;
+
 }
 
 struct GEN7_3DSTATE_SO_DECL_LIST {
@@ -3281,7 +3354,7 @@ struct GEN7_3DSTATE_SO_DECL_LIST {
 
 static inline void
 GEN7_3DSTATE_SO_DECL_LIST_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN7_3DSTATE_SO_DECL_LIST * restrict values)
+                               const struct GEN7_3DSTATE_SO_DECL_LIST * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3310,7 +3383,6 @@ GEN7_3DSTATE_SO_DECL_LIST_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN7_3DSTATE_STENCIL_BUFFER_length 0x00000003
 #define GEN7_3DSTATE_STENCIL_BUFFER_length_bias 0x00000002
 #define GEN7_3DSTATE_STENCIL_BUFFER_header      \
    .CommandType          =  3,                  \
@@ -3319,6 +3391,8 @@ GEN7_3DSTATE_SO_DECL_LIST_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  6,                  \
    .DwordLength          =  1
 
+#define GEN7_3DSTATE_STENCIL_BUFFER_length 0x00000003
+
 struct GEN7_3DSTATE_STENCIL_BUFFER {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3332,7 +3406,7 @@ struct GEN7_3DSTATE_STENCIL_BUFFER {
 
 static inline void
 GEN7_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data *data, void * restrict dst,
-                                const struct GEN7_3DSTATE_STENCIL_BUFFER * restrict values)
+                                 const struct GEN7_3DSTATE_STENCIL_BUFFER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3347,7 +3421,6 @@ GEN7_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    uint32_t dw_StencilBufferObjectControlState;
    GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_StencilBufferObjectControlState, &values->StencilBufferObjectControlState);
    dw[1] =
-      /* Struct  StencilBufferObjectControlState (25..28): */
       __gen_field(dw_StencilBufferObjectControlState, 25, 28) |
       __gen_field(values->SurfacePitch, 0, 16) |
       0;
@@ -3360,7 +3433,6 @@ GEN7_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_STREAMOUT_length 0x00000003
 #define GEN7_3DSTATE_STREAMOUT_length_bias 0x00000002
 #define GEN7_3DSTATE_STREAMOUT_header           \
    .CommandType          =  3,                  \
@@ -3369,6 +3441,8 @@ GEN7_3DSTATE_STENCIL_BUFFER_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 30,                  \
    .DwordLength          =  1
 
+#define GEN7_3DSTATE_STREAMOUT_length 0x00000003
+
 struct GEN7_3DSTATE_STREAMOUT {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3381,7 +3455,7 @@ struct GEN7_3DSTATE_STREAMOUT {
 #define     LEADING                                            0
 #define     TRAILING                                           1
    uint32_t                                     ReorderMode;
-   uint32_t                                     SOStatisticsEnable;
+   bool                                         SOStatisticsEnable;
    uint32_t                                     SOBufferEnable3;
    uint32_t                                     SOBufferEnable2;
    uint32_t                                     SOBufferEnable1;
@@ -3398,7 +3472,7 @@ struct GEN7_3DSTATE_STREAMOUT {
 
 static inline void
 GEN7_3DSTATE_STREAMOUT_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN7_3DSTATE_STREAMOUT * restrict values)
+                            const struct GEN7_3DSTATE_STREAMOUT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3435,7 +3509,6 @@ GEN7_3DSTATE_STREAMOUT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_TE_length 0x00000004
 #define GEN7_3DSTATE_TE_length_bias 0x00000002
 #define GEN7_3DSTATE_TE_header                  \
    .CommandType          =  3,                  \
@@ -3444,6 +3517,8 @@ GEN7_3DSTATE_STREAMOUT_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 28,                  \
    .DwordLength          =  2
 
+#define GEN7_3DSTATE_TE_length 0x00000004
+
 struct GEN7_3DSTATE_TE {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3455,9 +3530,9 @@ struct GEN7_3DSTATE_TE {
 #define     EVEN_FRACTIONAL                                    2
    uint32_t                                     Partitioning;
 #define     POINT                                              0
-#define     LINE                                               1
-#define     TRI_CW                                             2
-#define     TRI_CCW                                            3
+#define     OUTPUT_LINE                                        1
+#define     OUTPUT_TRI_CW                                      2
+#define     OUTPUT_TRI_CCW                                     3
    uint32_t                                     OutputTopology;
 #define     QUAD                                               0
 #define     TRI                                                1
@@ -3466,14 +3541,14 @@ struct GEN7_3DSTATE_TE {
 #define     HW_TESS                                            0
 #define     SW_TESS                                            1
    uint32_t                                     TEMode;
-   uint32_t                                     TEEnable;
+   bool                                         TEEnable;
    float                                        MaximumTessellationFactorOdd;
    float                                        MaximumTessellationFactorNotOdd;
 };
 
 static inline void
 GEN7_3DSTATE_TE_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN7_3DSTATE_TE * restrict values)
+                     const struct GEN7_3DSTATE_TE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3503,7 +3578,6 @@ GEN7_3DSTATE_TE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_URB_DS_length 0x00000002
 #define GEN7_3DSTATE_URB_DS_length_bias 0x00000002
 #define GEN7_3DSTATE_URB_DS_header              \
    .CommandType          =  3,                  \
@@ -3512,6 +3586,8 @@ GEN7_3DSTATE_TE_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 50,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_URB_DS_length 0x00000002
+
 struct GEN7_3DSTATE_URB_DS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3525,7 +3601,7 @@ struct GEN7_3DSTATE_URB_DS {
 
 static inline void
 GEN7_3DSTATE_URB_DS_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN7_3DSTATE_URB_DS * restrict values)
+                         const struct GEN7_3DSTATE_URB_DS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3545,7 +3621,6 @@ GEN7_3DSTATE_URB_DS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_URB_GS_length 0x00000002
 #define GEN7_3DSTATE_URB_GS_length_bias 0x00000002
 #define GEN7_3DSTATE_URB_GS_header              \
    .CommandType          =  3,                  \
@@ -3554,6 +3629,8 @@ GEN7_3DSTATE_URB_DS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 51,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_URB_GS_length 0x00000002
+
 struct GEN7_3DSTATE_URB_GS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3567,7 +3644,7 @@ struct GEN7_3DSTATE_URB_GS {
 
 static inline void
 GEN7_3DSTATE_URB_GS_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN7_3DSTATE_URB_GS * restrict values)
+                         const struct GEN7_3DSTATE_URB_GS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3587,7 +3664,6 @@ GEN7_3DSTATE_URB_GS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_URB_HS_length 0x00000002
 #define GEN7_3DSTATE_URB_HS_length_bias 0x00000002
 #define GEN7_3DSTATE_URB_HS_header              \
    .CommandType          =  3,                  \
@@ -3596,6 +3672,8 @@ GEN7_3DSTATE_URB_GS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 49,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_URB_HS_length 0x00000002
+
 struct GEN7_3DSTATE_URB_HS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3609,7 +3687,7 @@ struct GEN7_3DSTATE_URB_HS {
 
 static inline void
 GEN7_3DSTATE_URB_HS_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN7_3DSTATE_URB_HS * restrict values)
+                         const struct GEN7_3DSTATE_URB_HS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3636,6 +3714,10 @@ GEN7_3DSTATE_URB_HS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  =  8
 
+#define GEN7_3DSTATE_VERTEX_BUFFERS_length 0x00000000
+
+#define GEN7_VERTEX_BUFFER_STATE_length 0x00000004
+
 struct GEN7_VERTEX_BUFFER_STATE {
    uint32_t                                     VertexBufferIndex;
 #define     VERTEXDATA                                         0
@@ -3643,7 +3725,7 @@ struct GEN7_VERTEX_BUFFER_STATE {
    uint32_t                                     BufferAccessType;
    struct GEN7_MEMORY_OBJECT_CONTROL_STATE      VertexBufferMemoryObjectControlState;
    uint32_t                                     AddressModifyEnable;
-   uint32_t                                     NullVertexBuffer;
+   bool                                         NullVertexBuffer;
    uint32_t                                     VertexFetchInvalidate;
    uint32_t                                     BufferPitch;
    __gen_address_type                           BufferStartingAddress;
@@ -3653,7 +3735,7 @@ struct GEN7_VERTEX_BUFFER_STATE {
 
 static inline void
 GEN7_VERTEX_BUFFER_STATE_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_VERTEX_BUFFER_STATE * restrict values)
+                              const struct GEN7_VERTEX_BUFFER_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3662,7 +3744,6 @@ GEN7_VERTEX_BUFFER_STATE_pack(__gen_user_data *data, void * restrict dst,
    dw[0] =
       __gen_field(values->VertexBufferIndex, 26, 31) |
       __gen_field(values->BufferAccessType, 20, 20) |
-      /* Struct  VertexBufferMemoryObjectControlState (16..19): */
       __gen_field(dw_VertexBufferMemoryObjectControlState, 16, 19) |
       __gen_field(values->AddressModifyEnable, 14, 14) |
       __gen_field(values->NullVertexBuffer, 13, 13) |
@@ -3699,7 +3780,7 @@ struct GEN7_3DSTATE_VERTEX_BUFFERS {
 
 static inline void
 GEN7_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data *data, void * restrict dst,
-                                const struct GEN7_3DSTATE_VERTEX_BUFFERS * restrict values)
+                                 const struct GEN7_3DSTATE_VERTEX_BUFFERS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3721,11 +3802,15 @@ GEN7_3DSTATE_VERTEX_BUFFERS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  =  9
 
+#define GEN7_3DSTATE_VERTEX_ELEMENTS_length 0x00000000
+
+#define GEN7_VERTEX_ELEMENT_STATE_length 0x00000002
+
 struct GEN7_VERTEX_ELEMENT_STATE {
    uint32_t                                     VertexBufferIndex;
-   uint32_t                                     Valid;
+   bool                                         Valid;
    uint32_t                                     SourceElementFormat;
-   uint32_t                                     EdgeFlagEnable;
+   bool                                         EdgeFlagEnable;
    uint32_t                                     SourceElementOffset;
    uint32_t                                     Component0Control;
    uint32_t                                     Component1Control;
@@ -3735,7 +3820,7 @@ struct GEN7_VERTEX_ELEMENT_STATE {
 
 static inline void
 GEN7_VERTEX_ELEMENT_STATE_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN7_VERTEX_ELEMENT_STATE * restrict values)
+                               const struct GEN7_VERTEX_ELEMENT_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3767,7 +3852,7 @@ struct GEN7_3DSTATE_VERTEX_ELEMENTS {
 
 static inline void
 GEN7_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data *data, void * restrict dst,
-                                 const struct GEN7_3DSTATE_VERTEX_ELEMENTS * restrict values)
+                                  const struct GEN7_3DSTATE_VERTEX_ELEMENTS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3782,7 +3867,6 @@ GEN7_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN7_3DSTATE_VF_STATISTICS_length 0x00000001
 #define GEN7_3DSTATE_VF_STATISTICS_length_bias 0x00000001
 #define GEN7_3DSTATE_VF_STATISTICS_header       \
    .CommandType          =  3,                  \
@@ -3790,17 +3874,19 @@ GEN7_3DSTATE_VERTEX_ELEMENTS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandOpcode     =  0,                  \
    ._3DCommandSubOpcode  = 11
 
+#define GEN7_3DSTATE_VF_STATISTICS_length 0x00000001
+
 struct GEN7_3DSTATE_VF_STATISTICS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
-   uint32_t                                     StatisticsEnable;
+   bool                                         StatisticsEnable;
 };
 
 static inline void
 GEN7_3DSTATE_VF_STATISTICS_pack(__gen_user_data *data, void * restrict dst,
-                               const struct GEN7_3DSTATE_VF_STATISTICS * restrict values)
+                                const struct GEN7_3DSTATE_VF_STATISTICS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3814,7 +3900,6 @@ GEN7_3DSTATE_VF_STATISTICS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length_bias 0x00000002
 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_header\
    .CommandType          =  3,                  \
@@ -3823,6 +3908,8 @@ GEN7_3DSTATE_VF_STATISTICS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 35,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_length 0x00000002
+
 struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3834,7 +3921,7 @@ struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC {
 
 static inline void
 GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data *data, void * restrict dst,
-                                            const struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC * restrict values)
+                                             const struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3852,7 +3939,6 @@ GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data *data, void * restr
 
 }
 
-#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length_bias 0x00000002
 #define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_header\
    .CommandType          =  3,                  \
@@ -3861,6 +3947,8 @@ GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC_pack(__gen_user_data *data, void * restr
    ._3DCommandSubOpcode  = 33,                  \
    .DwordLength          =  0
 
+#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_length 0x00000002
+
 struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3872,7 +3960,7 @@ struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP {
 
 static inline void
 GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data *data, void * restrict dst,
-                                                 const struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP * restrict values)
+                                                  const struct GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3890,7 +3978,6 @@ GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data *data, void *
 
 }
 
-#define GEN7_3DSTATE_VS_length 0x00000006
 #define GEN7_3DSTATE_VS_length_bias 0x00000002
 #define GEN7_3DSTATE_VS_header                  \
    .CommandType          =  3,                  \
@@ -3899,6 +3986,8 @@ GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP_pack(__gen_user_data *data, void *
    ._3DCommandSubOpcode  = 16,                  \
    .DwordLength          =  4
 
+#define GEN7_3DSTATE_VS_length 0x00000006
+
 struct GEN7_3DSTATE_VS {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -3922,22 +4011,22 @@ struct GEN7_3DSTATE_VS {
 #define     IEEE754                                            0
 #define     Alternate                                          1
    uint32_t                                     FloatingPointMode;
-   uint32_t                                     IllegalOpcodeExceptionEnable;
-   uint32_t                                     SoftwareExceptionEnable;
+   bool                                         IllegalOpcodeExceptionEnable;
+   bool                                         SoftwareExceptionEnable;
    uint32_t                                     ScratchSpaceBaseOffset;
    uint32_t                                     PerThreadScratchSpace;
    uint32_t                                     DispatchGRFStartRegisterforURBData;
    uint32_t                                     VertexURBEntryReadLength;
    uint32_t                                     VertexURBEntryReadOffset;
    uint32_t                                     MaximumNumberofThreads;
-   uint32_t                                     StatisticsEnable;
-   uint32_t                                     VertexCacheDisable;
-   uint32_t                                     VSFunctionEnable;
+   bool                                         StatisticsEnable;
+   bool                                         VertexCacheDisable;
+   bool                                         VSFunctionEnable;
 };
 
 static inline void
 GEN7_3DSTATE_VS_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN7_3DSTATE_VS * restrict values)
+                     const struct GEN7_3DSTATE_VS * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -3983,7 +4072,6 @@ GEN7_3DSTATE_VS_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_WM_length 0x00000003
 #define GEN7_3DSTATE_WM_length_bias 0x00000002
 #define GEN7_3DSTATE_WM_header                  \
    .CommandType          =  3,                  \
@@ -3992,19 +4080,21 @@ GEN7_3DSTATE_VS_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  = 20,                  \
    .DwordLength          =  1
 
+#define GEN7_3DSTATE_WM_length 0x00000003
+
 struct GEN7_3DSTATE_WM {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
    uint32_t                                     _3DCommandOpcode;
    uint32_t                                     _3DCommandSubOpcode;
    uint32_t                                     DwordLength;
-   uint32_t                                     StatisticsEnable;
-   uint32_t                                     DepthBufferClear;
-   uint32_t                                     ThreadDispatchEnable;
-   uint32_t                                     DepthBufferResolveEnable;
-   uint32_t                                     HierarchicalDepthBufferResolveEnable;
-   uint32_t                                     LegacyDiamondLineRasterization;
-   uint32_t                                     PixelShaderKillPixel;
+   bool                                         StatisticsEnable;
+   bool                                         DepthBufferClear;
+   bool                                         ThreadDispatchEnable;
+   bool                                         DepthBufferResolveEnable;
+   bool                                         HierarchicalDepthBufferResolveEnable;
+   bool                                         LegacyDiamondLineRasterization;
+   bool                                         PixelShaderKillPixel;
 #define     PSCDEPTH_OFF                                       0
 #define     PSCDEPTH_ON                                        1
 #define     PSCDEPTH_ON_GE                                     2
@@ -4014,18 +4104,18 @@ struct GEN7_3DSTATE_WM {
 #define     EDSC_PSEXEC                                        1
 #define     EDSC_PREPS                                         2
    uint32_t                                     EarlyDepthStencilControl;
-   uint32_t                                     PixelShaderUsesSourceDepth;
-   uint32_t                                     PixelShaderUsesSourceW;
+   bool                                         PixelShaderUsesSourceDepth;
+   bool                                         PixelShaderUsesSourceW;
 #define     INTERP_PIXEL                                       0
 #define     INTERP_CENTROID                                    2
 #define     INTERP_SAMPLE                                      3
    uint32_t                                     PositionZWInterpolationMode;
    uint32_t                                     BarycentricInterpolationMode;
-   uint32_t                                     PixelShaderUsesInputCoverageMask;
+   bool                                         PixelShaderUsesInputCoverageMask;
    uint32_t                                     LineEndCapAntialiasingRegionWidth;
    uint32_t                                     LineAntialiasingRegionWidth;
-   uint32_t                                     PolygonStippleEnable;
-   uint32_t                                     LineStippleEnable;
+   bool                                         PolygonStippleEnable;
+   bool                                         LineStippleEnable;
 #define     RASTRULE_UPPER_LEFT                                0
 #define     RASTRULE_UPPER_RIGHT                               1
    uint32_t                                     PointRasterizationRule;
@@ -4041,7 +4131,7 @@ struct GEN7_3DSTATE_WM {
 
 static inline void
 GEN7_3DSTATE_WM_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN7_3DSTATE_WM * restrict values)
+                     const struct GEN7_3DSTATE_WM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4082,7 +4172,6 @@ GEN7_3DSTATE_WM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_GPGPU_OBJECT_length 0x00000008
 #define GEN7_GPGPU_OBJECT_length_bias 0x00000002
 #define GEN7_GPGPU_OBJECT_header                \
    .CommandType          =  3,                  \
@@ -4091,12 +4180,14 @@ GEN7_3DSTATE_WM_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcode            =  4,                  \
    .DwordLength          =  6
 
+#define GEN7_GPGPU_OBJECT_length 0x00000008
+
 struct GEN7_GPGPU_OBJECT {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
    uint32_t                                     MediaCommandOpcode;
    uint32_t                                     SubOpcode;
-   uint32_t                                     PredicateEnable;
+   bool                                         PredicateEnable;
    uint32_t                                     DwordLength;
    uint32_t                                     SharedLocalMemoryFixedOffset;
    uint32_t                                     InterfaceDescriptorOffset;
@@ -4116,7 +4207,7 @@ struct GEN7_GPGPU_OBJECT {
 
 static inline void
 GEN7_GPGPU_OBJECT_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN7_GPGPU_OBJECT * restrict values)
+                       const struct GEN7_GPGPU_OBJECT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4163,7 +4254,6 @@ GEN7_GPGPU_OBJECT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_GPGPU_WALKER_length 0x0000000b
 #define GEN7_GPGPU_WALKER_length_bias 0x00000002
 #define GEN7_GPGPU_WALKER_header                \
    .CommandType          =  3,                  \
@@ -4172,13 +4262,15 @@ GEN7_GPGPU_OBJECT_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcodeA           =  5,                  \
    .DwordLength          =  9
 
+#define GEN7_GPGPU_WALKER_length 0x0000000b
+
 struct GEN7_GPGPU_WALKER {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
    uint32_t                                     MediaCommandOpcode;
    uint32_t                                     SubOpcodeA;
-   uint32_t                                     IndirectParameterEnable;
-   uint32_t                                     PredicateEnable;
+   bool                                         IndirectParameterEnable;
+   bool                                         PredicateEnable;
    uint32_t                                     DwordLength;
    uint32_t                                     InterfaceDescriptorOffset;
 #define     SIMD8                                              0
@@ -4200,7 +4292,7 @@ struct GEN7_GPGPU_WALKER {
 
 static inline void
 GEN7_GPGPU_WALKER_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN7_GPGPU_WALKER * restrict values)
+                       const struct GEN7_GPGPU_WALKER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4259,7 +4351,6 @@ GEN7_GPGPU_WALKER_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MEDIA_CURBE_LOAD_length 0x00000004
 #define GEN7_MEDIA_CURBE_LOAD_length_bias 0x00000002
 #define GEN7_MEDIA_CURBE_LOAD_header            \
    .CommandType          =  3,                  \
@@ -4268,6 +4359,8 @@ GEN7_GPGPU_WALKER_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcode            =  1,                  \
    .DwordLength          =  2
 
+#define GEN7_MEDIA_CURBE_LOAD_length 0x00000004
+
 struct GEN7_MEDIA_CURBE_LOAD {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
@@ -4280,7 +4373,7 @@ struct GEN7_MEDIA_CURBE_LOAD {
 
 static inline void
 GEN7_MEDIA_CURBE_LOAD_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN7_MEDIA_CURBE_LOAD * restrict values)
+                           const struct GEN7_MEDIA_CURBE_LOAD * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4305,7 +4398,6 @@ GEN7_MEDIA_CURBE_LOAD_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length_bias 0x00000002
 #define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_header\
    .CommandType          =  3,                  \
@@ -4314,6 +4406,8 @@ GEN7_MEDIA_CURBE_LOAD_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcode            =  2,                  \
    .DwordLength          =  2
 
+#define GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_length 0x00000004
+
 struct GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
@@ -4326,7 +4420,7 @@ struct GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD {
 
 static inline void
 GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data *data, void * restrict dst,
-                                         const struct GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD * restrict values)
+                                          const struct GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4358,6 +4452,8 @@ GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD_pack(__gen_user_data *data, void * restrict
    .MediaCommandOpcode   =  1,                  \
    .MediaCommandSubOpcode =  0
 
+#define GEN7_MEDIA_OBJECT_length 0x00000000
+
 struct GEN7_MEDIA_OBJECT {
    uint32_t                                     CommandType;
    uint32_t                                     MediaCommandPipeline;
@@ -4365,7 +4461,7 @@ struct GEN7_MEDIA_OBJECT {
    uint32_t                                     MediaCommandSubOpcode;
    uint32_t                                     DwordLength;
    uint32_t                                     InterfaceDescriptorOffset;
-   uint32_t                                     ChildrenPresent;
+   bool                                         ChildrenPresent;
 #define     Nothreadsynchronization                            0
 #define     Threaddispatchissynchronizedbythespawnrootthreadmessage       1
    uint32_t                                     ThreadSynchronization;
@@ -4381,13 +4477,13 @@ struct GEN7_MEDIA_OBJECT {
    uint32_t                                     ScoredboardY;
    uint32_t                                     ScoreboardX;
    uint32_t                                     ScoreboardColor;
-   uint32_t                                     ScoreboardMask;
+   bool                                         ScoreboardMask;
    /* variable length fields follow */
 };
 
 static inline void
 GEN7_MEDIA_OBJECT_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN7_MEDIA_OBJECT * restrict values)
+                       const struct GEN7_MEDIA_OBJECT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4430,7 +4526,6 @@ GEN7_MEDIA_OBJECT_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN7_MEDIA_OBJECT_PRT_length 0x00000010
 #define GEN7_MEDIA_OBJECT_PRT_length_bias 0x00000002
 #define GEN7_MEDIA_OBJECT_PRT_header            \
    .CommandType          =  3,                  \
@@ -4439,6 +4534,8 @@ GEN7_MEDIA_OBJECT_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcode            =  2,                  \
    .DwordLength          = 14
 
+#define GEN7_MEDIA_OBJECT_PRT_length 0x00000010
+
 struct GEN7_MEDIA_OBJECT_PRT {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
@@ -4446,17 +4543,17 @@ struct GEN7_MEDIA_OBJECT_PRT {
    uint32_t                                     SubOpcode;
    uint32_t                                     DwordLength;
    uint32_t                                     InterfaceDescriptorOffset;
-   uint32_t                                     ChildrenPresent;
-   uint32_t                                     PRT_FenceNeeded;
+   bool                                         ChildrenPresent;
+   bool                                         PRT_FenceNeeded;
 #define     Rootthreadqueue                                    0
 #define     VFEstateflush                                      1
    uint32_t                                     PRT_FenceType;
-   uint32_t                                     InlineData;
+   uint32_t                                     InlineData[12];
 };
 
 static inline void
 GEN7_MEDIA_OBJECT_PRT_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN7_MEDIA_OBJECT_PRT * restrict values)
+                           const struct GEN7_MEDIA_OBJECT_PRT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4481,9 +4578,11 @@ GEN7_MEDIA_OBJECT_PRT_pack(__gen_user_data *data, void * restrict dst,
    dw[3] =
       0;
 
-   dw[4] =
-      __gen_field(values->InlineData, 0, 31) |
-      0;
+   for (uint32_t i = 0, j = 4; i < 12; i += 1, j++) {
+      dw[j] =
+         __gen_field(values->InlineData[i + 0], 0, 31) |
+         0;
+   }
 
 }
 
@@ -4494,6 +4593,8 @@ GEN7_MEDIA_OBJECT_PRT_pack(__gen_user_data *data, void * restrict dst,
    .MediaCommandOpcode   =  1,                  \
    .SubOpcode            =  3
 
+#define GEN7_MEDIA_OBJECT_WALKER_length 0x00000000
+
 struct GEN7_MEDIA_OBJECT_WALKER {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
@@ -4501,7 +4602,7 @@ struct GEN7_MEDIA_OBJECT_WALKER {
    uint32_t                                     SubOpcode;
    uint32_t                                     DwordLength;
    uint32_t                                     InterfaceDescriptorOffset;
-   uint32_t                                     ChildrenPresent;
+   bool                                         ChildrenPresent;
 #define     Nothreadsynchronization                            0
 #define     Threaddispatchissynchronizedbythespawnrootthreadmessage       1
    uint32_t                                     ThreadSynchronization;
@@ -4510,9 +4611,9 @@ struct GEN7_MEDIA_OBJECT_WALKER {
    uint32_t                                     UseScoreboard;
    uint32_t                                     IndirectDataLength;
    uint32_t                                     IndirectDataStartAddress;
-   uint32_t                                     ScoreboardMask;
-   uint32_t                                     DualMode;
-   uint32_t                                     Repel;
+   bool                                         ScoreboardMask;
+   bool                                         DualMode;
+   bool                                         Repel;
    uint32_t                                     ColorCountMinusOne;
    uint32_t                                     MiddleLoopExtraSteps;
    uint32_t                                     LocalMidLoopUnitY;
@@ -4542,7 +4643,7 @@ struct GEN7_MEDIA_OBJECT_WALKER {
 
 static inline void
 GEN7_MEDIA_OBJECT_WALKER_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_MEDIA_OBJECT_WALKER * restrict values)
+                              const struct GEN7_MEDIA_OBJECT_WALKER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4638,7 +4739,6 @@ GEN7_MEDIA_OBJECT_WALKER_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN7_MEDIA_STATE_FLUSH_length 0x00000002
 #define GEN7_MEDIA_STATE_FLUSH_length_bias 0x00000002
 #define GEN7_MEDIA_STATE_FLUSH_header           \
    .CommandType          =  3,                  \
@@ -4647,6 +4747,8 @@ GEN7_MEDIA_OBJECT_WALKER_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcode            =  4,                  \
    .DwordLength          =  0
 
+#define GEN7_MEDIA_STATE_FLUSH_length 0x00000002
+
 struct GEN7_MEDIA_STATE_FLUSH {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
@@ -4659,7 +4761,7 @@ struct GEN7_MEDIA_STATE_FLUSH {
 
 static inline void
 GEN7_MEDIA_STATE_FLUSH_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN7_MEDIA_STATE_FLUSH * restrict values)
+                            const struct GEN7_MEDIA_STATE_FLUSH * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4678,7 +4780,6 @@ GEN7_MEDIA_STATE_FLUSH_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MEDIA_VFE_STATE_length 0x00000008
 #define GEN7_MEDIA_VFE_STATE_length_bias 0x00000002
 #define GEN7_MEDIA_VFE_STATE_header             \
    .CommandType          =  3,                  \
@@ -4687,6 +4788,8 @@ GEN7_MEDIA_STATE_FLUSH_pack(__gen_user_data *data, void * restrict dst,
    .SubOpcode            =  0,                  \
    .DwordLength          =  6
 
+#define GEN7_MEDIA_VFE_STATE_length 0x00000008
+
 struct GEN7_MEDIA_VFE_STATE {
    uint32_t                                     CommandType;
    uint32_t                                     Pipeline;
@@ -4736,7 +4839,7 @@ struct GEN7_MEDIA_VFE_STATE {
 
 static inline void
 GEN7_MEDIA_VFE_STATE_pack(__gen_user_data *data, void * restrict dst,
-                         const struct GEN7_MEDIA_VFE_STATE * restrict values)
+                          const struct GEN7_MEDIA_VFE_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4800,12 +4903,13 @@ GEN7_MEDIA_VFE_STATE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_ARB_CHECK_length 0x00000001
 #define GEN7_MI_ARB_CHECK_length_bias 0x00000001
 #define GEN7_MI_ARB_CHECK_header                \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  5
 
+#define GEN7_MI_ARB_CHECK_length 0x00000001
+
 struct GEN7_MI_ARB_CHECK {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -4813,7 +4917,7 @@ struct GEN7_MI_ARB_CHECK {
 
 static inline void
 GEN7_MI_ARB_CHECK_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN7_MI_ARB_CHECK * restrict values)
+                       const struct GEN7_MI_ARB_CHECK * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4824,21 +4928,22 @@ GEN7_MI_ARB_CHECK_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_ARB_ON_OFF_length 0x00000001
 #define GEN7_MI_ARB_ON_OFF_length_bias 0x00000001
 #define GEN7_MI_ARB_ON_OFF_header               \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  8
 
+#define GEN7_MI_ARB_ON_OFF_length 0x00000001
+
 struct GEN7_MI_ARB_ON_OFF {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     ArbitrationEnable;
+   bool                                         ArbitrationEnable;
 };
 
 static inline void
 GEN7_MI_ARB_ON_OFF_pack(__gen_user_data *data, void * restrict dst,
-                       const struct GEN7_MI_ARB_ON_OFF * restrict values)
+                        const struct GEN7_MI_ARB_ON_OFF * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4850,12 +4955,13 @@ GEN7_MI_ARB_ON_OFF_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_BATCH_BUFFER_END_length 0x00000001
 #define GEN7_MI_BATCH_BUFFER_END_length_bias 0x00000001
 #define GEN7_MI_BATCH_BUFFER_END_header         \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 10
 
+#define GEN7_MI_BATCH_BUFFER_END_length 0x00000001
+
 struct GEN7_MI_BATCH_BUFFER_END {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -4863,7 +4969,7 @@ struct GEN7_MI_BATCH_BUFFER_END {
 
 static inline void
 GEN7_MI_BATCH_BUFFER_END_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_MI_BATCH_BUFFER_END * restrict values)
+                              const struct GEN7_MI_BATCH_BUFFER_END * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4874,17 +4980,18 @@ GEN7_MI_BATCH_BUFFER_END_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_BATCH_BUFFER_START_length 0x00000002
 #define GEN7_MI_BATCH_BUFFER_START_length_bias 0x00000002
 #define GEN7_MI_BATCH_BUFFER_START_header       \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 49,                  \
    .DwordLength          =  0
 
+#define GEN7_MI_BATCH_BUFFER_START_length 0x00000002
+
 struct GEN7_MI_BATCH_BUFFER_START {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     ClearCommandBufferEnable;
+   bool                                         ClearCommandBufferEnable;
 #define     ASI_GGTT                                           0
 #define     ASI_PPGTT                                          1
    uint32_t                                     AddressSpaceIndicator;
@@ -4894,7 +5001,7 @@ struct GEN7_MI_BATCH_BUFFER_START {
 
 static inline void
 GEN7_MI_BATCH_BUFFER_START_pack(__gen_user_data *data, void * restrict dst,
-                               const struct GEN7_MI_BATCH_BUFFER_START * restrict values)
+                                const struct GEN7_MI_BATCH_BUFFER_START * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4919,6 +5026,8 @@ GEN7_MI_BATCH_BUFFER_START_pack(__gen_user_data *data, void * restrict dst,
    .CommandType          =  0,                  \
    .MICommandOpcode      = 39
 
+#define GEN7_MI_CLFLUSH_length 0x00000000
+
 struct GEN7_MI_CLFLUSH {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -4934,7 +5043,7 @@ struct GEN7_MI_CLFLUSH {
 
 static inline void
 GEN7_MI_CLFLUSH_pack(__gen_user_data *data, void * restrict dst,
-                    const struct GEN7_MI_CLFLUSH * restrict values)
+                     const struct GEN7_MI_CLFLUSH * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -4961,7 +5070,6 @@ GEN7_MI_CLFLUSH_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000002
 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_length_bias 0x00000002
 #define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_header\
    .CommandType          =  0,                  \
@@ -4970,6 +5078,8 @@ GEN7_MI_CLFLUSH_pack(__gen_user_data *data, void * restrict dst,
    .CompareSemaphore     =  0,                  \
    .DwordLength          =  0
 
+#define GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_length 0x00000002
+
 struct GEN7_MI_CONDITIONAL_BATCH_BUFFER_END {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -4982,7 +5092,7 @@ struct GEN7_MI_CONDITIONAL_BATCH_BUFFER_END {
 
 static inline void
 GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data *data, void * restrict dst,
-                                         const struct GEN7_MI_CONDITIONAL_BATCH_BUFFER_END * restrict values)
+                                          const struct GEN7_MI_CONDITIONAL_BATCH_BUFFER_END * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5006,31 +5116,32 @@ GEN7_MI_CONDITIONAL_BATCH_BUFFER_END_pack(__gen_user_data *data, void * restrict
 
 }
 
-#define GEN7_MI_FLUSH_length 0x00000001
 #define GEN7_MI_FLUSH_length_bias 0x00000001
 #define GEN7_MI_FLUSH_header                    \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  4
 
+#define GEN7_MI_FLUSH_length 0x00000001
+
 struct GEN7_MI_FLUSH {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     IndirectStatePointersDisable;
-   uint32_t                                     GenericMediaStateClear;
+   bool                                         IndirectStatePointersDisable;
+   bool                                         GenericMediaStateClear;
 #define     DontReset                                          0
 #define     Reset                                              1
-   uint32_t                                     GlobalSnapshotCountReset;
+   bool                                         GlobalSnapshotCountReset;
 #define     Flush                                              0
 #define     DontFlush                                          1
-   uint32_t                                     RenderCacheFlushInhibit;
+   bool                                         RenderCacheFlushInhibit;
 #define     DontInvalidate                                     0
 #define     Invalidate                                         1
-   uint32_t                                     StateInstructionCacheInvalidate;
+   bool                                         StateInstructionCacheInvalidate;
 };
 
 static inline void
 GEN7_MI_FLUSH_pack(__gen_user_data *data, void * restrict dst,
-                  const struct GEN7_MI_FLUSH * restrict values)
+                   const struct GEN7_MI_FLUSH * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5046,13 +5157,14 @@ GEN7_MI_FLUSH_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_LOAD_REGISTER_IMM_length 0x00000003
 #define GEN7_MI_LOAD_REGISTER_IMM_length_bias 0x00000002
 #define GEN7_MI_LOAD_REGISTER_IMM_header        \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 34,                  \
    .DwordLength          =  1
 
+#define GEN7_MI_LOAD_REGISTER_IMM_length 0x00000003
+
 struct GEN7_MI_LOAD_REGISTER_IMM {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -5064,7 +5176,7 @@ struct GEN7_MI_LOAD_REGISTER_IMM {
 
 static inline void
 GEN7_MI_LOAD_REGISTER_IMM_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN7_MI_LOAD_REGISTER_IMM * restrict values)
+                               const struct GEN7_MI_LOAD_REGISTER_IMM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5085,17 +5197,18 @@ GEN7_MI_LOAD_REGISTER_IMM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_LOAD_REGISTER_MEM_length 0x00000003
 #define GEN7_MI_LOAD_REGISTER_MEM_length_bias 0x00000002
 #define GEN7_MI_LOAD_REGISTER_MEM_header        \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 41,                  \
    .DwordLength          =  1
 
+#define GEN7_MI_LOAD_REGISTER_MEM_length 0x00000003
+
 struct GEN7_MI_LOAD_REGISTER_MEM {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     UseGlobalGTT;
+   bool                                         UseGlobalGTT;
    uint32_t                                     AsyncModeEnable;
    uint32_t                                     DwordLength;
    uint32_t                                     RegisterAddress;
@@ -5104,7 +5217,7 @@ struct GEN7_MI_LOAD_REGISTER_MEM {
 
 static inline void
 GEN7_MI_LOAD_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst,
-                              const struct GEN7_MI_LOAD_REGISTER_MEM * restrict values)
+                               const struct GEN7_MI_LOAD_REGISTER_MEM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5128,22 +5241,23 @@ GEN7_MI_LOAD_REGISTER_MEM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_NOOP_length 0x00000001
 #define GEN7_MI_NOOP_length_bias 0x00000001
 #define GEN7_MI_NOOP_header                     \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  0
 
+#define GEN7_MI_NOOP_length 0x00000001
+
 struct GEN7_MI_NOOP {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     IdentificationNumberRegisterWriteEnable;
+   bool                                         IdentificationNumberRegisterWriteEnable;
    uint32_t                                     IdentificationNumber;
 };
 
 static inline void
 GEN7_MI_NOOP_pack(__gen_user_data *data, void * restrict dst,
-                 const struct GEN7_MI_NOOP * restrict values)
+                  const struct GEN7_MI_NOOP * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5156,18 +5270,19 @@ GEN7_MI_NOOP_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_PREDICATE_length 0x00000001
 #define GEN7_MI_PREDICATE_length_bias 0x00000001
 #define GEN7_MI_PREDICATE_header                \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 12
 
+#define GEN7_MI_PREDICATE_length 0x00000001
+
 struct GEN7_MI_PREDICATE {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-#define     KEEP                                               0
-#define     LOAD                                               2
-#define     LOADINV                                            3
+#define     LOAD_KEEP                                          0
+#define     LOAD_LOAD                                          2
+#define     LOAD_LOADINV                                       3
    uint32_t                                     LoadOperation;
 #define     COMBINE_SET                                        0
 #define     COMBINE_AND                                        1
@@ -5181,7 +5296,7 @@ struct GEN7_MI_PREDICATE {
 
 static inline void
 GEN7_MI_PREDICATE_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN7_MI_PREDICATE * restrict values)
+                       const struct GEN7_MI_PREDICATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5195,12 +5310,13 @@ GEN7_MI_PREDICATE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_REPORT_HEAD_length 0x00000001
 #define GEN7_MI_REPORT_HEAD_length_bias 0x00000001
 #define GEN7_MI_REPORT_HEAD_header              \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  7
 
+#define GEN7_MI_REPORT_HEAD_length 0x00000001
+
 struct GEN7_MI_REPORT_HEAD {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -5208,7 +5324,7 @@ struct GEN7_MI_REPORT_HEAD {
 
 static inline void
 GEN7_MI_REPORT_HEAD_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN7_MI_REPORT_HEAD * restrict values)
+                         const struct GEN7_MI_REPORT_HEAD * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5219,13 +5335,14 @@ GEN7_MI_REPORT_HEAD_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_SEMAPHORE_MBOX_length 0x00000003
 #define GEN7_MI_SEMAPHORE_MBOX_length_bias 0x00000002
 #define GEN7_MI_SEMAPHORE_MBOX_header           \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 22,                  \
    .DwordLength          =  1
 
+#define GEN7_MI_SEMAPHORE_MBOX_length 0x00000003
+
 struct GEN7_MI_SEMAPHORE_MBOX {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -5239,7 +5356,7 @@ struct GEN7_MI_SEMAPHORE_MBOX {
 
 static inline void
 GEN7_MI_SEMAPHORE_MBOX_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN7_MI_SEMAPHORE_MBOX * restrict values)
+                            const struct GEN7_MI_SEMAPHORE_MBOX * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5259,28 +5376,29 @@ GEN7_MI_SEMAPHORE_MBOX_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_SET_CONTEXT_length 0x00000002
 #define GEN7_MI_SET_CONTEXT_length_bias 0x00000002
 #define GEN7_MI_SET_CONTEXT_header              \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 24,                  \
    .DwordLength          =  0
 
+#define GEN7_MI_SET_CONTEXT_length 0x00000002
+
 struct GEN7_MI_SET_CONTEXT {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
    uint32_t                                     DwordLength;
    __gen_address_type                           LogicalContextAddress;
    uint32_t                                     ReservedMustbe1;
-   uint32_t                                     ExtendedStateSaveEnable;
-   uint32_t                                     ExtendedStateRestoreEnable;
+   bool                                         ExtendedStateSaveEnable;
+   bool                                         ExtendedStateRestoreEnable;
    uint32_t                                     ForceRestore;
    uint32_t                                     RestoreInhibit;
 };
 
 static inline void
 GEN7_MI_SET_CONTEXT_pack(__gen_user_data *data, void * restrict dst,
-                        const struct GEN7_MI_SET_CONTEXT * restrict values)
+                         const struct GEN7_MI_SET_CONTEXT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5303,17 +5421,18 @@ GEN7_MI_SET_CONTEXT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_STORE_DATA_IMM_length 0x00000004
 #define GEN7_MI_STORE_DATA_IMM_length_bias 0x00000002
 #define GEN7_MI_STORE_DATA_IMM_header           \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 32,                  \
    .DwordLength          =  2
 
+#define GEN7_MI_STORE_DATA_IMM_length 0x00000004
+
 struct GEN7_MI_STORE_DATA_IMM {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     UseGlobalGTT;
+   bool                                         UseGlobalGTT;
    uint32_t                                     DwordLength;
    uint32_t                                     Address;
    uint32_t                                     CoreModeEnable;
@@ -5323,7 +5442,7 @@ struct GEN7_MI_STORE_DATA_IMM {
 
 static inline void
 GEN7_MI_STORE_DATA_IMM_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN7_MI_STORE_DATA_IMM * restrict values)
+                            const struct GEN7_MI_STORE_DATA_IMM * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5352,13 +5471,14 @@ GEN7_MI_STORE_DATA_IMM_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_STORE_DATA_INDEX_length 0x00000003
 #define GEN7_MI_STORE_DATA_INDEX_length_bias 0x00000002
 #define GEN7_MI_STORE_DATA_INDEX_header         \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 33,                  \
    .DwordLength          =  1
 
+#define GEN7_MI_STORE_DATA_INDEX_length 0x00000003
+
 struct GEN7_MI_STORE_DATA_INDEX {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -5370,7 +5490,7 @@ struct GEN7_MI_STORE_DATA_INDEX {
 
 static inline void
 GEN7_MI_STORE_DATA_INDEX_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_MI_STORE_DATA_INDEX * restrict values)
+                              const struct GEN7_MI_STORE_DATA_INDEX * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5394,21 +5514,22 @@ GEN7_MI_STORE_DATA_INDEX_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_SUSPEND_FLUSH_length 0x00000001
 #define GEN7_MI_SUSPEND_FLUSH_length_bias 0x00000001
 #define GEN7_MI_SUSPEND_FLUSH_header            \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 11
 
+#define GEN7_MI_SUSPEND_FLUSH_length 0x00000001
+
 struct GEN7_MI_SUSPEND_FLUSH {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     SuspendFlush;
+   bool                                         SuspendFlush;
 };
 
 static inline void
 GEN7_MI_SUSPEND_FLUSH_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN7_MI_SUSPEND_FLUSH * restrict values)
+                           const struct GEN7_MI_SUSPEND_FLUSH * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5420,12 +5541,13 @@ GEN7_MI_SUSPEND_FLUSH_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_TOPOLOGY_FILTER_length 0x00000001
 #define GEN7_MI_TOPOLOGY_FILTER_length_bias 0x00000001
 #define GEN7_MI_TOPOLOGY_FILTER_header          \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 13
 
+#define GEN7_MI_TOPOLOGY_FILTER_length 0x00000001
+
 struct GEN7_MI_TOPOLOGY_FILTER {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -5434,7 +5556,7 @@ struct GEN7_MI_TOPOLOGY_FILTER {
 
 static inline void
 GEN7_MI_TOPOLOGY_FILTER_pack(__gen_user_data *data, void * restrict dst,
-                            const struct GEN7_MI_TOPOLOGY_FILTER * restrict values)
+                             const struct GEN7_MI_TOPOLOGY_FILTER * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5451,6 +5573,8 @@ GEN7_MI_TOPOLOGY_FILTER_pack(__gen_user_data *data, void * restrict dst,
    .CommandType          =  0,                  \
    .MICommandOpcode      = 35
 
+#define GEN7_MI_UPDATE_GTT_length 0x00000000
+
 struct GEN7_MI_UPDATE_GTT {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -5464,7 +5588,7 @@ struct GEN7_MI_UPDATE_GTT {
 
 static inline void
 GEN7_MI_UPDATE_GTT_pack(__gen_user_data *data, void * restrict dst,
-                       const struct GEN7_MI_UPDATE_GTT * restrict values)
+                        const struct GEN7_MI_UPDATE_GTT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5484,13 +5608,14 @@ GEN7_MI_UPDATE_GTT_pack(__gen_user_data *data, void * restrict dst,
    /* variable length fields follow */
 }
 
-#define GEN7_MI_URB_CLEAR_length 0x00000002
 #define GEN7_MI_URB_CLEAR_length_bias 0x00000002
 #define GEN7_MI_URB_CLEAR_header                \
    .CommandType          =  0,                  \
    .MICommandOpcode      = 25,                  \
    .DwordLength          =  0
 
+#define GEN7_MI_URB_CLEAR_length 0x00000002
+
 struct GEN7_MI_URB_CLEAR {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -5501,7 +5626,7 @@ struct GEN7_MI_URB_CLEAR {
 
 static inline void
 GEN7_MI_URB_CLEAR_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN7_MI_URB_CLEAR * restrict values)
+                       const struct GEN7_MI_URB_CLEAR * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5518,12 +5643,13 @@ GEN7_MI_URB_CLEAR_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_USER_INTERRUPT_length 0x00000001
 #define GEN7_MI_USER_INTERRUPT_length_bias 0x00000001
 #define GEN7_MI_USER_INTERRUPT_header           \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  2
 
+#define GEN7_MI_USER_INTERRUPT_length 0x00000001
+
 struct GEN7_MI_USER_INTERRUPT {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
@@ -5531,7 +5657,7 @@ struct GEN7_MI_USER_INTERRUPT {
 
 static inline void
 GEN7_MI_USER_INTERRUPT_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN7_MI_USER_INTERRUPT * restrict values)
+                            const struct GEN7_MI_USER_INTERRUPT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5542,37 +5668,38 @@ GEN7_MI_USER_INTERRUPT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MI_WAIT_FOR_EVENT_length 0x00000001
 #define GEN7_MI_WAIT_FOR_EVENT_length_bias 0x00000001
 #define GEN7_MI_WAIT_FOR_EVENT_header           \
    .CommandType          =  0,                  \
    .MICommandOpcode      =  3
 
+#define GEN7_MI_WAIT_FOR_EVENT_length 0x00000001
+
 struct GEN7_MI_WAIT_FOR_EVENT {
    uint32_t                                     CommandType;
    uint32_t                                     MICommandOpcode;
-   uint32_t                                     DisplayPipeCHorizontalBlankWaitEnable;
-   uint32_t                                     DisplayPipeCVerticalBlankWaitEnable;
-   uint32_t                                     DisplaySpriteCFlipPendingWaitEnable;
+   bool                                         DisplayPipeCHorizontalBlankWaitEnable;
+   bool                                         DisplayPipeCVerticalBlankWaitEnable;
+   bool                                         DisplaySpriteCFlipPendingWaitEnable;
 #define     Notenabled                                         0
    uint32_t                                     ConditionCodeWaitSelect;
-   uint32_t                                     DisplayPlaneCFlipPendingWaitEnable;
-   uint32_t                                     DisplayPipeCScanLineWaitEnable;
-   uint32_t                                     DisplayPipeBHorizontalBlankWaitEnable;
-   uint32_t                                     DisplayPipeBVerticalBlankWaitEnable;
-   uint32_t                                     DisplaySpriteBFlipPendingWaitEnable;
-   uint32_t                                     DisplayPlaneBFlipPendingWaitEnable;
-   uint32_t                                     DisplayPipeBScanLineWaitEnable;
-   uint32_t                                     DisplayPipeAHorizontalBlankWaitEnable;
-   uint32_t                                     DisplayPipeAVerticalBlankWaitEnable;
-   uint32_t                                     DisplaySpriteAFlipPendingWaitEnable;
-   uint32_t                                     DisplayPlaneAFlipPendingWaitEnable;
-   uint32_t                                     DisplayPipeAScanLineWaitEnable;
+   bool                                         DisplayPlaneCFlipPendingWaitEnable;
+   bool                                         DisplayPipeCScanLineWaitEnable;
+   bool                                         DisplayPipeBHorizontalBlankWaitEnable;
+   bool                                         DisplayPipeBVerticalBlankWaitEnable;
+   bool                                         DisplaySpriteBFlipPendingWaitEnable;
+   bool                                         DisplayPlaneBFlipPendingWaitEnable;
+   bool                                         DisplayPipeBScanLineWaitEnable;
+   bool                                         DisplayPipeAHorizontalBlankWaitEnable;
+   bool                                         DisplayPipeAVerticalBlankWaitEnable;
+   bool                                         DisplaySpriteAFlipPendingWaitEnable;
+   bool                                         DisplayPlaneAFlipPendingWaitEnable;
+   bool                                         DisplayPipeAScanLineWaitEnable;
 };
 
 static inline void
 GEN7_MI_WAIT_FOR_EVENT_pack(__gen_user_data *data, void * restrict dst,
-                           const struct GEN7_MI_WAIT_FOR_EVENT * restrict values)
+                            const struct GEN7_MI_WAIT_FOR_EVENT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5599,7 +5726,6 @@ GEN7_MI_WAIT_FOR_EVENT_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_PIPE_CONTROL_length 0x00000005
 #define GEN7_PIPE_CONTROL_length_bias 0x00000002
 #define GEN7_PIPE_CONTROL_header                \
    .CommandType          =  3,                  \
@@ -5608,6 +5734,8 @@ GEN7_MI_WAIT_FOR_EVENT_pack(__gen_user_data *data, void * restrict dst,
    ._3DCommandSubOpcode  =  0,                  \
    .DwordLength          =  3
 
+#define GEN7_PIPE_CONTROL_length 0x00000005
+
 struct GEN7_PIPE_CONTROL {
    uint32_t                                     CommandType;
    uint32_t                                     CommandSubType;
@@ -5626,29 +5754,29 @@ struct GEN7_PIPE_CONTROL {
 #define     Reset                                              1
    uint32_t                                     GlobalSnapshotCountReset;
    uint32_t                                     TLBInvalidate;
-   uint32_t                                     GenericMediaStateClear;
+   bool                                         GenericMediaStateClear;
 #define     NoWrite                                            0
 #define     WriteImmediateData                                 1
 #define     WritePSDepthCount                                  2
 #define     WriteTimestamp                                     3
    uint32_t                                     PostSyncOperation;
-   uint32_t                                     DepthStallEnable;
+   bool                                         DepthStallEnable;
 #define     DisableFlush                                       0
 #define     EnableFlush                                        1
-   uint32_t                                     RenderTargetCacheFlushEnable;
-   uint32_t                                     InstructionCacheInvalidateEnable;
-   uint32_t                                     TextureCacheInvalidationEnable;
-   uint32_t                                     IndirectStatePointersDisable;
-   uint32_t                                     NotifyEnable;
-   uint32_t                                     PipeControlFlushEnable;
-   uint32_t                                     DCFlushEnable;
-   uint32_t                                     VFCacheInvalidationEnable;
-   uint32_t                                     ConstantCacheInvalidationEnable;
-   uint32_t                                     StateCacheInvalidationEnable;
-   uint32_t                                     StallAtPixelScoreboard;
+   bool                                         RenderTargetCacheFlushEnable;
+   bool                                         InstructionCacheInvalidateEnable;
+   bool                                         TextureCacheInvalidationEnable;
+   bool                                         IndirectStatePointersDisable;
+   bool                                         NotifyEnable;
+   bool                                         PipeControlFlushEnable;
+   bool                                         DCFlushEnable;
+   bool                                         VFCacheInvalidationEnable;
+   bool                                         ConstantCacheInvalidationEnable;
+   bool                                         StateCacheInvalidationEnable;
+   bool                                         StallAtPixelScoreboard;
 #define     FlushDisabled                                      0
 #define     FlushEnabled                                       1
-   uint32_t                                     DepthCacheFlushEnable;
+   bool                                         DepthCacheFlushEnable;
    __gen_address_type                           Address;
    uint32_t                                     ImmediateData;
    uint32_t                                     ImmediateData0;
@@ -5656,7 +5784,7 @@ struct GEN7_PIPE_CONTROL {
 
 static inline void
 GEN7_PIPE_CONTROL_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN7_PIPE_CONTROL * restrict values)
+                       const struct GEN7_PIPE_CONTROL * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5708,16 +5836,6 @@ GEN7_PIPE_CONTROL_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_3DSTATE_CONSTANT_BODY_length 0x00000006
-
-#define GEN7_VERTEX_BUFFER_STATE_length 0x00000004
-
-#define GEN7_VERTEX_ELEMENT_STATE_length 0x00000002
-
-#define GEN7_SO_DECL_ENTRY_length 0x00000002
-
-#define GEN7_SO_DECL_length 0x00000001
-
 #define GEN7_SCISSOR_RECT_length 0x00000002
 
 struct GEN7_SCISSOR_RECT {
@@ -5729,7 +5847,7 @@ struct GEN7_SCISSOR_RECT {
 
 static inline void
 GEN7_SCISSOR_RECT_pack(__gen_user_data *data, void * restrict dst,
-                      const struct GEN7_SCISSOR_RECT * restrict values)
+                       const struct GEN7_SCISSOR_RECT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5762,7 +5880,7 @@ struct GEN7_SF_CLIP_VIEWPORT {
 
 static inline void
 GEN7_SF_CLIP_VIEWPORT_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN7_SF_CLIP_VIEWPORT * restrict values)
+                           const struct GEN7_SF_CLIP_VIEWPORT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5812,16 +5930,18 @@ GEN7_SF_CLIP_VIEWPORT_pack(__gen_user_data *data, void * restrict dst,
       __gen_float(values->YMaxClipGuardband) |
       0;
 
-   dw[12] =
-      0;
+   for (uint32_t i = 0, j = 12; i < 4; i += 1, j++) {
+      dw[j] =
+         0;
+   }
 
 }
 
 #define GEN7_BLEND_STATE_length 0x00000002
 
 struct GEN7_BLEND_STATE {
-   uint32_t                                     ColorBufferBlendEnable;
-   uint32_t                                     IndependentAlphaBlendEnable;
+   bool                                         ColorBufferBlendEnable;
+   bool                                         IndependentAlphaBlendEnable;
 #define     BLENDFUNCTION_ADD                                  0
 #define     BLENDFUNCTION_SUBTRACT                             1
 #define     BLENDFUNCTION_REVERSE_SUBTRACT                     2
@@ -5857,14 +5977,14 @@ struct GEN7_BLEND_STATE {
    uint32_t                                     ColorBlendFunction;
    uint32_t                                     SourceBlendFactor;
    uint32_t                                     DestinationBlendFactor;
-   uint32_t                                     AlphaToCoverageEnable;
-   uint32_t                                     AlphaToOneEnable;
-   uint32_t                                     AlphaToCoverageDitherEnable;
-   uint32_t                                     WriteDisableAlpha;
-   uint32_t                                     WriteDisableRed;
-   uint32_t                                     WriteDisableGreen;
-   uint32_t                                     WriteDisableBlue;
-   uint32_t                                     LogicOpEnable;
+   bool                                         AlphaToCoverageEnable;
+   bool                                         AlphaToOneEnable;
+   bool                                         AlphaToCoverageDitherEnable;
+   bool                                         WriteDisableAlpha;
+   bool                                         WriteDisableRed;
+   bool                                         WriteDisableGreen;
+   bool                                         WriteDisableBlue;
+   bool                                         LogicOpEnable;
 #define     LOGICOP_CLEAR                                      0
 #define     LOGICOP_NOR                                        1
 #define     LOGICOP_AND_INVERTED                               2
@@ -5882,7 +6002,7 @@ struct GEN7_BLEND_STATE {
 #define     LOGICOP_OR                                        14
 #define     LOGICOP_SET                                       15
    uint32_t                                     LogicOpFunction;
-   uint32_t                                     AlphaTestEnable;
+   bool                                         AlphaTestEnable;
 #define     COMPAREFUNCTION_ALWAYS                             0
 #define     COMPAREFUNCTION_NEVER                              1
 #define     COMPAREFUNCTION_LESS                               2
@@ -5892,20 +6012,20 @@ struct GEN7_BLEND_STATE {
 #define     COMPAREFUNCTION_NOTEQUAL                           6
 #define     COMPAREFUNCTION_GEQUAL                             7
    uint32_t                                     AlphaTestFunction;
-   uint32_t                                     ColorDitherEnable;
+   bool                                         ColorDitherEnable;
    uint32_t                                     XDitherOffset;
    uint32_t                                     YDitherOffset;
 #define     COLORCLAMP_UNORM                                   0
 #define     COLORCLAMP_SNORM                                   1
 #define     COLORCLAMP_RTFORMAT                                2
    uint32_t                                     ColorClampRange;
-   uint32_t                                     PreBlendColorClampEnable;
-   uint32_t                                     PostBlendColorClampEnable;
+   bool                                         PreBlendColorClampEnable;
+   bool                                         PostBlendColorClampEnable;
 };
 
 static inline void
 GEN7_BLEND_STATE_pack(__gen_user_data *data, void * restrict dst,
-                     const struct GEN7_BLEND_STATE * restrict values)
+                      const struct GEN7_BLEND_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5951,7 +6071,7 @@ struct GEN7_CC_VIEWPORT {
 
 static inline void
 GEN7_CC_VIEWPORT_pack(__gen_user_data *data, void * restrict dst,
-                     const struct GEN7_CC_VIEWPORT * restrict values)
+                      const struct GEN7_CC_VIEWPORT * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -5986,7 +6106,7 @@ struct GEN7_COLOR_CALC_STATE {
 
 static inline void
 GEN7_COLOR_CALC_STATE_pack(__gen_user_data *data, void * restrict dst,
-                          const struct GEN7_COLOR_CALC_STATE * restrict values)
+                           const struct GEN7_COLOR_CALC_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6023,7 +6143,7 @@ GEN7_COLOR_CALC_STATE_pack(__gen_user_data *data, void * restrict dst,
 #define GEN7_DEPTH_STENCIL_STATE_length 0x00000003
 
 struct GEN7_DEPTH_STENCIL_STATE {
-   uint32_t                                     StencilTestEnable;
+   bool                                         StencilTestEnable;
 #define     COMPAREFUNCTION_ALWAYS                             0
 #define     COMPAREFUNCTION_NEVER                              1
 #define     COMPAREFUNCTION_LESS                               2
@@ -6044,8 +6164,8 @@ struct GEN7_DEPTH_STENCIL_STATE {
    uint32_t                                     StencilFailOp;
    uint32_t                                     StencilPassDepthFailOp;
    uint32_t                                     StencilPassDepthPassOp;
-   uint32_t                                     StencilBufferWriteEnable;
-   uint32_t                                     DoubleSidedStencilEnable;
+   bool                                         StencilBufferWriteEnable;
+   bool                                         DoubleSidedStencilEnable;
 #define     COMPAREFUNCTION_ALWAYS                             0
 #define     COMPAREFUNCTION_NEVER                              1
 #define     COMPAREFUNCTION_LESS                               2
@@ -6070,7 +6190,7 @@ struct GEN7_DEPTH_STENCIL_STATE {
    uint32_t                                     StencilWriteMask;
    uint32_t                                     BackfaceStencilTestMask;
    uint32_t                                     BackfaceStencilWriteMask;
-   uint32_t                                     DepthTestEnable;
+   bool                                         DepthTestEnable;
 #define     COMPAREFUNCTION_ALWAYS                             0
 #define     COMPAREFUNCTION_NEVER                              1
 #define     COMPAREFUNCTION_LESS                               2
@@ -6080,12 +6200,12 @@ struct GEN7_DEPTH_STENCIL_STATE {
 #define     COMPAREFUNCTION_NOTEQUAL                           6
 #define     COMPAREFUNCTION_GEQUAL                             7
    uint32_t                                     DepthTestFunction;
-   uint32_t                                     DepthBufferWriteEnable;
+   bool                                         DepthBufferWriteEnable;
 };
 
 static inline void
 GEN7_DEPTH_STENCIL_STATE_pack(__gen_user_data *data, void * restrict dst,
-                             const struct GEN7_DEPTH_STENCIL_STATE * restrict values)
+                              const struct GEN7_DEPTH_STENCIL_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6118,8 +6238,6 @@ GEN7_DEPTH_STENCIL_STATE_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
-
 #define GEN7_INTERFACE_DESCRIPTOR_DATA_length 0x00000008
 
 struct GEN7_INTERFACE_DESCRIPTOR_DATA {
@@ -6133,9 +6251,9 @@ struct GEN7_INTERFACE_DESCRIPTOR_DATA {
 #define     IEEE754                                            0
 #define     Alternate                                          1
    uint32_t                                     FloatingPointMode;
-   uint32_t                                     IllegalOpcodeExceptionEnable;
-   uint32_t                                     MaskStackExceptionEnable;
-   uint32_t                                     SoftwareExceptionEnable;
+   bool                                         IllegalOpcodeExceptionEnable;
+   bool                                         MaskStackExceptionEnable;
+   bool                                         SoftwareExceptionEnable;
    uint32_t                                     SamplerStatePointer;
 #define     Nosamplersused                                     0
 #define     Between1and4samplersused                           1
@@ -6152,14 +6270,14 @@ struct GEN7_INTERFACE_DESCRIPTOR_DATA {
 #define     RD                                                 2
 #define     RTZ                                                3
    uint32_t                                     RoundingMode;
-   uint32_t                                     BarrierEnable;
+   bool                                         BarrierEnable;
    uint32_t                                     SharedLocalMemorySize;
    uint32_t                                     NumberofThreadsinGPGPUThreadGroup;
 };
 
 static inline void
 GEN7_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data *data, void * restrict dst,
-                                   const struct GEN7_INTERFACE_DESCRIPTOR_DATA * restrict values)
+                                    const struct GEN7_INTERFACE_DESCRIPTOR_DATA * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6206,29 +6324,205 @@ GEN7_INTERFACE_DESCRIPTOR_DATA_pack(__gen_user_data *data, void * restrict dst,
 
 }
 
-#define GEN7_PALETTE_ENTRY_length 0x00000001
+#define GEN7_BINDING_TABLE_STATE_length 0x00000001
+
+struct GEN7_BINDING_TABLE_STATE {
+   uint32_t                                     SurfaceStatePointer;
+};
+
+static inline void
+GEN7_BINDING_TABLE_STATE_pack(__gen_user_data *data, void * restrict dst,
+                              const struct GEN7_BINDING_TABLE_STATE * restrict values)
+{
+   uint32_t *dw = (uint32_t * restrict) dst;
+
+   dw[0] =
+      __gen_offset(values->SurfaceStatePointer, 5, 31) |
+      0;
+
+}
+
+#define GEN7_RENDER_SURFACE_STATE_length 0x00000008
+
+struct GEN7_RENDER_SURFACE_STATE {
+#define     SURFTYPE_1D                                        0
+#define     SURFTYPE_2D                                        1
+#define     SURFTYPE_3D                                        2
+#define     SURFTYPE_CUBE                                      3
+#define     SURFTYPE_BUFFER                                    4
+#define     SURFTYPE_STRBUF                                    5
+#define     SURFTYPE_NULL                                      7
+   uint32_t                                     SurfaceType;
+   bool                                         SurfaceArray;
+   uint32_t                                     SurfaceFormat;
+#define     VALIGN_2                                           0
+#define     VALIGN_4                                           1
+   uint32_t                                     SurfaceVerticalAlignment;
+#define     HALIGN_4                                           0
+#define     HALIGN_8                                           1
+   uint32_t                                     SurfaceHorizontalAlignment;
+   uint32_t                                     TiledSurface;
+#define     TILEWALK_XMAJOR                                    0
+#define     TILEWALK_YMAJOR                                    1
+   uint32_t                                     TileWalk;
+   uint32_t                                     VerticalLineStride;
+   uint32_t                                     VerticalLineStrideOffset;
+#define     ARYSPC_FULL                                        0
+#define     ARYSPC_LOD0                                        1
+   uint32_t                                     SurfaceArraySpacing;
+   uint32_t                                     RenderCacheReadWriteMode;
+#define     NORMAL_MODE                                        0
+#define     PROGRESSIVE_FRAME                                  2
+#define     INTERLACED_FRAME                                   3
+   uint32_t                                     MediaBoundaryPixelMode;
+   uint32_t                                     CubeFaceEnables;
+   __gen_address_type                           SurfaceBaseAddress;
+   uint32_t                                     Height;
+   uint32_t                                     Width;
+   uint32_t                                     Depth;
+   uint32_t                                     SurfacePitch;
+#define     RTROTATE_0DEG                                      0
+#define     RTROTATE_90DEG                                     1
+#define     RTROTATE_270DEG                                    3
+   uint32_t                                     RenderTargetRotation;
+   uint32_t                                     MinimumArrayElement;
+   uint32_t                                     RenderTargetViewExtent;
+#define     MSFMT_MSS                                          0
+#define     MSFMT_DEPTH_STENCIL                                1
+   uint32_t                                     MultisampledSurfaceStorageFormat;
+#define     MULTISAMPLECOUNT_1                                 0
+#define     MULTISAMPLECOUNT_4                                 2
+#define     MULTISAMPLECOUNT_8                                 3
+   uint32_t                                     NumberofMultisamples;
+   uint32_t                                     MultisamplePositionPaletteIndex;
+   uint32_t                                     MinimumArrayElement0;
+   uint32_t                                     XOffset;
+   uint32_t                                     YOffset;
+   struct GEN7_MEMORY_OBJECT_CONTROL_STATE      SurfaceObjectControlState;
+   uint32_t                                     SurfaceMinLOD;
+   uint32_t                                     MIPCountLOD;
+   __gen_address_type                           MCSBaseAddress;
+   uint32_t                                     MCSSurfacePitch;
+   __gen_address_type                           AppendCounterAddress;
+   bool                                         AppendCounterEnable;
+   bool                                         MCSEnable;
+   uint32_t                                     XOffsetforUVPlane;
+   uint32_t                                     YOffsetforUVPlane;
+#define     CC_ZERO                                            0
+#define     CC_ONE                                             1
+   uint32_t                                     RedClearColor;
+#define     CC_ZERO                                            0
+#define     CC_ONE                                             1
+   uint32_t                                     GreenClearColor;
+#define     CC_ZERO                                            0
+#define     CC_ONE                                             1
+   uint32_t                                     BlueClearColor;
+#define     CC_ZERO                                            0
+#define     CC_ONE                                             1
+   uint32_t                                     AlphaClearColor;
+   float                                        ResourceMinLOD;
+};
+
+static inline void
+GEN7_RENDER_SURFACE_STATE_pack(__gen_user_data *data, void * restrict dst,
+                               const struct GEN7_RENDER_SURFACE_STATE * restrict values)
+{
+   uint32_t *dw = (uint32_t * restrict) dst;
+
+   dw[0] =
+      __gen_field(values->SurfaceType, 29, 31) |
+      __gen_field(values->SurfaceArray, 28, 28) |
+      __gen_field(values->SurfaceFormat, 18, 26) |
+      __gen_field(values->SurfaceVerticalAlignment, 16, 17) |
+      __gen_field(values->SurfaceHorizontalAlignment, 15, 15) |
+      __gen_field(values->TiledSurface, 14, 14) |
+      __gen_field(values->TileWalk, 13, 13) |
+      __gen_field(values->VerticalLineStride, 12, 12) |
+      __gen_field(values->VerticalLineStrideOffset, 11, 11) |
+      __gen_field(values->SurfaceArraySpacing, 10, 10) |
+      __gen_field(values->RenderCacheReadWriteMode, 8, 8) |
+      __gen_field(values->MediaBoundaryPixelMode, 6, 7) |
+      __gen_field(values->CubeFaceEnables, 0, 5) |
+      0;
+
+   uint32_t dw1 =
+      0;
+
+   dw[1] =
+      __gen_combine_address(data, &dw[1], values->SurfaceBaseAddress, dw1);
+
+   dw[2] =
+      __gen_field(values->Height, 16, 29) |
+      __gen_field(values->Width, 0, 13) |
+      0;
+
+   dw[3] =
+      __gen_field(values->Depth, 21, 31) |
+      __gen_field(values->SurfacePitch, 0, 17) |
+      0;
+
+   dw[4] =
+      __gen_field(values->RenderTargetRotation, 29, 30) |
+      __gen_field(values->MinimumArrayElement, 18, 28) |
+      __gen_field(values->RenderTargetViewExtent, 7, 17) |
+      __gen_field(values->MultisampledSurfaceStorageFormat, 6, 6) |
+      __gen_field(values->NumberofMultisamples, 3, 5) |
+      __gen_field(values->MultisamplePositionPaletteIndex, 0, 2) |
+      __gen_field(values->MinimumArrayElement, 0, 26) |
+      0;
+
+   uint32_t dw_SurfaceObjectControlState;
+   GEN7_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SurfaceObjectControlState, &values->SurfaceObjectControlState);
+   dw[5] =
+      __gen_offset(values->XOffset, 25, 31) |
+      __gen_offset(values->YOffset, 20, 23) |
+      __gen_field(dw_SurfaceObjectControlState, 16, 19) |
+      __gen_field(values->SurfaceMinLOD, 4, 7) |
+      __gen_field(values->MIPCountLOD, 0, 3) |
+      0;
+
+   uint32_t dw6 =
+      __gen_field(values->MCSSurfacePitch, 3, 11) |
+      __gen_field(values->AppendCounterEnable, 1, 1) |
+      __gen_field(values->MCSEnable, 0, 0) |
+      __gen_field(values->XOffsetforUVPlane, 16, 29) |
+      __gen_field(values->YOffsetforUVPlane, 0, 13) |
+      0;
+
+   dw[6] =
+      __gen_combine_address(data, &dw[6], values->AppendCounterAddress, dw6);
+
+   dw[7] =
+      __gen_field(values->RedClearColor, 31, 31) |
+      __gen_field(values->GreenClearColor, 30, 30) |
+      __gen_field(values->BlueClearColor, 29, 29) |
+      __gen_field(values->AlphaClearColor, 28, 28) |
+      __gen_field(values->ResourceMinLOD * (1 << 8), 0, 11) |
+      0;
+
+}
 
 #define GEN7_SAMPLER_BORDER_COLOR_STATE_length 0x00000004
 
 struct GEN7_SAMPLER_BORDER_COLOR_STATE {
-   uint32_t                                     BorderColorRedDX100GL;
+   float                                        BorderColorRedDX100GL;
    uint32_t                                     BorderColorAlpha;
    uint32_t                                     BorderColorBlue;
    uint32_t                                     BorderColorGreen;
    uint32_t                                     BorderColorRedDX9;
-   uint32_t                                     BorderColorGreen0;
-   uint32_t                                     BorderColorBlue0;
-   uint32_t                                     BorderColorAlpha0;
+   float                                        BorderColorGreen0;
+   float                                        BorderColorBlue0;
+   float                                        BorderColorAlpha0;
 };
 
 static inline void
 GEN7_SAMPLER_BORDER_COLOR_STATE_pack(__gen_user_data *data, void * restrict dst,
-                                    const struct GEN7_SAMPLER_BORDER_COLOR_STATE * restrict values)
+                                     const struct GEN7_SAMPLER_BORDER_COLOR_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
    dw[0] =
-      __gen_field(values->BorderColorRedDX100GL, 0, 31) |
+      __gen_float(values->BorderColorRedDX100GL) |
       __gen_field(values->BorderColorAlpha, 24, 31) |
       __gen_field(values->BorderColorBlue, 16, 23) |
       __gen_field(values->BorderColorGreen, 8, 15) |
@@ -6236,15 +6530,15 @@ GEN7_SAMPLER_BORDER_COLOR_STATE_pack(__gen_user_data *data, void * restrict dst,
       0;
 
    dw[1] =
-      __gen_field(values->BorderColorGreen, 0, 31) |
+      __gen_float(values->BorderColorGreen) |
       0;
 
    dw[2] =
-      __gen_field(values->BorderColorBlue, 0, 31) |
+      __gen_float(values->BorderColorBlue) |
       0;
 
    dw[3] =
-      __gen_field(values->BorderColorAlpha, 0, 31) |
+      __gen_float(values->BorderColorAlpha) |
       0;
 
 }
@@ -6252,13 +6546,13 @@ GEN7_SAMPLER_BORDER_COLOR_STATE_pack(__gen_user_data *data, void * restrict dst,
 #define GEN7_SAMPLER_STATE_length 0x00000004
 
 struct GEN7_SAMPLER_STATE {
-   uint32_t                                     SamplerDisable;
+   bool                                         SamplerDisable;
 #define     DX10OGL                                            0
 #define     DX9                                                1
    uint32_t                                     TextureBorderColorMode;
 #define     OGL                                                1
    uint32_t                                     LODPreClampEnable;
-   uint32_t                                     BaseMipLevel;
+   float                                        BaseMipLevel;
 #define     MIPFILTER_NONE                                     0
 #define     MIPFILTER_NEAREST                                  1
 #define     MIPFILTER_LINEAR                                   3
@@ -6277,8 +6571,8 @@ struct GEN7_SAMPLER_STATE {
 #define     LEGACY                                             0
 #define     EWAApproximation                                   1
    uint32_t                                     AnisotropicAlgorithm;
-   uint32_t                                     MinLOD;
-   uint32_t                                     MaxLOD;
+   float                                        MinLOD;
+   float                                        MaxLOD;
 #define     PREFILTEROPALWAYS                                  0
 #define     PREFILTEROPNEVER                                   1
 #define     PREFILTEROPLESS                                    2
@@ -6292,7 +6586,7 @@ struct GEN7_SAMPLER_STATE {
 #define     OVERRIDE                                           1
    uint32_t                                     CubeSurfaceControlMode;
    uint32_t                                     BorderColorPointer;
-   uint32_t                                     ChromaKeyEnable;
+   bool                                         ChromaKeyEnable;
    uint32_t                                     ChromaKeyIndex;
 #define     KEYFILTER_KILL_ON_ANY_MATCH                        0
 #define     KEYFILTER_REPLACE_BLACK                            1
@@ -6306,17 +6600,17 @@ struct GEN7_SAMPLER_STATE {
 #define     RATIO141                                           6
 #define     RATIO161                                           7
    uint32_t                                     MaximumAnisotropy;
-   uint32_t                                     RAddressMinFilterRoundingEnable;
-   uint32_t                                     RAddressMagFilterRoundingEnable;
-   uint32_t                                     VAddressMinFilterRoundingEnable;
-   uint32_t                                     VAddressMagFilterRoundingEnable;
-   uint32_t                                     UAddressMinFilterRoundingEnable;
-   uint32_t                                     UAddressMagFilterRoundingEnable;
+   bool                                         RAddressMinFilterRoundingEnable;
+   bool                                         RAddressMagFilterRoundingEnable;
+   bool                                         VAddressMinFilterRoundingEnable;
+   bool                                         VAddressMagFilterRoundingEnable;
+   bool                                         UAddressMinFilterRoundingEnable;
+   bool                                         UAddressMagFilterRoundingEnable;
 #define     FULL                                               0
 #define     MED                                                2
 #define     LOW                                                3
    uint32_t                                     TrilinearFilterQuality;
-   uint32_t                                     NonnormalizedCoordinateEnable;
+   bool                                         NonnormalizedCoordinateEnable;
    uint32_t                                     TCXAddressControlMode;
    uint32_t                                     TCYAddressControlMode;
    uint32_t                                     TCZAddressControlMode;
@@ -6324,7 +6618,7 @@ struct GEN7_SAMPLER_STATE {
 
 static inline void
 GEN7_SAMPLER_STATE_pack(__gen_user_data *data, void * restrict dst,
-                       const struct GEN7_SAMPLER_STATE * restrict values)
+                        const struct GEN7_SAMPLER_STATE * restrict values)
 {
    uint32_t *dw = (uint32_t * restrict) dst;
 
@@ -6332,7 +6626,7 @@ GEN7_SAMPLER_STATE_pack(__gen_user_data *data, void * restrict dst,
       __gen_field(values->SamplerDisable, 31, 31) |
       __gen_field(values->TextureBorderColorMode, 29, 29) |
       __gen_field(values->LODPreClampEnable, 28, 28) |
-      __gen_field(values->BaseMipLevel, 22, 26) |
+      __gen_field(values->BaseMipLevel * (1 << 1), 22, 26) |
       __gen_field(values->MipModeFilter, 20, 21) |
       __gen_field(values->MagModeFilter, 17, 19) |
       __gen_field(values->MinModeFilter, 14, 16) |
@@ -6341,8 +6635,8 @@ GEN7_SAMPLER_STATE_pack(__gen_user_data *data, void * restrict dst,
       0;
 
    dw[1] =
-      __gen_field(values->MinLOD, 20, 31) |
-      __gen_field(values->MaxLOD, 8, 19) |
+      __gen_field(values->MinLOD * (1 << 8), 20, 31) |
+      __gen_field(values->MaxLOD * (1 << 8), 8, 19) |
       __gen_field(values->ShadowFunction, 1, 3) |
       __gen_field(values->CubeSurfaceControlMode, 0, 0) |
       0;
@@ -6381,7 +6675,7 @@ GEN7_SAMPLER_STATE_pack(__gen_user_data *data, void * restrict dst,
 #define     _3DPRIM_QUADLIST                                   7
 #define     _3DPRIM_QUADSTRIP                                  8
 #define     _3DPRIM_LINELIST_ADJ                               9
-#define     _3DPRIM_LISTSTRIP_ADJ                             10
+#define     _3DPRIM_LINESTRIP_ADJ                             10
 #define     _3DPRIM_TRILIST_ADJ                               11
 #define     _3DPRIM_TRISTRIP_ADJ                              12
 #define     _3DPRIM_TRISTRIP_REVERSE                          13